public void init_buildings() { if (Info == null || SideCellCount != 8) { return; } uint maxSize = 0, stabNum = 0; foreach (var info in Info.Buildings) { var building = BuildingObj.makeBuilding(info.ModelId, info.Portals, info.NumLeaves); var position = new Position(ID, new AFrame(info.Frame)); var outside = LandDefs.AdjustToOutside(position); var cell = get_landcell(position.ObjCellID); if (cell == null) { continue; } building.set_initial_frame(position.Frame); // hack building.PartArray.Parts[0].Pos = position; building.Position = position; cell.Building = building; building.add_to_cell(cell); // SortCell? Buildings.Add(building); building.add_to_stablist(ref StabList, ref maxSize, ref stabNum); } }
public static BuildingObj makeBuilding(uint buildingID, List <CBldPortal> portals, uint numLeaves) { var building = new BuildingObj(); if (!building.InitObjectBegin(0, false) || !building.InitPartArrayObject(buildingID, true)) { return(null); } building.ID = buildingID; building.NumLeaves = numLeaves; building.LeafCells = new List <PartCell>(); for (var i = 0; i < numLeaves; i++) { building.LeafCells.Add(null); } building.Portals = new List <BldPortal>(); foreach (var portal in portals) { building.Portals.Add(new BldPortal(portal)); } if (!building.InitObjectEnd()) { return(null); } return(building); }
public static BuildingObj makeBuilding(uint buildingID, List <CBldPortal> portals, uint numLeaves) { // todo: initobj begin/end var buildingObj = new BuildingObj(); buildingObj.ID = buildingID; buildingObj.Portals = portals; //buildingObj.NumLeaves = numLeaves; return(buildingObj); }
public new void Init() { Building = new BuildingObj(); }
public void remove_building() { Building = null; }
public void add_building(BuildingObj building) { Building = building; }