/// <summary> /// Updates the connection state and target. Both ComponentLaser must be updated for IsConnectedTo to return true. /// </summary> public void Update() { if (!m_laser.IsWorking) { m_targetEntityId = null; return; } MyObjectBuilder_LaserAntenna builder = ((IMyCubeBlock)m_laser).GetObjectBuilderCubeBlock() as MyObjectBuilder_LaserAntenna; m_targetEntityId = builder.targetEntityId; if (m_targetEntityId == null) { return; } m_state = builder.State; }
public void UpdateAfterSimulation100() { try { if (!myLaserAntenna.IsWorking) { return; } //Showoff.doShowoff(CubeBlock, myLastSeen.Values.GetEnumerator(), myLastSeen.Count); // stage 5 is the final stage. It is possible for one to be in stage 5, while the other is not MyObjectBuilder_LaserAntenna builder = CubeBlock.getSlim().GetObjectBuilder() as MyObjectBuilder_LaserAntenna; if (builder.targetEntityId != null) { foreach (LaserAntenna lAnt in value_registry) { if (lAnt.CubeBlock.EntityId == builder.targetEntityId) { if (builder.State == 5 && (lAnt.CubeBlock.getSlim().GetObjectBuilder() as MyObjectBuilder_LaserAntenna).State == 5) { //log("Laser " + CubeBlock.gridBlockName() + " connected to " + lAnt.CubeBlock.gridBlockName(), "UpdateAfterSimulation100()", Logger.severity.DEBUG); foreach (LastSeen seen in myLastSeen.Values) { lAnt.receive(seen); } foreach (Message mes in myMessages) { lAnt.receive(mes); } break; } } } } // send to attached receivers Receiver.sendToAttached(CubeBlock, myLastSeen); Receiver.sendToAttached(CubeBlock, myMessages); UpdateEnemyNear(); } catch (Exception e) { myLogger.log("Exception: " + e, "UpdateAfterSimulation100()", Logger.severity.ERROR); } }