public void RemoveInitialUnit(IntVector2 tileCoords, UnitDataReference unitDataReference) { TileMetadata.TileMetadata tileMetadata = GetTileMetadata(tileCoords); tileMetadata.units.RemoveAll(x => x.UnitIndex == unitDataReference.UnitIndex); _unitRemovedSubject.OnNext(Tuple.Create(tileCoords, unitDataReference)); ClearTileMetadataIfNecessary(tileCoords); }
public void SetSectionConnection(IntVector2 tileCoords, uint sectionIndex) { TileMetadata.TileMetadata tileMetadata = GetTileMetadata(tileCoords); var oldSectionIndex = tileMetadata.sectionConnection; tileMetadata.sectionConnection = (int)sectionIndex; if (oldSectionIndex != sectionIndex) { _sectionConnectionChangeSubject.OnNext(Tuple.Create(tileCoords, tileMetadata.SectionConnection)); } }
public void ClearSectionConnection(IntVector2 tileCoords) { TileMetadata.TileMetadata tileMetadata = GetTileMetadata(tileCoords); var oldSectionIndex = tileMetadata.sectionConnection; tileMetadata.sectionConnection = -1; if (oldSectionIndex != -1) { _sectionConnectionChangeSubject.OnNext(Tuple.Create(tileCoords, tileMetadata.SectionConnection)); } ClearTileMetadataIfNecessary(tileCoords); }
public TileMetadataPair(Vector2 tileCoords) { this.tileCoords = tileCoords; this.tileMetadata = new TileMetadata(); }
public void AddInitialUnit(IntVector2 tileCoords, UnitDataReference unitDataReference) { TileMetadata.TileMetadata tileMetadata = GetTileMetadata(tileCoords); tileMetadata.units.Add(unitDataReference); _unitAddedSubject.OnNext(Tuple.Create(tileCoords, unitDataReference)); }