Example #1
0
        void CreateLandmarks()
        {
            plant = new PowerPlant(this);
            gasStation = new GasStation(this);

            CreateHangar();

            Model shack = new Model("Shack");
            (MainTerrain as TerrainVoxel).GetLandmarkTransform(MapLandmark.Docks, shack.Transformation, shack.GetMesh().GetBounds());
            AddEntity("Shack", shack);

            InteractObject key = new InteractObject(null, "Key");
            key.SetInteractNode(new PickupNode(key, PickupName.Key, "Key"));
            key.Transformation.SetPosition(shack.Transformation.GetPosition());
            key.Transformation.SetRotation(shack.Transformation.GetRotation());
            AddEntity("Key", key);

            SafeTrigger campTrigger = new SafeTrigger();
            campTrigger.Transformation.SetPosition(shack.Transformation.GetPosition());
            campTrigger.Transformation.SetScale(Vector3.One * 30);
            AddEntity("SafeTrigger", campTrigger);

            Model arena = new Model("Arena");
            (MainTerrain as TerrainVoxel).GetLandmarkTransform(MapLandmark.Meadow, arena.Transformation, arena.GetMesh().GetBounds());
            AddEntity("Arena", arena);

            Model windmill = new Model("Windmill");
            (MainTerrain as TerrainVoxel).GetLandmarkTransform(MapLandmark.Windmill, windmill.Transformation, windmill.GetMesh().GetBounds());
            AddEntity("Windmill", windmill);

            Model well = new Model("Well");
            (MainTerrain as TerrainVoxel).GetLandmarkTransform(MapLandmark.Well, well.Transformation, well.GetMesh().GetBounds());
            AddEntity("Well", well);

            Model tower = new Model("RadioTower");
            (MainTerrain as TerrainVoxel).GetLandmarkTransform(MapLandmark.RadioTower, tower.Transformation, tower.GetMesh().GetBounds());
            AddEntity("RadioTower", tower);

            CreateStartZone();

            BoundingBox sandBounds = MainTerrain.Transformation.GetBounds();
            sandBounds.Max.Y = 0;
            (MainTerrain as TerrainVoxel).SetUnavailableRegion(sandBounds);

            for (int i = 0; i < 50; i++)
            {
                Vector3 normalWeapon;
                Vector3 posWeapon;
                (MainTerrain as TerrainVoxel).GenerateRandomTransform(RandomHelper.RandomGen, out posWeapon, out normalWeapon);
                InteractObject weaponBox = new InteractObject(new WeaponBoxNode(this), "AmmoBox");
                NormalTransform transform = new NormalTransform();
                weaponBox.Transformation = transform;
                transform.ConformToNormal(normalWeapon);
                transform.SetPosition(posWeapon);
                AddEntity("WeaponBox", weaponBox);
            }

            sandBounds = MainTerrain.Transformation.GetBounds();
            sandBounds.Max.Y = 16;
            (MainTerrain as TerrainVoxel).SetUnavailableRegion(sandBounds);
        }
Example #2
0
 public SwitchNode(PowerPlant plant, int bitFlag)
 {
     this.plant = plant;
     this.bitFlag = bitFlag;
 }