internal AircraftConfigurationEngines CreateIncremental(AircraftConfigurationEngines cfg) { EnsurePopulated(); cfg.EnsurePopulated(); if (cfg.Equals(this)) { return(null); } AircraftConfigurationEngines inc = new AircraftConfigurationEngines(); if (HasEngine1Object && cfg.HasEngine1Object) { inc.Engine1 = Engine1.CreateIncremental(cfg.Engine1); } if (HasEngine2Object && cfg.HasEngine2Object) { inc.Engine2 = Engine2.CreateIncremental(cfg.Engine2); } if (HasEngine3Object && cfg.HasEngine3Object) { inc.Engine3 = Engine3.CreateIncremental(cfg.Engine3); } if (HasEngine4Object && cfg.HasEngine4Object) { inc.Engine4 = Engine4.CreateIncremental(cfg.Engine4); } return(inc); }
public static void EngineTest() { var supEng = new SuperEngine(); supEng.Engine(54.0, 999, 8); var eng1 = new Engine1(); eng1.Engine(54.0, 999, 8); }
public void Do() { IEngine e = new Engine1(); ICapability1 cap1; if (e.TryGetCapability(out cap1)) { cap1.Foo(); } }
internal void ApplyIncremental(AircraftConfigurationEngines inc) { if (inc.HasEngine1Object && HasEngine1Object) { Engine1.ApplyIncremental(inc.Engine1); } if (inc.HasEngine2Object && HasEngine2Object) { Engine2.ApplyIncremental(inc.Engine2); } if (inc.HasEngine3Object && HasEngine3Object) { Engine3.ApplyIncremental(inc.Engine3); } if (inc.HasEngine4Object && HasEngine4Object) { Engine4.ApplyIncremental(inc.Engine4); } }
internal void EnsurePopulated() { if (HasEngine1Object) { Engine1.EnsurePopulated(); } if (HasEngine2Object) { Engine2.EnsurePopulated(); } if (HasEngine3Object) { Engine3.EnsurePopulated(); } if (HasEngine4Object) { Engine4.EnsurePopulated(); } }
internal AircraftConfigurationEngines Clone() { AircraftConfigurationEngines clone = new AircraftConfigurationEngines(); if (HasEngine1Object) { clone.Engine1 = Engine1.Clone(); } if (HasEngine2Object) { clone.Engine2 = Engine2.Clone(); } if (HasEngine3Object) { clone.Engine3 = Engine3.Clone(); } if (HasEngine4Object) { clone.Engine4 = Engine4.Clone(); } return(clone); }
public void Delete() { float delay = 0.3f * HexGrid.GameSpeed; foundationPart = null; if (weapon1 != null) { HexGrid.Destroy(weapon1.gameObject, delay); weapon1 = null; } if (extractor1 != null) { HexGrid.Destroy(extractor1.gameObject, delay); extractor1 = null; } if (container != null) { HexGrid.Destroy(container.gameObject, delay); container = null; } if (assembler != null) { HexGrid.Destroy(assembler.gameObject, delay); assembler = null; } if (reactor1 != null) { HexGrid.Destroy(reactor1.gameObject, delay); reactor1 = null; } if (engine1 != null) { HexGrid.Destroy(engine1.gameObject, delay); engine1 = null; } }
public void Assemble() { MoveUpdateStats stats = MoveUpdateStats; if (stats == null) { return; } if (currentPos == null) { return; } /* * NextMove.Stats.EngineLevel * NextMove.Stats.ArmorLevel ** * NextMove.Stats.ContainerLevel * NextMove.Stats.ExtractorLevel * NextMove.Stats.WeaponLevel * NextMove.Stats.ReactorLevel * NextMove.Stats.ProductionLevel */ HexCell targetCell = HexGrid.GroundCells[currentPos]; // Place the engine if (stats.EngineLevel > 0) { if (engine1 == null && stats.EngineLevel == 1) { engine1 = HexGrid.InstantiatePrefab <Engine1>("Engine1"); engine1.UnitFrame = this; engine1.UnitId = UnitId; engine1.name = UnitId + "-Engine"; foundationPart = engine1; SetPlayerColor(playerId, engine1.gameObject); unitLayout.PlaceOnGround(engine1, targetCell, HexGrid); } } else { if (foundationPart != null && engine1 == foundationPart) { ReparentParts(); foundationPart = null; } if (engine1 != null) { HexGrid.Destroy(engine1.gameObject); engine1 = null; } } // Place big extractor if (stats.ExtractorLevel > 0) { if (extractor1 == null && stats.ExtractorLevel == 1) { if (foundationPart == null) { extractor1 = HexGrid.InstantiatePrefab <Extractor1>("ExtractorGround1"); unitLayout.PlaceOnGround(extractor1, targetCell, HexGrid); foundationPart = extractor1; extractor1.name = UnitId + "-Extractor"; extractor1.UnitFrame = this; SetPlayerColor(playerId, extractor1.gameObject); } } } else { if (foundationPart != null && extractor1 == foundationPart) { ReparentParts(); foundationPart = null; } if (extractor1 != null) { HexGrid.Destroy(extractor1.gameObject); extractor1 = null; } } if (stats.ProductionLevel > 0) { if (assembler == null || assembler.Level != stats.ProductionLevel) { if (assembler != null) { HexGrid.Destroy(assembler.gameObject); assembler = null; } assembler = HexGrid.InstantiatePrefab <Assembler1>("Assembler" + stats.ProductionLevel); assembler.UnitFrame = this; assembler.Level = stats.ProductionLevel; assembler.name = UnitId + "-Assembler"; SetPlayerColor(playerId, assembler.gameObject); if (foundationPart == null) { unitLayout.PlaceOnGround(assembler, targetCell, HexGrid); foundationPart = assembler; } else { if (unitLayout.frame1 != null) { HexGrid.Destroy(unitLayout.frame1.gameObject); unitLayout.frame1 = null; } unitLayout.PlaceBigPart(assembler, foundationPart, targetCell, HexGrid); } } } else { if (assembler != null) { HexGrid.Destroy(assembler.gameObject); assembler = null; } } if (stats.ContainerLevel > 0) { if (container == null || container.Level != stats.ContainerLevel) { if (container != null) { HexGrid.Destroy(container.gameObject); container = null; } container = HexGrid.InstantiatePrefab <Container1>("Container" + stats.ContainerLevel); container.UnitFrame = this; container.name = UnitId + "-Container"; container.Level = stats.ContainerLevel; SetPlayerColor(playerId, container.gameObject); if (foundationPart is Extractor1) { if (stats.ProductionLevel > 0) { // Put it on top of the assembler unitLayout.PlaceOnTop(container, foundationPart, targetCell, HexGrid, 0.6f); } else { unitLayout.PlaceOnTop(container, foundationPart, targetCell, HexGrid, 0.3f); } } else { if (foundationPart == null) { unitLayout.PlaceOnGround(container, targetCell, HexGrid); foundationPart = container; } else { // Blueprint if (!unitLayout.PlaceContainer(container, foundationPart, targetCell, HexGrid)) { } //unitLayout.PlacePart(container, foundationPart, targetCell, HexGrid); } } } container.UpdateContent(stats.ContainerFull); } else { if (container != null) { HexGrid.Destroy(container.gameObject); container = null; } } if (stats.ReactorLevel > 0) { if (reactor1 == null && stats.ReactorLevel == 1) { reactor1 = HexGrid.InstantiatePrefab <Reactor1>("Reactor1"); reactor1.UnitFrame = this; reactor1.name = UnitId + "-Reactor1"; SetPlayerColor(playerId, reactor1.gameObject); if (foundationPart is Extractor1) { if (stats.ProductionLevel > 0 && stats.ContainerLevel > 0) { // Put it on top of the container unitLayout.PlaceOnTop(reactor1, foundationPart, targetCell, HexGrid, 0.8f); } else { unitLayout.PlaceBigPart(reactor1, foundationPart, targetCell, HexGrid); } } else { if (foundationPart == null) { unitLayout.PlaceOnGround(reactor1, targetCell, HexGrid); foundationPart = reactor1; } else { unitLayout.PlacePart(reactor1, foundationPart, targetCell, HexGrid); } } } } else { if (reactor1 != null) { HexGrid.Destroy(reactor1.gameObject); reactor1 = null; } } if (stats.WeaponLevel > 0) { if (weapon1 == null && stats.WeaponLevel == 1) { weapon1 = HexGrid.InstantiatePrefab <Weapon1>("Weapon1"); weapon1.UnitFrame = this; weapon1.name = UnitId + "-Weapon"; SetPlayerColor(playerId, weapon1.gameObject); if (foundationPart == null) { unitLayout.PlaceOnGround(weapon1, targetCell, HexGrid); foundationPart = weapon1; } else if (foundationPart is Extractor1) { unitLayout.PlaceBigPart(weapon1, foundationPart, targetCell, HexGrid); } else { if (!unitLayout.PlaceWeapon(weapon1, foundationPart, targetCell, HexGrid)) { } } } weapon1.UpdateContent(stats.WeaponLoaded); } else { if (weapon1 != null) { HexGrid.Destroy(weapon1.gameObject); weapon1 = null; } } // Place small extractor if (stats.ExtractorLevel > 0) { if (extractor1 == null && stats.ExtractorLevel == 1) { if (foundationPart != null) { extractor1 = HexGrid.InstantiatePrefab <Extractor1>("Extractor1"); unitLayout.PlacePart(extractor1, foundationPart, targetCell, HexGrid); extractor1.name = UnitId + "-Extractor"; extractor1.UnitFrame = this; SetPlayerColor(playerId, extractor1.gameObject); } } } }