/// <summary> /// Call Update() on every object in Entity.list /// </summary> public static void UpdateAll(float deltaTime, Camera cam) { foreach (Hull hull in Hull.hullList) { hull.Update(deltaTime, cam); } foreach (Structure structure in Structure.WallList) { structure.Update(deltaTime, cam); } //update gaps in random order, because otherwise in rooms with multiple gaps //the water/air will always tend to flow through the first gap in the list, //which may lead to weird behavior like water draining down only through //one gap in a room even if there are several foreach (Gap gap in Gap.GapList.OrderBy(g => Rand.Int(int.MaxValue))) { gap.Update(deltaTime, cam); } Powered.UpdatePower(deltaTime); foreach (Item item in Item.ItemList) { item.Update(deltaTime, cam); } UpdateAllProjSpecific(deltaTime); Spawner?.Update(); }
public Gadget(float price, Powered.Power power) { _Price = price; _Switches = new Switch(); _Buttons = new Buttons(); _Lights = new Lights(); _painted = new Painted(); _power = new Powered(); _power.DefaultPower = power; }
// Use this for initialization protected virtual void Start() { if (m_providesPower) { Collider[] colliders = Physics.OverlapSphere(transform.position, 0.1f); foreach (var c in colliders) { Powered p = c.GetComponentInParent <Powered>(); if (p && p != this && p.m_recievesPower) { Debug.Log(p.gameObject.name); p.m_sources.Add(this); break; } } } }
protected override void Start() { if (Application.isPlaying) { base.Start(); //m_terminus.AddSource(this); if (m_recievesPower) { Collider[] colliders = Physics.OverlapSphere(transform.position, 0.1f); foreach (var c in colliders) { Powered p = c.GetComponentInParent <Powered>(); if (p && p != this && p.providesPower) { m_sources.Add(p); break; } } } } }
public override void Start() { base.Start(); radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker"); engineer = Character.Controlled; var toolbox = engineer.Inventory.FindItemByIdentifier("toolbox"); toolbox.Unequip(engineer); engineer.Inventory.RemoveItem(toolbox); var repairOrder = Order.PrefabList.Find(order => order.AITag == "repairsystems"); engineer_repairIcon = repairOrder.SymbolSprite; engineer_repairIconColor = repairOrder.Color; var reactorOrder = Order.PrefabList.Find(order => order.AITag == "operatereactor"); engineer_reactorIcon = reactorOrder.SymbolSprite; engineer_reactorIconColor = reactorOrder.Color; // Other tutorial items tutorial_securityFinalDoorLight = Item.ItemList.Find(i => i.HasTag("tutorial_securityfinaldoorlight")).GetComponent <LightComponent>(); tutorial_mechanicFinalDoorLight = Item.ItemList.Find(i => i.HasTag("tutorial_mechanicfinaldoorlight")).GetComponent <LightComponent>(); tutorial_submarineSteering = Item.ItemList.Find(i => i.HasTag("command")).GetComponent <Steering>(); tutorial_submarineSteering.CanBeSelected = false; foreach (ItemComponent ic in tutorial_submarineSteering.Item.Components) { ic.CanBeSelected = false; } SetDoorAccess(null, tutorial_securityFinalDoorLight, false); SetDoorAccess(null, tutorial_mechanicFinalDoorLight, false); // Room 2 engineer_equipmentObjectiveSensor = Item.ItemList.Find(i => i.HasTag("engineer_equipmentobjectivesensor")).GetComponent <MotionSensor>(); engineer_equipmentCabinet = Item.ItemList.Find(i => i.HasTag("engineer_equipmentcabinet")).GetComponent <ItemContainer>(); engineer_firstDoor = Item.ItemList.Find(i => i.HasTag("engineer_firstdoor")).GetComponent <Door>(); engineer_firstDoorLight = Item.ItemList.Find(i => i.HasTag("engineer_firstdoorlight")).GetComponent <LightComponent>(); SetDoorAccess(engineer_firstDoor, engineer_firstDoorLight, false); // Room 3 engineer_reactorObjectiveSensor = Item.ItemList.Find(i => i.HasTag("engineer_reactorobjectivesensor")).GetComponent <MotionSensor>(); tutorial_oxygenGenerator = Item.ItemList.Find(i => i.HasTag("tutorial_oxygengenerator")).GetComponent <Powered>(); engineer_reactor = Item.ItemList.Find(i => i.HasTag("engineer_reactor")).GetComponent <Reactor>(); engineer_reactor.FireDelay = engineer_reactor.MeltdownDelay = float.PositiveInfinity; engineer_reactor.FuelConsumptionRate = 0.0f; engineer_reactor.OnOffSwitch.BarScroll = 1f; reactorOperatedProperly = false; engineer_secondDoor = Item.ItemList.Find(i => i.HasTag("engineer_seconddoor")).GetComponent <Door>();; engineer_secondDoorLight = Item.ItemList.Find(i => i.HasTag("engineer_seconddoorlight")).GetComponent <LightComponent>(); SetDoorAccess(engineer_secondDoor, engineer_secondDoorLight, false); // Room 4 engineer_repairJunctionBoxObjectiveSensor = Item.ItemList.Find(i => i.HasTag("engineer_repairjunctionboxobjectivesensor")).GetComponent <MotionSensor>(); engineer_brokenJunctionBox = Item.ItemList.Find(i => i.HasTag("engineer_brokenjunctionbox")); engineer_thirdDoor = Item.ItemList.Find(i => i.HasTag("engineer_thirddoor")).GetComponent <Door>(); engineer_thirdDoorLight = Item.ItemList.Find(i => i.HasTag("engineer_thirddoorlight")).GetComponent <LightComponent>(); engineer_brokenJunctionBox.Indestructible = false; engineer_brokenJunctionBox.Condition = 0f; SetDoorAccess(engineer_thirdDoor, engineer_thirdDoorLight, false); // Room 5 engineer_disconnectedJunctionBoxObjectiveSensor = Item.ItemList.Find(i => i.HasTag("engineer_disconnectedjunctionboxobjectivesensor")).GetComponent <MotionSensor>(); engineer_disconnectedJunctionBoxes = new PowerTransfer[4]; engineer_disconnectedConnectionPanels = new ConnectionPanel[4]; for (int i = 0; i < engineer_disconnectedJunctionBoxes.Length; i++) { engineer_disconnectedJunctionBoxes[i] = Item.ItemList.Find(item => item.HasTag($"engineer_disconnectedjunctionbox_{i + 1}")).GetComponent <PowerTransfer>(); engineer_disconnectedConnectionPanels[i] = engineer_disconnectedJunctionBoxes[i].Item.GetComponent <ConnectionPanel>(); engineer_disconnectedConnectionPanels[i].Locked = false; for (int j = 0; j < engineer_disconnectedJunctionBoxes[i].PowerConnections.Count; j++) { foreach (Wire wire in engineer_disconnectedJunctionBoxes[i].PowerConnections[j].Wires) { if (wire == null) { continue; } wire.Locked = true; } } } engineer_wire_1 = Item.ItemList.Find(i => i.HasTag("engineer_wire_1")); engineer_wire_1.SpriteColor = Color.Transparent; engineer_wire_2 = Item.ItemList.Find(i => i.HasTag("engineer_wire_2")); engineer_wire_2.SpriteColor = Color.Transparent; engineer_lamp_1 = Item.ItemList.Find(i => i.HasTag("engineer_lamp_1")).GetComponent <Powered>(); engineer_lamp_2 = Item.ItemList.Find(i => i.HasTag("engineer_lamp_2")).GetComponent <Powered>(); engineer_fourthDoor = Item.ItemList.Find(i => i.HasTag("engineer_fourthdoor")).GetComponent <Door>(); engineer_fourthDoorLight = Item.ItemList.Find(i => i.HasTag("engineer_fourthdoorlight")).GetComponent <LightComponent>(); SetDoorAccess(engineer_fourthDoor, engineer_fourthDoorLight, false); // Room 6 engineer_workingPump = Item.ItemList.Find(i => i.HasTag("engineer_workingpump")).GetComponent <Pump>(); engineer_workingPump.Item.CurrentHull.WaterVolume += engineer_workingPump.Item.CurrentHull.Volume; engineer_workingPump.IsActive = true; tutorial_lockedDoor_1 = Item.ItemList.Find(i => i.HasTag("tutorial_lockeddoor_1")).GetComponent <Door>(); SetDoorAccess(tutorial_lockedDoor_1, null, true); // Submarine tutorial_submarineDoor = Item.ItemList.Find(i => i.HasTag("tutorial_submarinedoor")).GetComponent <Door>(); tutorial_submarineDoorLight = Item.ItemList.Find(i => i.HasTag("tutorial_submarinedoorlight")).GetComponent <LightComponent>(); SetDoorAccess(tutorial_submarineDoor, tutorial_submarineDoorLight, true); tutorial_enteredSubmarineSensor = Item.ItemList.Find(i => i.HasTag("tutorial_enteredsubmarinesensor")).GetComponent <MotionSensor>(); engineer_submarineJunctionBox_1 = Item.ItemList.Find(i => i.HasTag("engineer_submarinejunctionbox_1")); engineer_submarineJunctionBox_2 = Item.ItemList.Find(i => i.HasTag("engineer_submarinejunctionbox_2")); engineer_submarineJunctionBox_3 = Item.ItemList.Find(i => i.HasTag("engineer_submarinejunctionbox_3")); engineer_submarineReactor = Item.ItemList.Find(i => i.HasTag("engineer_submarinereactor")).GetComponent <Reactor>(); engineer_submarineReactor.OnOffSwitch.BarScrollValue = .25f; engineer_submarineReactor.IsActive = engineer_submarineReactor.AutoTemp = false; engineer_submarineJunctionBox_1.Indestructible = false; engineer_submarineJunctionBox_1.Condition = 0f; engineer_submarineJunctionBox_2.Indestructible = false; engineer_submarineJunctionBox_2.Condition = 0f; engineer_submarineJunctionBox_3.Indestructible = false; engineer_submarineJunctionBox_3.Condition = 0f; }
public void AddSource(Powered powered) { m_sources.Add(powered); }