| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.Numerics;
- using Robust.Client.Placement;
- using Robust.Shared.Map;
- using Robust.Shared.Maths;
- namespace Content.Client.Placement.Modes
- {
- public sealed class WallmountLight : PlacementMode
- {
- public WallmountLight(PlacementManager pMan) : base(pMan)
- {
- }
- public override void AlignPlacementMode(ScreenCoordinates mouseScreen)
- {
- MouseCoords = ScreenToCursorGrid(mouseScreen);
- CurrentTile = GetTileRef(MouseCoords);
- if (pManager.CurrentPermission!.IsTile)
- {
- return;
- }
- var tileCoordinates = new EntityCoordinates(MouseCoords.EntityId, CurrentTile.GridIndices);
- Vector2 offset;
- switch (pManager.Direction)
- {
- case Direction.North:
- offset = new Vector2(0.5f, 1f);
- break;
- case Direction.South:
- offset = new Vector2(0.5f, 0f);
- break;
- case Direction.East:
- offset = new Vector2(1f, 0.5f);
- break;
- case Direction.West:
- offset = new Vector2(0f, 0.5f);
- break;
- default:
- return;
- }
- tileCoordinates = tileCoordinates.Offset(offset);
- MouseCoords = tileCoordinates;
- }
- public override bool IsValidPosition(EntityCoordinates position)
- {
- if (pManager.CurrentPermission!.IsTile)
- {
- return false;
- }
- else if (!RangeCheck(position))
- {
- return false;
- }
- return true;
- }
- }
- }
|