public override void InitializeReactor() { if (puzzleDefinition.hasLargeOutput) { reactorScreen = new LargeOutputReactorArea(this); } else { reactorScreen = new ReactorScreen(this); } Reactor reactor = new Reactor(reactorScreen, new Vector2i(117, 4), new Vector2i(10, 8), puzzleDefinition.hasLargeOutput ? ReactorLayout.LargeOutput : ReactorLayout.Regular, false); reactorScreen.reactor = reactor; if (!HasExistingReactor() && !Constants.unknown1) { AddStartInstructions(); Vector2i firstBonderPosition = new Vector2i(4, 3 - (puzzleDefinition.bonderCount - 1) / 4); for (int i = 0; i < puzzleDefinition.bonderCount; ++i) { reactor.AddMember(new Vector2i(firstBonderPosition.x + i % 2, firstBonderPosition.y + i / 2), ReactorLayer.Background, new BonderFeature(reactor)); } for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Sensor); i++) { Vector2i position = new Vector2i(2 + i % 2, 3 - i / 2); reactor.AddMember(position, ReactorLayer.Background, new SensorFeature(reactor)); } for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Splitter); i++) { reactor.AddMember(new Vector2i(6, 4 + i), ReactorLayer.Background, new SplitterFeature(reactor)); } for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Fuser); i++) { reactor.AddMember(new Vector2i(6, 3 - i), ReactorLayer.Background, new FuserFeature(reactor)); } for (int i = 0; i < puzzleDefinition.GetFeatureCount(FeatureType.Teleporter); i++) { Vector2i position = new Vector2i(2 + i % 2, 4 + i / 2); reactor.AddMember(position, ReactorLayer.Background, new QuantumTunnelFeature(reactor)); } } reactorScreen.instructionsPanel = new InstructionsPanel(reactor, availableInstructions); reactorScreen.simulationEngine = new ReactorSimulationEngine(reactor); }
public Reactor(ReactorScreen reactorScreen, Vector2i position, Vector2i dimensions, ReactorLayout genum2_1, bool bool_2 = false) { }