void CreatePrefabAction(GameObject InstancedPrefab) { UnitSource us = GetGamedataFile.LoadUnit(SelectedUnit.CodeName); SelectedUnitSource.Parent = FirstSelected.Source; SelectedUnitSource.Owner = FirstSelected.Owner; us.FillGameObjectValues(InstancedPrefab, SelectedUnitSource, FirstSelected.Source, Vector3.zero, Quaternion.identity); }
public void Instantiate() { if (Instance && Instance.gameObject) { return; } UnitInstance ui = GetGamedataFile.LoadUnit(type).CreateUnitObject(this, Parent); ui.IsWreckage = Parent.IsWreckage ? 1 : 0; if (AllNames.Contains(Name)) { Name = GetFreeName("UNIT_"); } AllNames.Add(Name); }
public UnitsGroup(string name, LuaTable Table) { Name = name; orders = LuaParser.Read.StringFromTable(Table, KEY_ORDERS); platoon = LuaParser.Read.StringFromTable(Table, KEY_PLATOON); UnitGroups = new HashSet <UnitsGroup>(); UnitInstances = new HashSet <UnitInstance>(); LuaTable[] UnitsTables = LuaParser.Read.GetTableTables((LuaTable)Table.RawGet(KEY_UNITS)); string[] UnitsNames = LuaParser.Read.GetTableKeys((LuaTable)Table.RawGet(KEY_UNITS)); if (UnitsNames.Length > 0) { for (int i = 0; i < UnitsNames.Length; i++) { if (LuaParser.Read.ValueExist(UnitsTables[i], KEY_TYPE)) { Unit NewUnit = new Unit(); NewUnit.Name = UnitsNames[i]; NewUnit.type = LuaParser.Read.StringFromTable(UnitsTables[i], KEY_TYPE); NewUnit.orders = LuaParser.Read.StringFromTable(UnitsTables[i], KEY_ORDERS); NewUnit.platoon = LuaParser.Read.StringFromTable(UnitsTables[i], KEY_PLATOON); //Debug.Log(UnitsTables[i].RawGet(KEY_POSITION)); NewUnit.Position = LuaParser.Read.Vector3FromTable(UnitsTables[i], KEY_POSITION); NewUnit.Orientation = LuaParser.Read.Vector3FromTable(UnitsTables[i], KEY_ORIENTATION); GetGamedataFile.LoadUnit(NewUnit.type).CreateUnitObject(NewUnit, this); } else { UnitsGroup NewUnitsGroup = new UnitsGroup(UnitsNames[i], UnitsTables[i]); UnitGroups.Add(NewUnitsGroup); } } } else { UnitGroups = new HashSet <UnitsGroup>(); UnitInstances = new HashSet <UnitInstance>(); } }