1.3.2
This commit is contained in:
parent
c05936b52f
commit
e109b843f0
|
|
@ -92,7 +92,6 @@ dependencies {
|
|||
|
||||
//jec
|
||||
modCompileOnly "curse.maven:just-enough-characters-250702:6680042"
|
||||
modRuntimeOnly "curse.maven:just-enough-characters-250702:6680042"
|
||||
}
|
||||
|
||||
processResources {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ public final class ClientAdvancedBlockingState {
|
|||
|
||||
public static void set(String key, boolean v) {
|
||||
states.put(key, v);
|
||||
System.out.println("[EPP][CLIENT][S2C] Received advancedBlocking key=" + key + ", value=" + v);
|
||||
}
|
||||
|
||||
public static boolean has(String key) {
|
||||
|
|
|
|||
|
|
@ -39,16 +39,13 @@ public class PatternProviderLogicAdvancedMixin implements AdvancedBlockingHolder
|
|||
@Inject(method = "writeToNBT", at = @At("TAIL"), remap = false)
|
||||
private void epp$writeAdvancedToNbt(CompoundTag tag, CallbackInfo ci) {
|
||||
tag.putBoolean(EPP_ADV_BLOCKING_KEY, this.epp$advancedBlocking);
|
||||
System.out.println("[EPP][NBT] writeToNBT: " + EPP_ADV_BLOCKING_KEY + "=" + this.epp$advancedBlocking);
|
||||
}
|
||||
|
||||
@Inject(method = "readFromNBT", at = @At("TAIL"), remap = false)
|
||||
private void epp$readAdvancedFromNbt(CompoundTag tag, CallbackInfo ci) {
|
||||
if (tag.contains(EPP_ADV_BLOCKING_KEY)) {
|
||||
this.epp$advancedBlocking = tag.getBoolean(EPP_ADV_BLOCKING_KEY);
|
||||
System.out.println("[EPP][NBT] readFromNBT: " + EPP_ADV_BLOCKING_KEY + "=" + this.epp$advancedBlocking);
|
||||
} else {
|
||||
System.out.println("[EPP][NBT] readFromNBT: key missing, default=" + this.epp$advancedBlocking);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,6 @@ import com.extendedae_plus.api.PatternProviderMenuAdvancedSync;
|
|||
|
||||
@Mixin(PatternProviderMenu.class)
|
||||
public abstract class PatternProviderMenuAdvancedMixin implements PatternProviderMenuAdvancedSync {
|
||||
static {
|
||||
System.out.println("[EPP][MIXIN] Loaded PatternProviderMenuAdvancedMixin");
|
||||
}
|
||||
@Shadow
|
||||
protected abstract boolean isServerSide();
|
||||
|
||||
|
|
@ -37,16 +34,12 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
|
|||
var l = this.logic;
|
||||
if (l instanceof AdvancedBlockingHolder holder) {
|
||||
this.eppAdvancedBlocking = holder.ext$getAdvancedBlocking();
|
||||
System.out.println("[EPP][MENU][S->C] broadcastChanges: eppAdvancedBlocking=" + this.eppAdvancedBlocking);
|
||||
}
|
||||
} else {
|
||||
System.out.println("[EPP][MENU][CLIENT] broadcastChanges called on client side");
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(method = "broadcastChanges", at = @At("TAIL"))
|
||||
private void epp$syncAdvancedBlockingTail(CallbackInfo ci) {
|
||||
System.out.println("[EPP][MENU] broadcastChanges tail");
|
||||
}
|
||||
|
||||
// 构造器尾注入(public ctor)
|
||||
|
|
@ -56,10 +49,8 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
|
|||
var l = this.logic;
|
||||
if (l instanceof AdvancedBlockingHolder holder) {
|
||||
this.eppAdvancedBlocking = holder.ext$getAdvancedBlocking();
|
||||
System.out.println("[EPP][MENU] <init>-public set initial eppAdvancedBlocking=" + this.eppAdvancedBlocking);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
System.out.println("[EPP][MENU] <init>-public init error: " + t);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -70,10 +61,8 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
|
|||
var l = this.logic;
|
||||
if (l instanceof AdvancedBlockingHolder holder) {
|
||||
this.eppAdvancedBlocking = holder.ext$getAdvancedBlocking();
|
||||
System.out.println("[EPP][MENU] <init>-protected set initial eppAdvancedBlocking=" + this.eppAdvancedBlocking);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
System.out.println("[EPP][MENU] <init>-protected init error: " + t);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -85,11 +74,9 @@ public abstract class PatternProviderMenuAdvancedMixin implements PatternProvide
|
|||
// 调试:当 Screen 每帧读取这些 getter 时打印,验证 Mixin 是否生效
|
||||
@Inject(method = "getBlockingMode", at = @At("HEAD"), remap = false)
|
||||
private void epp$debug_getBlockingMode(CallbackInfoReturnable<?> cir) {
|
||||
System.out.println("[EPP][MENU][DEBUG] getBlockingMode() called; eppAdvancedBlocking=" + this.eppAdvancedBlocking);
|
||||
}
|
||||
|
||||
@Inject(method = "getShowInAccessTerminal", at = @At("HEAD"), remap = false)
|
||||
private void epp$debug_getShowInAccessTerminal(CallbackInfoReturnable<?> cir) {
|
||||
System.out.println("[EPP][MENU][DEBUG] getShowInAccessTerminal() called; eppAdvancedBlocking=" + this.eppAdvancedBlocking);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,18 +54,14 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
String dimId = level.dimension().location().toString();
|
||||
long posLong = be.getBlockPos().asLong();
|
||||
this.eppProviderKey = ClientAdvancedBlockingState.key(dimId, posLong);
|
||||
System.out.println("[EPP][CLIENT] init: providerKey=" + this.eppProviderKey);
|
||||
} catch (Throwable t) {
|
||||
System.out.println("[EPP][CLIENT] init: providerKey resolve failed: " + t);
|
||||
}
|
||||
|
||||
// 优先使用该供应器最近一次 S2C 状态;否则回退读取 @GuiSync 初始化
|
||||
if (this.eppProviderKey != null && ClientAdvancedBlockingState.has(this.eppProviderKey)) {
|
||||
this.eppAdvancedBlockingEnabled = ClientAdvancedBlockingState.get(this.eppProviderKey);
|
||||
System.out.println("[EPP][CLIENT] init: use ClientState key=" + this.eppProviderKey + ", value=" + this.eppAdvancedBlockingEnabled);
|
||||
} else if (menu instanceof PatternProviderMenuAdvancedSync sync) {
|
||||
this.eppAdvancedBlockingEnabled = sync.ext$getAdvancedBlockingSynced();
|
||||
System.out.println("[EPP][CLIENT] init: use GuiSync value=" + this.eppAdvancedBlockingEnabled);
|
||||
}
|
||||
// 使用 ToggleButton 以便在 YES/NO 图标与提示之间动态切换
|
||||
this.eppAdvancedBlockingToggle = new ToggleButton(
|
||||
|
|
@ -78,7 +74,6 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
// 客户端立即反馈:切换图标/提示
|
||||
this.eppAdvancedBlockingEnabled = state;
|
||||
this.eppAdvancedBlockingToggle.setState(state);
|
||||
System.out.println("[EPP][CLIENT] Click toggle: state=" + state);
|
||||
// 发送 C2S 切换请求
|
||||
ModNetwork.CHANNEL.sendToServer(new ToggleAdvancedBlockingC2SPacket());
|
||||
// 可根据状态调整提示文本(演示性:开启/关闭不同第二行)
|
||||
|
|
@ -132,7 +127,6 @@ public abstract class PatternProviderScreenMixin<C extends PatternProviderMenu>
|
|||
if (desired != this.eppAdvancedBlockingEnabled) {
|
||||
this.eppAdvancedBlockingEnabled = desired;
|
||||
this.eppAdvancedBlockingToggle.setState(desired);
|
||||
System.out.println("[EPP][CLIENT] updateBeforeRender apply: eppAdvancedBlocking=" + desired);
|
||||
// 同步 tooltip 二行提示
|
||||
this.eppAdvancedBlockingToggle.setTooltipOn(java.util.List.of(
|
||||
Component.literal("高级阻挡模式"),
|
||||
|
|
|
|||
|
|
@ -38,13 +38,9 @@ public class ToggleAdvancedBlockingC2SPacket {
|
|||
if (logic instanceof AdvancedBlockingHolder holder) {
|
||||
boolean current = holder.ext$getAdvancedBlocking();
|
||||
boolean next = !current;
|
||||
System.out.println("[EPP][C2S] ToggleAdvancedBlockingC2SPacket: player=" + player.getGameProfile().getName()
|
||||
+ ", menu=" + menu.getClass().getName()
|
||||
+ ", before=" + current + ", after=" + next);
|
||||
holder.ext$setAdvancedBlocking(next);
|
||||
// 关键:保存持久化,触发 AE2 写入逻辑(writeToNBT),并由菜单 @GuiSync 同步回客户端
|
||||
logic.saveChanges();
|
||||
System.out.println("[EPP][C2S] logic.saveChanges() called for advancedBlocking=" + next);
|
||||
// 直接下发 S2C 强制同步(带供应器标识:维度+方块坐标)
|
||||
var host = ((PatternProviderLogicAccessor) logic).ext$host();
|
||||
var be = host.getBlockEntity();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user