feat: 抽离按钮创建方法
This commit is contained in:
parent
57781edbf3
commit
a6b60ebbb9
|
|
@ -1,6 +1,5 @@
|
|||
package com.extendedae_plus.mixin.advancedae.client.gui;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.YesNo;
|
||||
import appeng.client.gui.AEBaseScreen;
|
||||
import appeng.client.gui.style.ScreenStyle;
|
||||
|
|
@ -25,8 +24,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static com.extendedae_plus.util.GuiUtil.createToggle;
|
||||
import static com.extendedae_plus.util.Logger.EAP$LOGGER;
|
||||
|
||||
/**
|
||||
|
|
@ -56,26 +55,6 @@ public abstract class AdvPatternProviderScreenMixin extends AEBaseScreen<AdvPatt
|
|||
super(menu, playerInventory, title, style);
|
||||
}
|
||||
|
||||
/* ---------------------------- 工具方法 ---------------------------- */
|
||||
/**
|
||||
* 创建一个带有自定义点击事件和 tooltip 的切换按钮
|
||||
*/
|
||||
@Unique
|
||||
private SettingToggleButton<YesNo> eap$createToggle(boolean initial,
|
||||
Runnable onClick,
|
||||
Supplier<List<Component>> tooltipSupplier) {
|
||||
return new SettingToggleButton<>(
|
||||
Settings.BLOCKING_MODE,
|
||||
initial ? YesNo.YES : YesNo.NO,
|
||||
(btn, backwards) -> onClick.run()
|
||||
) {
|
||||
@Override
|
||||
public List<Component> getTooltipMessage() {
|
||||
return tooltipSupplier.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/** 同步服务端状态(初始化时调用) */
|
||||
@Unique
|
||||
private void eap$syncInitialState(AdvPatternProviderMenu menu) {
|
||||
|
|
@ -97,7 +76,7 @@ public abstract class AdvPatternProviderScreenMixin extends AEBaseScreen<AdvPatt
|
|||
@Unique
|
||||
private void eap$createWidgets() {
|
||||
// 高级阻挡
|
||||
this.eap$AdvancedBlockingToggle = eap$createToggle(
|
||||
this.eap$AdvancedBlockingToggle = createToggle(
|
||||
eap$AdvancedBlockingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleAdvancedBlockingC2SPacket()),
|
||||
() -> {
|
||||
|
|
@ -112,7 +91,7 @@ public abstract class AdvPatternProviderScreenMixin extends AEBaseScreen<AdvPatt
|
|||
this.addToLeftToolbar(this.eap$AdvancedBlockingToggle);
|
||||
|
||||
// 智能翻倍
|
||||
this.eap$SmartDoublingToggle = eap$createToggle(
|
||||
this.eap$SmartDoublingToggle = createToggle(
|
||||
eap$SmartDoublingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleSmartDoublingC2SPacket()),
|
||||
() -> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.extendedae_plus.mixin.advancedae.client.gui;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.YesNo;
|
||||
import appeng.client.gui.AEBaseScreen;
|
||||
import appeng.client.gui.style.ScreenStyle;
|
||||
|
|
@ -26,8 +25,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static com.extendedae_plus.util.GuiUtil.createToggle;
|
||||
import static com.extendedae_plus.util.Logger.EAP$LOGGER;
|
||||
|
||||
/**
|
||||
|
|
@ -57,26 +56,6 @@ public abstract class SmallAdvPatternProviderScreenMixin extends AEBaseScreen<Sm
|
|||
super(menu, playerInventory, title, style);
|
||||
}
|
||||
|
||||
/* ---------------------------- 工具方法 ---------------------------- */
|
||||
/**
|
||||
* 创建一个带有自定义点击事件和 tooltip 的切换按钮
|
||||
*/
|
||||
@Unique
|
||||
private SettingToggleButton<YesNo> eap$createToggle(boolean initial,
|
||||
Runnable onClick,
|
||||
Supplier<List<Component>> tooltipSupplier) {
|
||||
return new SettingToggleButton<>(
|
||||
Settings.BLOCKING_MODE,
|
||||
initial ? YesNo.YES : YesNo.NO,
|
||||
(btn, backwards) -> onClick.run()
|
||||
) {
|
||||
@Override
|
||||
public List<Component> getTooltipMessage() {
|
||||
return tooltipSupplier.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/** 同步服务端状态(初始化时调用) */
|
||||
@Unique
|
||||
private void eap$syncInitialState(AdvPatternProviderMenu menu) {
|
||||
|
|
@ -98,7 +77,7 @@ public abstract class SmallAdvPatternProviderScreenMixin extends AEBaseScreen<Sm
|
|||
@Unique
|
||||
private void eap$createWidgets() {
|
||||
// 高级阻挡
|
||||
this.eap$AdvancedBlockingToggle = eap$createToggle(
|
||||
this.eap$AdvancedBlockingToggle = createToggle(
|
||||
eap$AdvancedBlockingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleAdvancedBlockingC2SPacket()),
|
||||
() -> {
|
||||
|
|
@ -113,7 +92,7 @@ public abstract class SmallAdvPatternProviderScreenMixin extends AEBaseScreen<Sm
|
|||
this.addToLeftToolbar(this.eap$AdvancedBlockingToggle);
|
||||
|
||||
// 智能翻倍
|
||||
this.eap$SmartDoublingToggle = eap$createToggle(
|
||||
this.eap$SmartDoublingToggle = createToggle(
|
||||
eap$SmartDoublingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleSmartDoublingC2SPacket()),
|
||||
() -> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.extendedae_plus.mixin.ae2.client.gui;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.YesNo;
|
||||
import appeng.client.gui.AEBaseScreen;
|
||||
import appeng.client.gui.implementations.PatternProviderScreen;
|
||||
|
|
@ -27,8 +26,8 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static com.extendedae_plus.util.GuiUtil.createToggle;
|
||||
import static com.extendedae_plus.util.Logger.EAP$LOGGER;
|
||||
|
||||
/**
|
||||
|
|
@ -59,26 +58,6 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
super(menu, playerInventory, title, style);
|
||||
}
|
||||
|
||||
/* ---------------------------- 工具方法 ---------------------------- */
|
||||
/**
|
||||
* 创建一个带有自定义点击事件和 tooltip 的切换按钮
|
||||
*/
|
||||
@Unique
|
||||
private SettingToggleButton<YesNo> eap$createToggle(boolean initial,
|
||||
Runnable onClick,
|
||||
Supplier<List<Component>> tooltipSupplier) {
|
||||
return new SettingToggleButton<>(
|
||||
Settings.BLOCKING_MODE,
|
||||
initial ? YesNo.YES : YesNo.NO,
|
||||
(btn, backwards) -> onClick.run()
|
||||
) {
|
||||
@Override
|
||||
public List<Component> getTooltipMessage() {
|
||||
return tooltipSupplier.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/** 同步服务端状态(初始化时调用) */
|
||||
@Unique
|
||||
private void eap$syncInitialState(C menu) {
|
||||
|
|
@ -100,7 +79,7 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
@Unique
|
||||
private void eap$createWidgets() {
|
||||
// 高级阻挡
|
||||
this.eap$AdvancedBlockingToggle = eap$createToggle(
|
||||
this.eap$AdvancedBlockingToggle = createToggle(
|
||||
eap$AdvancedBlockingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleAdvancedBlockingC2SPacket()),
|
||||
() -> {
|
||||
|
|
@ -115,7 +94,7 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
this.addToLeftToolbar(this.eap$AdvancedBlockingToggle);
|
||||
|
||||
// 智能翻倍
|
||||
this.eap$SmartDoublingToggle = eap$createToggle(
|
||||
this.eap$SmartDoublingToggle = createToggle(
|
||||
eap$SmartDoublingEnabled,
|
||||
() -> ModNetwork.CHANNEL.sendToServer(new ToggleSmartDoublingC2SPacket()),
|
||||
() -> {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,22 @@
|
|||
package com.extendedae_plus.util;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.YesNo;
|
||||
import appeng.api.crafting.PatternDetailsHelper;
|
||||
import appeng.api.stacks.GenericStack;
|
||||
import appeng.client.gui.me.patternaccess.PatternContainerRecord;
|
||||
import appeng.client.gui.me.patternaccess.PatternSlot;
|
||||
import appeng.client.gui.widgets.SettingToggleButton;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.inventory.Slot;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -184,4 +189,19 @@ public class GuiUtil {
|
|||
int backgroundColor = withAlpha(rainbowRgb, 0x3C);
|
||||
drawSlotBox(guiGraphics, sx, sy, borderColor, backgroundColor);
|
||||
}
|
||||
|
||||
public static SettingToggleButton<YesNo> createToggle(boolean initial,
|
||||
Runnable onClick,
|
||||
Supplier<List<Component>> tooltipSupplier) {
|
||||
return new SettingToggleButton<>(
|
||||
Settings.BLOCKING_MODE,
|
||||
initial ? YesNo.YES : YesNo.NO,
|
||||
(btn, backwards) -> onClick.run()
|
||||
) {
|
||||
@Override
|
||||
public List<Component> getTooltipMessage() {
|
||||
return tooltipSupplier.get();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user