예제 #1
0
 private static void HandleSetO2LevelForPlayer(ulong sender, long identity, float value)
 {
     MyVisualScriptLogicProvider.SetPlayersOxygenLevel(identity, value);
     if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer)
     {
         actionSetO2LevelForPlayer.CallToOthers(identity, value);
     }
 }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
            }
        }