예제 #1
0
 private void treeViewFolderContents_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
 {
     if (e.Node.Tag != null)//root folder clicked :P
     {
         Instance3D selected_instance = (Instance3D)e.Node.Tag;
         ProjectManager.MapSpawns.AddSelection(selected_instance);
     }
 }
예제 #2
0
 public override void CreateMyInstance(int index, Action callback)
 {
     base.CreateMyInstance(index, callback);
     Instance3D.name = "Earthquake_" + index;
     //Instance3D.GetComponent<EarthquakeDataPoint>().Init(this, label);
     callback();
     Instance3D.GetComponent <EarthquakeInstance>().Init(this);
 }
예제 #3
0
 public override void CreateMyInstance(int index, Action callback)
 {
     base.CreateMyInstance(index, callback);
     Instance3D.name = name + "_" + index;
     //Instance3D.GetComponent<StromDataPoint>().Init(this, label);
     Instance3D.GetComponent <StormInstance>().Init(this);
     callback();
 }
예제 #4
0
        private void scenarioItems_FocusOnObject(string itemTitle, object innerObject)
        {
            // Focus the camera on the specified object.
            Instance3D selected_instance = (Instance3D)innerObject;
            Vector3    from = new Vector3();

            from    = selected_instance.Translation;
            from.X += 5;
            from.Y += 5;
            from.Z += 3;
            MdxRender.Camera.SetLookAt(from, selected_instance.Translation);
        }
예제 #5
0
        private void CreateInstance(Scenario.ScenarioSoundSceneryBlock block)
        {
            Instance3D scenario_object = null;
            string     obj_name        = scenarioTag.ScenarioValues.SoundSceneryPalette[block.Type.Value].Name.Value;

            scenario_object             = new Instance3D(BillboardModel.Sound_Scenery);
            scenario_object.ObjectColor = Color.Green;
            scenario_object.InitializeRotationBinding(block.Rotation);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.SoundScenery;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
예제 #6
0
        /*
         * ScenarioEquipmentBlock
         * ScenarioWeaponBlock
         * ScenarioMachineBlock
         * ScenarioControlBlock
         * ScenarioProfilesBlock
         * ScenarioPlayersBlock
         * ScenarioTriggerVolumeBlock
         * ScenarioStartingEquipmentBlock
         * ScenarioBspSwitchTriggerVolumeBlock
         */

        private void CreateInstance(Scenario.ScenarioLightFixtureBlock block)
        {
            Instance3D scenario_object = null;
            string     obj_name        = scenarioTag.ScenarioValues.LightFixturesPalette[block.Type.Value].Name.Value;

            scenario_object = new Instance3D(MdxRender.MM.LightModel);

            scenario_object.InitializeRotationBinding(block.Rotation);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.LightFixtures;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
        public static Instance3D FromXDocument(XElement xElement)
        {
            var id       = int.Parse(xElement.Attribute(XName.Get("id")).Value);
            var name     = xElement.Attribute(XName.Get("name")).Value;
            var instance = new Instance3D(id, name)
            {
                AggregatedBy   = ParseUtility.ValueOfDescendant(xElement, "IsAggregatedBy", Convert.ToInt32, 0),
                InstanceOf     = ParseUtility.ValueOfDescendant(xElement, "IsInstanceOf", Convert.ToInt32, 0),
                RelativeMatrix =
                    ParseUtility.ValueOfDescendant <IList <double> >(xElement, "RelativeMatrix",
                                                                     ParseList, new List <double>())
            };

            return(instance);
        }
예제 #8
0
        private void CreateInstance(Scenario.ScenarioDecalsBlock block)
        {
            Instance3D scenario_object = null;
            string     obj_name        = scenarioTag.ScenarioValues.DecalPalette[block.DecalType.Value].Reference.Value;

            TagFileName bitmap_tfn = GetDecalBitmap(new TagFileName(obj_name, "deca", this.version));
            PromDecal   pd         = new PromDecal(1, bitmap_tfn);

            scenario_object = new Instance3D(pd);
            //scenario_object.InitializeRotationBinding(block.Position);
            //todo: bind the byte rotation that these objects use
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.InitializeRotationBinding(block.Ya, block.Pitc);
            scenario_object.ObjectType = ObjectType.Decals;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
예제 #9
0
        private void CreateInstance(Scenario.ScenarioVehicleBlock block)
        {
            Instance3D  scenario_object = null;
            string      obj_name        = scenarioTag.ScenarioValues.VehiclePalette[block.Type.Value].Name.Value;
            TagFileName model_name      = GetModelName(new TagFileName(obj_name, "vehi", version));

            if (model_name.Exists)
            {
                scenario_object = new Instance3D(model_name);
            }
            else
            {
                scenario_object = new Instance3D(MdxRender.MM.DefaultModel);
            }

            scenario_object.InitializeRotationBinding(block.Rotation);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.Vehicle;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
예제 #10
0
        private void CreateInstance(Scenario.ScenarioNetgameEquipmentBlock block)
        {
            Instance3D  scenario_object = null;
            string      obj_name        = block.ItemCollection.Value;
            TagFileName model_name      = GetModelName(new TagFileName(obj_name, "itmc", version));

            if (model_name.Exists)
            {
                scenario_object = new Instance3D(model_name);
            }
            else
            {
                scenario_object = new Instance3D(MdxRender.MM.DefaultModel);
            }

            scenario_object.InitializeRotationBinding(block.Facing);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.Equipment;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
예제 #11
0
        private void CreateInstance(Scenario.ScenarioPlayersBlock block)
        {
            Instance3D scenario_object = null;

            //todo: get name of spawn block

            scenario_object = new Instance3D(MdxRender.MM.PlayerSpawnModel);
            scenario_object.InitializeRotationBinding(block.Facing);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.PlayerStart;
            if (block.TeamIndex.Value == 0)
            {
                scenario_object.ObjectColor = Color.Red;
            }
            else
            {
                scenario_object.ObjectColor = Color.Blue;
            }

            scenario_object.PlayerSpawn = true;
            scenario_object.ObjectName  = "";
            instanceCollection.Add(scenario_object);
        }
 abstract public void RemoveInstance(Instance3D Item);
 abstract public void EditInstance(Instance3D Item);
예제 #14
0
 public override void EditInstance(Instance3D Item)
 {
     //update the properties of the respective
 }
 public void EditInstance(Instance3D Item)
 {
 }
예제 #16
0
        private void CreateInstance(Scenario.ScenarioNetgameFlagsBlock block)
        {
            string     obj_name        = null;
            Instance3D scenario_object = null;

            //todo: get name of flag
            switch (block.Type.Value)
            {
            case 0:
                scenario_object = new Instance3D(BillboardModel.CTF_Flag);
                obj_name        = "CTF Flag";
                break;

            case 1:
                scenario_object = new Instance3D(BillboardModel.CTF_Vehicle);
                obj_name        = "CTF Vehicle";
                break;

            case 2:
                scenario_object = new Instance3D(BillboardModel.Oddball);
                obj_name        = "Oddball Ball Spawn";
                break;

            case 3:
                scenario_object = new Instance3D(BillboardModel.Race_Track);
                obj_name        = "Race - Track";
                break;

            case 4:
                scenario_object = new Instance3D(BillboardModel.Race_Vehicle);
                obj_name        = "Race - Vehicle";
                break;

            case 5:
                scenario_object = new Instance3D(BillboardModel.Vegas_Bank);
                obj_name        = "Vegas - Bank";
                break;

            case 6:
                scenario_object = new Instance3D(BillboardModel.Teleport_From);
                obj_name        = "Teleport From";
                break;

            case 7:
                scenario_object = new Instance3D(BillboardModel.Teleport_To);
                obj_name        = "Teleport To";
                break;

            case 8:
                scenario_object = new Instance3D(BillboardModel.KOH);
                obj_name        = "Hill Flag";
                break;

            default:
                throw new Exception("Invalid netgame flag type instantiated.");
                break;
            }

            scenario_object.ObjectColor = Color.Green;
            scenario_object.InitializeRotationBinding(block.Facing);
            scenario_object.InitializeTranslationBinding(block.Position);
            scenario_object.ObjectType = ObjectType.NetgameFlags;
            scenario_object.ObjectName = obj_name;
            instanceCollection.Add(scenario_object);
        }
예제 #17
0
        public override void RemoveInstance(Instance3D Item)
        {
            //remove the instance

            //decrement the indices of the following items in the same section
        }
 public void RemoveInstance(Instance3D Item)
 {
 }