public bool TryAddNewMapStruct(IMapStructInstance <MapStructDef> mapStruct) { //if (!this.MapStructManager.TryAddStructure(mapStruct)) // return false; if (mapStruct is IResourceUser) { this.ResourceManager.TryRegiseringUser(mapStruct as IResourceUser); } return(true); }
public bool TryAddStructure(IMapStructInstance <TDef> mapStruct) { if (!CanAddInstance(mapStruct)) { return(false); } var footPrint = mapStruct.GetFootprint(); _mapStructs.Add(mapStruct.InstanceId, mapStruct); foreach (var print in footPrint) { var x = print[0]; var y = print[1]; _cachedRefMap[x, y] = mapStruct.InstanceId; } return(true); }
public bool CanAddInstance(IMapStructInstance <TDef> instance) { var footPrint = instance.GetFootprint(); foreach (var print in footPrint) { var x = print[0]; var y = print[1]; if (_cachedRefMap[x, y] != null) { return(false); } if (!TileMap.IsOpenToMapStructure(x, y)) { return(false); } } return(true); }