private Ja2Data.JsdTile DownloadJsdTile(JsdTile aTileRec, bool aIsHiDefenition) { Ja2Data.JsdTile _tile = new Ja2Data.JsdTile(aIsHiDefenition); int _flags = 0; foreach (JsdTileTileFlag _flag in aTileRec.JsdTileTileFlag) { _flags |= _flag.JsdTileFlags.Mask.Value; } _tile.Flags = (Ja2Data.JsdTile.JsdTileFlags)((byte)_flags); _tile.PosRelToBase = aTileRec.PosRelToBase; _tile.Unused = aTileRec.Unused; _tile.VehicleHitLocation = aTileRec.VehicleHitLocation; _tile.XPosRelToBase = (sbyte)aTileRec.XPosRelToBase; _tile.YPosRelToBase = (sbyte)aTileRec.YPosRelToBase; List <JsdCell> _cells = this.FJsdCells .Where(x => x.JsdTileId == aTileRec.JsdTileId) .ToList(); _cells.Sort(); _tile.Shape = _cells.Select(x => x.Value).ToArray(); return(_tile); }
private JsdTile LoadJsdTile(Ja2Data.JsdTile aTile) { JsdTile _tileRec = new JsdTile(); _tileRec.PosRelToBase = aTile.PosRelToBase; _tileRec.Unused = aTile.Unused; _tileRec.VehicleHitLocation = aTile.VehicleHitLocation; _tileRec.XPosRelToBase = (short)aTile.XPosRelToBase; _tileRec.YPosRelToBase = (short)aTile.YPosRelToBase; _tileRec.DateCreated = DateTime.Now; _tileRec.UserId = this.FUserId; var _flags = this.FTilesFlags.Where(x => (x.Mask & (byte)aTile.Flags) != 0); foreach (Flag _flag in _flags) { JsdTileTileFlag _tileToFlag = new JsdTileTileFlag(); _tileToFlag.JsdTile = _tileRec; _tileToFlag.FlagId = (byte)_flag.Id; this.FJsdTileTileFlag.Add(_tileToFlag); } this.LoadJsdTileCells(aTile.Shape, _tileRec); return(_tileRec); }
private void LoadJsdTileCells(byte[] aShape, JsdTile aJsdTile) { for (byte x = 0; x < this.FProfileXSize; x++) { for (byte y = 0; y < this.FProfileYSize; y++) { JsdTileCell _cellsRec = new JsdTileCell(); _cellsRec.RowNumber = x; _cellsRec.CellNumber = y; _cellsRec.Value = aShape[x * this.FProfileYSize + y]; _cellsRec.JsdTile = aJsdTile; this.FJsdTileCell.Add(_cellsRec); } } }
private JsdStructure LoadStructure(Ja2Data.JsdStruct aStruct) { JsdStructure _structRec = new JsdStructure(); _structRec.Armour = aStruct.Armour; _structRec.Density = aStruct.Density; _structRec.DestructionPartner = aStruct.DestructionPartner; _structRec.HitPoints = aStruct.HitPoints; _structRec.NumberOfTiles = aStruct.NumberOfTiles; _structRec.PartnerDelta = aStruct.PartnerDelta; _structRec.StructureNumber = aStruct.StructureNumber; _structRec.Unused = aStruct.Unused; _structRec.WallOrientation = aStruct.WallOrientation; _structRec.ZTileOffsetX = aStruct.ZTileOffsetX; _structRec.ZTileOffsetY = aStruct.ZTileOffsetY; _structRec.DateCreated = DateTime.Now; _structRec.UserId = this.FUserId; var _flags = this.FStructureFlags.Where(x => (x.Mask & (uint)aStruct.Flags) != 0); foreach (Flag _flag in _flags) { JsdStructureStructureFlag _structToFlag = new JsdStructureStructureFlag(); _structToFlag.JsdStructure = _structRec; _structToFlag.FlagId = (byte)_flag.Id; this.FStructureStructuresFlags.Add(_structToFlag); } foreach (Ja2Data.JsdTile _tile in aStruct.Tiles) { JsdTile _tileRec = this.LoadJsdTile(_tile); _tileRec.JsdStructure = _structRec; this.FJsdTile.Add(_tileRec); } return(_structRec); }