public static void SendShipyardSettings(long entityId, YardSettingsStruct settings) { string message = MyAPIGateway.Utilities.SerializeToXML(settings); byte[] messageBytes = Encoding.UTF8.GetBytes(message); var data = new byte[sizeof(long) + messageBytes.Length]; BitConverter.GetBytes(entityId).CopyTo(data, 0); messageBytes.CopyTo(data, sizeof(long)); SendMessageToServer(MessageTypeEnum.ShipyardSettings, data); }
private void SetBuildPattern(IMyCubeBlock b, long value) { if (GetYard(b) == null) { return; } if (value == GetBuildPattern(b)) { return; } YardSettingsStruct settings = ShipyardSettings.Instance.GetYardSettings(b.CubeGrid.EntityId); settings.BuildPattern = (BuildPatternEnum)value; ShipyardSettings.Instance.SetYardSettings(b.CubeGrid.EntityId, settings); Communication.SendShipyardSettings(b.CubeGrid.EntityId, settings); }
private void SetLockEnabled(IMyCubeBlock b, bool value) { if (GetYard(b) == null) { return; } if (value == GetLockEnabled(b)) { return; } YardSettingsStruct settings = ShipyardSettings.Instance.GetYardSettings(b.CubeGrid.EntityId); settings.AdvancedLocking = value; ShipyardSettings.Instance.SetYardSettings(b.CubeGrid.EntityId, settings); Communication.SendShipyardSettings(b.CubeGrid.EntityId, settings); }
private void SetWeldSpeed(IMyCubeBlock b, float value) { if (GetYard(b) == null) { return; } if (value == GetWeldSpeed(b)) { return; } YardSettingsStruct settings = ShipyardSettings.Instance.GetYardSettings(b.CubeGrid.EntityId); settings.WeldMultiplier = value; ShipyardSettings.Instance.SetYardSettings(b.CubeGrid.EntityId, settings); Communication.SendShipyardSettings(b.CubeGrid.EntityId, settings); }
private void SetBeamCount(IMyCubeBlock b, int value) { if (GetYard(b) == null) { return; } //this value check stops infinite loops of sending the setting to server and immediately getting the same value back if (value == GetBeamCount(b)) { return; } YardSettingsStruct settings = ShipyardSettings.Instance.GetYardSettings(b.CubeGrid.EntityId); settings.BeamCount = value; ShipyardSettings.Instance.SetYardSettings(b.CubeGrid.EntityId, settings); Communication.SendShipyardSettings(b.CubeGrid.EntityId, settings); }