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); }