Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 public new void Init()
 {
     Building = new BuildingObj();
 }
Пример #5
0
 public void remove_building()
 {
     Building = null;
 }
Пример #6
0
 public void add_building(BuildingObj building)
 {
     Building = building;
 }