aaaaaaaaaaaaaaaaaaaaaaaaaaaaa (#743)
This commit is contained in:
@@ -400,14 +400,30 @@ public class RCDSystem : EntitySystem
|
||||
}
|
||||
|
||||
// Entity specific rules
|
||||
|
||||
// Check rule: The tile is unoccupied
|
||||
var isWindow = component.CachedPrototype.ConstructionRules.Contains(RcdConstructionRule.IsWindow);
|
||||
var isCatwalk = component.CachedPrototype.ConstructionRules.Contains(RcdConstructionRule.IsCatwalk);
|
||||
|
||||
if (component.CachedPrototype.Mode == RcdMode.ConstructObject)
|
||||
{
|
||||
// Check for existing identical entities in the same tile
|
||||
_intersectingEntities.Clear();
|
||||
_lookup.GetLocalEntitiesIntersecting(mapGridData.GridUid, mapGridData.Position, _intersectingEntities, -0.05f, LookupFlags.Uncontained);
|
||||
|
||||
if (component.CachedPrototype.Prototype != null)
|
||||
{
|
||||
foreach (var entity in _intersectingEntities)
|
||||
{
|
||||
// Check if the entity has the same prototype ID
|
||||
if (MetaData(entity).EntityPrototype?.ID == component.CachedPrototype.Prototype)
|
||||
{
|
||||
if (popMsgs)
|
||||
_popup.PopupClient("An identical object already exists in this location.", uid, user);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var isWindow = component.CachedPrototype.ConstructionRules.Contains(RcdConstructionRule.IsWindow);
|
||||
var isCatwalk = component.CachedPrototype.ConstructionRules.Contains(RcdConstructionRule.IsCatwalk);
|
||||
|
||||
foreach (var ent in _intersectingEntities)
|
||||
{
|
||||
if (isWindow && HasComp<SharedCanBuildWindowOnTopComponent>(ent))
|
||||
@@ -442,6 +458,7 @@ public class RCDSystem : EntitySystem
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user