private static void HandleSetO2LevelForPlayer(ulong sender, long identity, float value) { MyVisualScriptLogicProvider.SetPlayersOxygenLevel(identity, value); if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer) { actionSetO2LevelForPlayer.CallToOthers(identity, value); } }
static void HandleSetO2LevelForCharacter(ulong sender, long entityId, float level) { level = MyMath.Clamp(level, 0, 1); IMyEntity character; if (!MyAPIGateway.Entities.TryGetEntityById(entityId, out character)) { return; } MyCharacterOxygenComponent comp; if (!character.Components.TryGet(out comp)) { return; } comp.SuitOxygenLevel = level; if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer) { actionSetO2LevelForCharacter.CallToOthers(entityId, level); } }
static void HandleSetEnergyLevelForCharacter(ulong sender, long entityId, float level) { level = MyMath.Clamp(level, 0, 1); IMyEntity character; if (!MyAPIGateway.Entities.TryGetEntityById(entityId, out character)) { return; } MyCharacterOxygenComponent comp; if (!character.Components.TryGet(out comp)) { return; } comp.CharacterGasSource.SetRemainingCapacityByType(MyResourceDistributorComponent.ElectricityId, level * 1E-05f); if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer) { actionSetEnergyLevelForCharacter.CallToOthers(entityId, level); } }
static void HandleSetH2LevelForCharacter(ulong sender, long entityId, float level) { level = MyMath.Clamp(level, 0, 1); IMyEntity character; if (!MyAPIGateway.Entities.TryGetEntityById(entityId, out character)) { return; } MyCharacterOxygenComponent comp; if (!character.Components.TryGet(out comp)) { return; } var h2 = MyCharacterOxygenComponent.HydrogenId; comp.UpdateStoredGasLevel(ref h2, level); if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer) { actionSetH2LevelForCharacter.CallToOthers(entityId, level); } }