* Non-accessed local variable * Merge cast and type checks. * StringComparison.Ordinal added for better culture support * Supposed code improvement in launcher. Remove unused code. * Update ExplosionHelper.cs Unintentional change. * Optimized Import * Add Robust.Shared.Utility import where it was deleted * Other random suggestion * Improve my comment
50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
using Content.Client.GameObjects.Components.Construction;
|
|
using Content.Shared.Construction;
|
|
using Robust.Client.Interfaces.ResourceManagement;
|
|
using Robust.Client.Placement;
|
|
using Robust.Client.Utility;
|
|
using Robust.Shared.Interfaces.GameObjects;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Map;
|
|
|
|
namespace Content.Client.Construction
|
|
{
|
|
public class ConstructionPlacementHijack : PlacementHijack
|
|
{
|
|
private readonly ConstructionPrototype Prototype;
|
|
private readonly ConstructorComponent Owner;
|
|
|
|
public ConstructionPlacementHijack(ConstructionPrototype prototype, ConstructorComponent owner)
|
|
{
|
|
Prototype = prototype;
|
|
Owner = owner;
|
|
}
|
|
|
|
public override bool HijackPlacementRequest(GridCoordinates coords)
|
|
{
|
|
if (Prototype != null)
|
|
{
|
|
var dir = Manager.Direction;
|
|
Owner.SpawnGhost(Prototype, coords, dir);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public override bool HijackDeletion(IEntity entity)
|
|
{
|
|
if (entity.TryGetComponent(out ConstructionGhostComponent ghost))
|
|
{
|
|
Owner.ClearGhost(ghost.GhostID);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public override void StartHijack(PlacementManager manager)
|
|
{
|
|
base.StartHijack(manager);
|
|
|
|
manager.CurrentBaseSprite = Prototype.Icon.DirFrame0();
|
|
}
|
|
}
|
|
}
|