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

FREE AnScreenLogo : 0.0.1 0.0.1

Нет прав для скачивания
C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using Oxide.Core;
using Oxide.Game.Rust.Cui;
using System;
using System.IO;
using UnityEngine;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("AnScreenLogo", "^^", "0.0.1")]
    [Description("Displays the button on the player screen.")]
    class AnScreenLogo : RustPlugin
    {
        private string PanelName = "GsAdX1wazasdsHs";
        private string Image = "";

        #region Config Setup
        private string Amax = "0.34 0.105";
        private string Amin = "0.26 0.025";
        private string ImageAddress = "https://fedoraproject.org/w/uploads/e/ee/Edition-server-full_one-color_black.png";
        #endregion

        #region ImLibrary
        [PluginReference] Plugin ImageLibrary;
        string GetImage(string shortname, ulong skin = 0) => (string)ImageLibrary?.Call("GetImage", shortname, skin);
        bool AddImage(string url, string shortname, ulong skin = 0) => (bool)ImageLibrary?.Call("AddImage", url, shortname, skin);
        #endregion

        #region Initialization
        protected override void LoadDefaultConfig()
        {
            PrintWarning("Generating default configuration file...");
        }

        protected override void LoadConfig()
        {
            base.LoadConfig();
            GetConfig("Image.Link or name of the file in the data folder", ref ImageAddress);
            GetConfig("Minimum anchor", ref Amin);
            GetConfig("Maximum anchor", ref Amax);
            if (!ImageAddress.ToLower().Contains("http"))
            {
                ImageAddress = "file://" + Interface.Oxide.DataDirectory + Path.DirectorySeparatorChar + ImageAddress;
            }
            permission.RegisterPermission("OnScreenLogo.refresh", this);
            SaveConfig();
        }

        void OnServerInitialized()
        {
            AddImage(ImageAddress, ImageAddress);
            gettimage();
        }

        void gettimage()
        {
            Image = GetImage(ImageAddress);
            if (!Image.Equals("39274839"))
            {
                foreach (BasePlayer player in BasePlayer.activePlayerList)
                {
                    CreateButton(player);
                }
                Debug.Log("Успешно подгрузили картинку.");
                return;
            }
            timer.Once(1f, () => gettimage());
        }

        void Unload()
        {
            foreach (var player in BasePlayer.activePlayerList) CuiHelper.DestroyUi(player, PanelName);
        }
        #endregion


        #region UI
        private void OnPlayerConnected(BasePlayer player)
        {
            if (player.IsReceivingSnapshot)
            {
                timer.Once(1f, () => OnPlayerConnected(player));
                return;
            }
            CreateButton(player);
        }

        private void CreateButton(BasePlayer player)
        {
            CuiHelper.DestroyUi(player, PanelName);
            CuiElementContainer elements = new CuiElementContainer();
            var panel = elements.Add(new CuiPanel
            {
                Image = {
                    Color = "0 0 0 0"
                },
                RectTransform = {
                    AnchorMin = Amin,
                    AnchorMax = Amax
                },
                CursorEnabled = false
            }, "Overlay", PanelName);
            var comp = new CuiRawImageComponent { Sprite = "assets/content/textures/generic/fulltransparent.tga" };
            if (!string.IsNullOrEmpty(Image)) comp.Png = Image;
            elements.Add(new CuiElement
            {
                Parent = PanelName,
                Components =
                {
                    comp,
                    new CuiRectTransformComponent {AnchorMin = "0 0", AnchorMax = "1 1" }
                }
            });
            CuiHelper.AddUi(player, elements);
        }
        #endregion

        #region Helpers
        private void GetConfig<T>(string Key, ref T var)
        {
            if (Config[Key] != null)
            {
                var = (T)Convert.ChangeType(Config[Key], typeof(T));
            }
            Config[Key] = var;
        }
        #endregion
    }
}

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