Иконка ресурса

FREE SleepingSettings : 1.0.0 1.0.0

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System.Collections;
using Newtonsoft.Json;
using UnityEngine;

namespace Oxide.Plugins
{
    [Info("SleepingSettings", "Kira", "1.0.0")]
    [Description("Sleeping settings for WarLand")]
    public class SleepingSettings : RustPlugin
    {
        #region [Vars]

        private WaitForSeconds wait = new WaitForSeconds(0.1f);

        #endregion

        #region [Configuraton] / [Конфигурация]

        private ConfigData _config;

        public class ConfigData
        {
            [JsonProperty(PropertyName = "SleepingSettings - Config")]
            public SleepingSettingsCFG SleepingSettings = new SleepingSettingsCFG();

            public class SleepingSettingsCFG
            {
                [JsonProperty(PropertyName = "Здоровья спальника")]
                public float baghealth = 50f;
            }
        }

        private ConfigData GetDefaultConfig()
        {
            return new ConfigData
            {
                SleepingSettings = new ConfigData.SleepingSettingsCFG
                {
                    baghealth = 50f
                }
            };
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();

            try
            {
                _config = Config.ReadObject<ConfigData>();
            }
            catch
            {
                LoadDefaultConfig();
            }

            SaveConfig();
        }

        protected override void LoadDefaultConfig()
        {
            PrintError("Файл конфигурации поврежден (или не существует), создан новый!");
            _config = GetDefaultConfig();
        }

        protected override void SaveConfig()
        {
            Config.WriteObject(_config);
        }

        #endregion

        // ReSharper disable once UnusedMember.Local
        private void OnServerInitialized()
        {
            ServerMgr.Instance.StartCoroutine(ProcessBags());
        }

        // ReSharper disable once UnusedMember.Local
        private void OnEntityBuilt(Planner plan, GameObject go)
        { 
            if (plan == null || go == null) return;
            if (go.ToBaseEntity() == null) return; 
            var ent = go.ToBaseEntity();
            if (ent is global::SleepingBag)
                ent.gameObject.GetComponent<global::SleepingBag>().SetHealth(_config.SleepingSettings.baghealth);
        }

        private IEnumerator ProcessBags()
        {
            foreach (var ent in UnityEngine.Object.FindObjectsOfType<global::SleepingBag>())
            {
                var bag = ent.gameObject.GetComponent<global::SleepingBag>();
                if (bag.health > _config.SleepingSettings.baghealth)
                    bag.SetHealth(_config.SleepingSettings.baghealth);
                yield return wait;
            }

            yield return 0;
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху