using Content.Shared.Construction;
using Content.Shared.Hands.Components;
using JetBrains.Annotations;
-using Robust.Server.Containers;
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
-using Robust.Shared.GameObjects;
-using Robust.Shared.Map;
namespace Content.Server.Construction.Completions
{
if (!entityManager.TryGetComponent(uid, out ContainerManagerComponent? containerManager))
return;
- var containerSys = entityManager.EntitySysManager.GetEntitySystem<ContainerSystem>();
+ var containerSys = entityManager.EntitySysManager.GetEntitySystem<SharedContainerSystem>();
var handSys = entityManager.EntitySysManager.GetEntitySystem<HandsSystem>();
var transformSys = entityManager.EntitySysManager.GetEntitySystem<TransformSystem>();
HandsComponent? hands = null;
var pickup = Pickup && entityManager.TryGetComponent(userUid, out hands);
- foreach (var container in containerManager.GetAllContainers())
+ foreach (var container in containerSys.GetAllContainers(uid))
{
foreach (var ent in containerSys.EmptyContainer(container, true, reparent: !pickup))
{
public void PerformAction(EntityUid uid, EntityUid? userUid, IEntityManager entityManager)
{
+ var containerSys = entityManager.EntitySysManager.GetEntitySystem<SharedContainerSystem>();
+
if (!entityManager.TryGetComponent(uid, out ContainerManagerComponent? containerManager) ||
- !containerManager.TryGetContainer(Container, out var container)) return;
+ !containerSys.TryGetContainer(uid, Container, out var container, containerManager)) return;
- var containerSys = entityManager.EntitySysManager.GetEntitySystem<ContainerSystem>();
var handSys = entityManager.EntitySysManager.GetEntitySystem<HandsSystem>();
HandsComponent? hands = null;
-using Content.Shared.Construction;
+using Content.Shared.Construction;
using JetBrains.Annotations;
namespace Content.Server.Construction.Completions
public void PerformAction(EntityUid uid, EntityUid? userUid, IEntityManager entityManager)
{
var transform = entityManager.GetComponent<TransformComponent>(uid);
- transform.Anchored = Value;
+
+ if (transform.Anchored == Value)
+ return;
+
+ var sys = entityManager.System<SharedTransformSystem>();
+
+ if (Value)
+ sys.AnchorEntity(uid, transform);
+ else
+ sys.Unanchor(uid, transform);
+
}
}
}
var transform = entityManager.GetComponent<TransformComponent>(uid);
if (!transform.Anchored)
- transform.Coordinates = transform.Coordinates.SnapToGrid(entityManager);
+ entityManager.System<SharedTransformSystem>().SetCoordinates(uid, transform.Coordinates.SnapToGrid(entityManager));
if (SouthRotation)
{
-using Content.Shared.Construction;
+using Content.Shared.Construction;
using Content.Shared.Examine;
using JetBrains.Annotations;
using Robust.Server.Containers;
var entity = args.Examined;
- if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity, out ContainerManagerComponent? containerManager) ||
- !containerManager.TryGetContainer(Container, out var container)) return false;
+ var entityManager = IoCManager.Resolve<IEntityManager>();
+ if (!entityManager.TryGetComponent(entity, out ContainerManagerComponent? containerManager) ||
+ !entityManager.System<SharedContainerSystem>().TryGetContainer(entity, Container, out var container, containerManager)) return false;
if (container.ContainedEntities.Count == 0)
return false;
var entity = args.Examined;
- if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(entity, out ContainerManagerComponent? containerManager) ||
- !containerManager.TryGetContainer(Container, out var container)) return false;
+ var entityManager = IoCManager.Resolve<IEntityManager>();
+ if (!entityManager.TryGetComponent(entity, out ContainerManagerComponent? containerManager) ||
+ !entityManager.System<SharedContainerSystem>().TryGetContainer(entity, Container, out var container, containerManager)) return false;
if (container.ContainedEntities.Count != 0)
return false;
if (!Resolve(uid, ref construction, false))
return null;
- if (construction.Node is not {} nodeIdentifier)
+ if (construction.Node is not { } nodeIdentifier)
return null;
- return GetCurrentGraph(uid, construction) is not {} graph ? null : GetNodeFromGraph(graph, nodeIdentifier);
+ return GetCurrentGraph(uid, construction) is not { } graph ? null : GetNodeFromGraph(graph, nodeIdentifier);
}
/// <summary>
if (!Resolve(uid, ref construction, false))
return null;
- if (construction.EdgeIndex is not {} edgeIndex)
+ if (construction.EdgeIndex is not { } edgeIndex)
return null;
- return GetCurrentNode(uid, construction) is not {} node ? null : GetEdgeFromNode(node, edgeIndex);
+ return GetCurrentNode(uid, construction) is not { } node ? null : GetEdgeFromNode(node, edgeIndex);
}
/// <summary>
if (GetCurrentNode(uid, construction) is not { } node)
return (null, null);
- if (construction.EdgeIndex is not {} edgeIndex)
+ if (construction.EdgeIndex is not { } edgeIndex)
return (node, null);
return (node, GetEdgeFromNode(node, edgeIndex));
if (!Resolve(uid, ref construction, false))
return null;
- if (GetCurrentEdge(uid, construction) is not {} edge)
+ if (GetCurrentEdge(uid, construction) is not { } edge)
return null;
return GetStepFromEdge(edge, construction.StepIndex);
if (!Resolve(uid, ref construction))
return null;
- if (construction.TargetNode is not {} targetNodeId)
+ if (construction.TargetNode is not { } targetNodeId)
return null;
- if (GetCurrentGraph(uid, construction) is not {} graph)
+ if (GetCurrentGraph(uid, construction) is not { } graph)
return null;
return GetNodeFromGraph(graph, targetNodeId);
if (!Resolve(uid, ref construction))
return null;
- if (construction.TargetEdgeIndex is not {} targetEdgeIndex)
+ if (construction.TargetEdgeIndex is not { } targetEdgeIndex)
return null;
- if (GetCurrentNode(uid, construction) is not {} node)
+ if (GetCurrentNode(uid, construction) is not { } node)
return null;
return GetEdgeFromNode(node, targetEdgeIndex);
if (!Resolve(uid, ref construction))
return false;
- if (GetCurrentGraph(uid, construction) is not {} graph
- || GetNodeFromGraph(graph, id) is not {} node)
+ if (GetCurrentGraph(uid, construction) is not { } graph
+ || GetNodeFromGraph(graph, id) is not { } node)
return false;
var oldNode = construction.Node;
$"{ToPrettyString(userUid.Value):player} changed {ToPrettyString(uid):entity}'s node from \"{oldNode}\" to \"{id}\"");
// ChangeEntity will handle the pathfinding update.
- if (node.Entity.GetId(uid, userUid, new(EntityManager)) is {} newEntity
+ if (node.Entity.GetId(uid, userUid, new(EntityManager)) is { } newEntity
&& ChangeEntity(uid, userUid, newEntity, construction) != null)
return true;
- if(performActions)
+ if (performActions)
PerformActions(uid, userUid, node.Actions);
// An action might have deleted the entity... Account for this.
// Retain the target node if an entity change happens in response to deconstruction;
// in that case, we must continue to move towards the start node.
- if (construction.TargetNode is {} targetNode)
+ if (construction.TargetNode is { } targetNode)
SetPathfindingTarget(newUid, targetNode, newConstruction);
}
}
if (newConstruction.InteractionQueue.Count > 0 && _queuedUpdates.Add(newUid))
- _constructionUpdateQueue.Enqueue(newUid);
+ _constructionUpdateQueue.Enqueue(newUid);
// Transform transferring.
var newTransform = Transform(newUid);
if (!PrototypeManager.TryIndex<ConstructionGraphPrototype>(graphId, out var graph))
return false;
- if(GetNodeFromGraph(graph, nodeId) is not {})
+ if (GetNodeFromGraph(graph, nodeId) is not { })
return false;
construction.Graph = graphId;
return;
}
- var mapPos = location.ToMap(EntityManager, _transformSystem);
+ var mapPos = _transformSystem.ToMapCoordinates(location);
var predicate = GetPredicate(constructionPrototype.CanBuildInImpassable, mapPos);
if (!_interactionSystem.InRangeUnobstructed(user, mapPos, predicate: predicate))
// get blueprint and user position
var transformSystem = entManager.System<SharedTransformSystem>();
var userWorldPosition = transformSystem.GetWorldPosition(user);
- var objWorldPosition = location.ToMap(entManager, transformSystem).Position;
+ var objWorldPosition = transformSystem.ToMapCoordinates(location).Position;
// find direction from user to blueprint
var userToObject = (objWorldPosition - userWorldPosition);
private bool TileFree(EntityCoordinates coordinates, PhysicsComponent anchorBody)
{
// Probably ignore CanCollide on the anchoring body?
- var gridUid = coordinates.GetGridUid(EntityManager);
+ var gridUid = _transformSystem.GetGrid(coordinates);
if (!TryComp<MapGridComponent>(gridUid, out var grid))
return false;
public bool AnyUnstackablesAnchoredAt(EntityCoordinates location)
{
- var gridUid = location.GetGridUid(EntityManager);
+ var gridUid = _transformSystem.GetGrid(location);
if (!TryComp<MapGridComponent>(gridUid, out var grid))
return false;