Example #1
0
        private void LazyInit()
        {
            byte              rowToUse     = 1;
            SpriteFrame       spriteFrame1 = new SpriteFrame((byte)10, (byte)2);
            Asset <Texture2D> builderAcc   = TextureAssets.BuilderAcc;
            Asset <Texture2D> asset        = TextureAssets.InfoIcon[13];
            SpriteFrame       spriteFrame2 = new SpriteFrame((byte)1, (byte)1);

            spriteFrame2.PaddingX = 0;
            spriteFrame2.PaddingY = 0;
            SpriteFrame spriteFrame3 = spriteFrame2;

            this._toggles.Clear();
            List <BuilderAccTogglesUI.IBuilderAccToggle> toggles = this._toggles;
            List <BuilderAccTogglesUI.IBuilderAccToggle> builderAccToggleList = new List <BuilderAccTogglesUI.IBuilderAccToggle>();

            BuilderAccTogglesUI.CommonBuilderAccToggle builderAccToggle = new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => true), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[10] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[10] = player.builderAccStatus[10] == 0 ? 1 : 0), "GameUI.BlockReplacerOn", "GameUI.BlockReplacerOff");
            builderAccToggle.Texture             = TextureAssets.blockReplaceIcon[0];
            builderAccToggle.HoverOutlineTexture = TextureAssets.blockReplaceIcon[0];
            spriteFrame2           = new SpriteFrame((byte)3, (byte)1, (byte)0, (byte)0);
            spriteFrame2.PaddingY  = 0;
            builderAccToggle.Frame = spriteFrame2;
            spriteFrame2           = new SpriteFrame((byte)3, (byte)1, (byte)1, (byte)0);
            spriteFrame2.PaddingY  = 0;
            builderAccToggle.FrameOverrideWhenOff = new SpriteFrame?(spriteFrame2);
            spriteFrame2          = new SpriteFrame((byte)3, (byte)1, (byte)2, (byte)0);
            spriteFrame2.PaddingY = 0;
            builderAccToggle.HoverOutlineFrame = new SpriteFrame?(spriteFrame2);
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle)builderAccToggle);
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => player.rulerLine), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[0] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[0] = player.builderAccStatus[0] == 0 ? 1 : 0), "GameUI.RulerOn", "GameUI.RulerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = asset,
                Frame             = spriteFrame1.With((byte)0, rowToUse),
                HoverOutlineFrame = new SpriteFrame?(spriteFrame3)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => player.rulerGrid), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[1] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[1] = player.builderAccStatus[1] == 0 ? 1 : 0), "GameUI.MechanicalRulerOn", "GameUI.MechanicalRulerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = asset,
                Frame             = spriteFrame1.With((byte)1, rowToUse),
                HoverOutlineFrame = new SpriteFrame?(spriteFrame3)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => player.autoPaint), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[2] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[2] = player.builderAccStatus[2] == 0 ? 1 : 0), "GameUI.PaintSprayerOn", "GameUI.PaintSprayerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = asset,
                Frame             = spriteFrame1.With((byte)3, rowToUse),
                HoverOutlineFrame = new SpriteFrame?(spriteFrame3)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => player.autoActuator), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[3] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[3] = player.builderAccStatus[3] == 0 ? 1 : 0), "GameUI.ActuationDeviceOn", "GameUI.ActuationDeviceOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = asset,
                Frame             = spriteFrame1.With((byte)2, rowToUse),
                HoverOutlineFrame = new SpriteFrame?(spriteFrame3)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.WireBuilderAccToggle(new BuilderAccTogglesUI.GetIsAvailablemethod(BuilderAccTogglesUI.CanShowWires), (BuilderAccTogglesUI.WireBuilderAccToggle.GetStateMethod)(player => (BuilderAccTogglesUI.WireToggleState)player.builderAccStatus[4]), (BuilderAccTogglesUI.PerformClickMethod)(player => BuilderAccTogglesUI.CycleWireToggleState(player, 4)), "Game.RedWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame1.With((byte)4, rowToUse)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.WireBuilderAccToggle(new BuilderAccTogglesUI.GetIsAvailablemethod(BuilderAccTogglesUI.CanShowWires), (BuilderAccTogglesUI.WireBuilderAccToggle.GetStateMethod)(player => (BuilderAccTogglesUI.WireToggleState)player.builderAccStatus[5]), (BuilderAccTogglesUI.PerformClickMethod)(player => BuilderAccTogglesUI.CycleWireToggleState(player, 5)), "Game.BlueWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame1.With((byte)5, rowToUse)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.WireBuilderAccToggle(new BuilderAccTogglesUI.GetIsAvailablemethod(BuilderAccTogglesUI.CanShowWires), (BuilderAccTogglesUI.WireBuilderAccToggle.GetStateMethod)(player => (BuilderAccTogglesUI.WireToggleState)player.builderAccStatus[6]), (BuilderAccTogglesUI.PerformClickMethod)(player => BuilderAccTogglesUI.CycleWireToggleState(player, 6)), "Game.GreenWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame1.With((byte)6, rowToUse)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.WireBuilderAccToggle(new BuilderAccTogglesUI.GetIsAvailablemethod(BuilderAccTogglesUI.CanShowWires), (BuilderAccTogglesUI.WireBuilderAccToggle.GetStateMethod)(player => (BuilderAccTogglesUI.WireToggleState)player.builderAccStatus[7]), (BuilderAccTogglesUI.PerformClickMethod)(player => BuilderAccTogglesUI.CycleWireToggleState(player, 7)), "Game.YellowWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame1.With((byte)7, rowToUse)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.WireBuilderAccToggle(new BuilderAccTogglesUI.GetIsAvailablemethod(BuilderAccTogglesUI.CanShowWires), (BuilderAccTogglesUI.WireBuilderAccToggle.GetStateMethod)(player => (BuilderAccTogglesUI.WireToggleState)player.builderAccStatus[9]), (BuilderAccTogglesUI.PerformClickMethod)(player => BuilderAccTogglesUI.CycleWireToggleState(player, 9)), "Game.Actuators")
            {
                Texture = builderAcc,
                Frame   = spriteFrame1.With((byte)9, rowToUse)
            });
            builderAccToggleList.Add((BuilderAccTogglesUI.IBuilderAccToggle) new BuilderAccTogglesUI.CommonBuilderAccToggle((BuilderAccTogglesUI.GetIsAvailablemethod)(player => player.InfoAccMechShowWires), (BuilderAccTogglesUI.CommonBuilderAccToggle.GetToggleStateMethod)(player => player.builderAccStatus[8] == 0), (BuilderAccTogglesUI.PerformClickMethod)(player => player.builderAccStatus[8] = player.builderAccStatus[8] == 0 ? 1 : 0), "GameUI.WireModeForced", "GameUI.WireModeNormal")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = asset,
                Frame             = spriteFrame1.With((byte)8, rowToUse),
                HoverOutlineFrame = new SpriteFrame?(spriteFrame3)
            });
            toggles.AddRange((IEnumerable <BuilderAccTogglesUI.IBuilderAccToggle>)builderAccToggleList);
        }
        private void LazyInit()
        {
            byte              rowToUse            = 1;
            byte              rows                = 2;
            byte              columns             = 10;
            SpriteFrame       spriteFrame         = new SpriteFrame(columns, rows);
            Asset <Texture2D> builderAcc          = TextureAssets.BuilderAcc;
            Asset <Texture2D> hoverOutlineTexture = TextureAssets.InfoIcon[13];
            SpriteFrame       spriteFrame2        = new SpriteFrame(1, 1);

            spriteFrame2.PaddingX = 0;
            spriteFrame2.PaddingY = 0;
            SpriteFrame value = spriteFrame2;

            _toggles.Clear();
            List <IBuilderAccToggle> toggles = _toggles;
            List <IBuilderAccToggle> list    = new List <IBuilderAccToggle>();
            CommonBuilderAccToggle   obj     = new CommonBuilderAccToggle((Player player) => true, (Player player) => player.builderAccStatus[10] == 0, delegate(Player player) {
                player.builderAccStatus[10] = ((player.builderAccStatus[10] == 0) ? 1 : 0);
            }, "GameUI.BlockReplacerOn", "GameUI.BlockReplacerOff")
            {
                Texture             = TextureAssets.blockReplaceIcon[0],
                HoverOutlineTexture = TextureAssets.blockReplaceIcon[0]
            };

            spriteFrame2 = (obj.Frame = new SpriteFrame(3, 1, 0, 0)
            {
                PaddingY = 0
            });

            spriteFrame2 = new SpriteFrame(3, 1, 1, 0)
            {
                PaddingY = 0
            };

            obj.FrameOverrideWhenOff = spriteFrame2;
            spriteFrame2             = new SpriteFrame(3, 1, 2, 0)
            {
                PaddingY = 0
            };

            obj.HoverOutlineFrame = spriteFrame2;
            list.Add(obj);
            list.Add(new CommonBuilderAccToggle((Player player) => player.rulerLine, (Player player) => player.builderAccStatus[0] == 0, delegate(Player player) {
                player.builderAccStatus[0] = ((player.builderAccStatus[0] == 0) ? 1 : 0);
            }, "GameUI.RulerOn", "GameUI.RulerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = hoverOutlineTexture,
                Frame             = spriteFrame.With(0, rowToUse),
                HoverOutlineFrame = value
            });

            list.Add(new CommonBuilderAccToggle((Player player) => player.rulerGrid, (Player player) => player.builderAccStatus[1] == 0, delegate(Player player) {
                player.builderAccStatus[1] = ((player.builderAccStatus[1] == 0) ? 1 : 0);
            }, "GameUI.MechanicalRulerOn", "GameUI.MechanicalRulerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = hoverOutlineTexture,
                Frame             = spriteFrame.With(1, rowToUse),
                HoverOutlineFrame = value
            });

            list.Add(new CommonBuilderAccToggle((Player player) => player.autoPaint, (Player player) => player.builderAccStatus[2] == 0, delegate(Player player) {
                player.builderAccStatus[2] = ((player.builderAccStatus[2] == 0) ? 1 : 0);
            }, "GameUI.PaintSprayerOn", "GameUI.PaintSprayerOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = hoverOutlineTexture,
                Frame             = spriteFrame.With(3, rowToUse),
                HoverOutlineFrame = value
            });

            list.Add(new CommonBuilderAccToggle((Player player) => player.autoActuator, (Player player) => player.builderAccStatus[3] == 0, delegate(Player player) {
                player.builderAccStatus[3] = ((player.builderAccStatus[3] == 0) ? 1 : 0);
            }, "GameUI.ActuationDeviceOn", "GameUI.ActuationDeviceOff")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = hoverOutlineTexture,
                Frame             = spriteFrame.With(2, rowToUse),
                HoverOutlineFrame = value
            });

            list.Add(new WireBuilderAccToggle(CanShowWires, (Player player) => (WireToggleState)player.builderAccStatus[4], delegate(Player player) {
                CycleWireToggleState(player, 4);
            }, "Game.RedWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame.With(4, rowToUse)
            });

            list.Add(new WireBuilderAccToggle(CanShowWires, (Player player) => (WireToggleState)player.builderAccStatus[5], delegate(Player player) {
                CycleWireToggleState(player, 5);
            }, "Game.BlueWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame.With(5, rowToUse)
            });

            list.Add(new WireBuilderAccToggle(CanShowWires, (Player player) => (WireToggleState)player.builderAccStatus[6], delegate(Player player) {
                CycleWireToggleState(player, 6);
            }, "Game.GreenWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame.With(6, rowToUse)
            });

            list.Add(new WireBuilderAccToggle(CanShowWires, (Player player) => (WireToggleState)player.builderAccStatus[7], delegate(Player player) {
                CycleWireToggleState(player, 7);
            }, "Game.YellowWires")
            {
                Texture = builderAcc,
                Frame   = spriteFrame.With(7, rowToUse)
            });

            list.Add(new WireBuilderAccToggle(CanShowWires, (Player player) => (WireToggleState)player.builderAccStatus[9], delegate(Player player) {
                CycleWireToggleState(player, 9);
            }, "Game.Actuators")
            {
                Texture = builderAcc,
                Frame   = spriteFrame.With(9, rowToUse)
            });

            list.Add(new CommonBuilderAccToggle((Player player) => player.InfoAccMechShowWires, (Player player) => player.builderAccStatus[8] == 0, delegate(Player player) {
                player.builderAccStatus[8] = ((player.builderAccStatus[8] == 0) ? 1 : 0);
            }, "GameUI.WireModeForced", "GameUI.WireModeNormal")
            {
                Texture             = builderAcc,
                HoverOutlineTexture = hoverOutlineTexture,
                Frame             = spriteFrame.With(8, rowToUse),
                HoverOutlineFrame = value
            });

            toggles.AddRange(list);
        }