public MySyncLaserAntenna(MyLaserAntenna id) { m_Parent = id; }
protected void ChangeMode(MyLaserAntenna.StateEnum Mode, bool UploadFromClient) { if (!Sync.MultiplayerActive) m_Parent.ChangeMode(Mode); else if (UploadFromClient || Sync.IsServer) { var msg = new ChangeModeMsg(); msg.EntityId = m_Parent.EntityId; msg.ModeByte = SetmodeByte(Mode); Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);//TODO!! ChangeModeRequest } }
public static byte SetmodeByte(MyLaserAntenna.StateEnum Mode) { return (byte)Mode; }
public void ShiftMode(MyLaserAntenna.StateEnum Mode)//same as ChengeMode but MP client side will not be propagated to server { ChangeMode(Mode, false); }
public void ChangeMode(MyLaserAntenna.StateEnum Mode) { ChangeMode(Mode, true); }
protected bool IsInRange(MyLaserAntenna target) { float maxRange=(target.m_maxRange+m_maxRange)*0.5f; if (Dist2To(target.HeadPos) > maxRange * maxRange) return false; return true; }
protected bool LosTests(MyLaserAntenna la) { m_wasVisible = true; if (!LosTest(la.HeadPos)) la.m_wasVisible = false; if (m_wasVisible) m_wasVisible=la.LosTest(HeadPos); return m_wasVisible; }
protected bool IsInContact(MyLaserAntenna la) { if (la == null) return false; return Receiver.RelayedBroadcasters.Contains(la.Broadcaster); }