feat: 调整无线收发器继承AEBaseBlockEntity以支持ae方块重命名功能; 添加jade从节点方块显示主节点名称

This commit is contained in:
C-H716 2025-09-15 14:50:22 +08:00
parent 9f98768ee2
commit fa37427dda
3 changed files with 15 additions and 7 deletions

View File

@ -2,6 +2,7 @@ package com.extendedae_plus.content.wireless;
import appeng.api.networking.*;
import appeng.api.util.AECableType;
import appeng.blockentity.AEBaseBlockEntity;
import com.extendedae_plus.init.ModBlockEntities;
import com.extendedae_plus.init.ModItems;
import com.extendedae_plus.wireless.IWirelessEndpoint;
@ -12,7 +13,6 @@ import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import org.jetbrains.annotations.Nullable;
@ -26,7 +26,7 @@ import java.util.Objects;
* - 集成 AE2 节点
* - 集成无线主/从逻辑
*/
public class WirelessTransceiverBlockEntity extends BlockEntity implements IWirelessEndpoint, IInWorldGridNodeHost {
public class WirelessTransceiverBlockEntity extends AEBaseBlockEntity implements IWirelessEndpoint, IInWorldGridNodeHost {
private IManagedGridNode managedNode;
@ -187,7 +187,7 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire
/* ===================== NBT ===================== */
@Override
protected void saveAdditional(CompoundTag tag) {
public void saveAdditional(CompoundTag tag) {
super.saveAdditional(tag);
tag.putLong("frequency", frequency);
tag.putBoolean("master", masterMode);
@ -198,15 +198,15 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire
}
@Override
public void load(CompoundTag tag) {
super.load(tag);
public void loadTag(CompoundTag tag) {
super.loadTag(tag);
this.frequency = tag.getLong("frequency");
this.masterMode = tag.getBoolean("master");
this.locked = tag.getBoolean("locked");
if (managedNode != null) {
managedNode.loadFromNBT(tag);
}
// 应用到链接器
if (masterMode) {
masterLink.setFrequency(frequency);
} else {

View File

@ -37,7 +37,12 @@ public enum WirelessTransceiverJadePluginComponents implements IBlockComponentPr
if (data.contains("masterMode") && !data.getBoolean("masterMode") && data.contains("masterPos")) {
BlockPos pos = BlockPos.of(data.getLong("masterPos"));
String dim = data.contains("masterDim") ? data.getString("masterDim") : "";
tooltip.add(Component.literal("主节点位置: (" + pos.getX() + ", " + pos.getY() + ", " + pos.getZ() + ")"));
String customName = data.contains("customName") ? data.getString("customName") : null;
if (customName != null) {
tooltip.add(Component.literal("主节点: " + customName + "(" + pos.getX() + ", " + pos.getY() + ", " + pos.getZ() + ")"));
} else {
tooltip.add(Component.literal("主节点位置: (" + pos.getX() + ", " + pos.getY() + ", " + pos.getZ() + ")"));
}
if (!dim.isEmpty()) {
tooltip.add(Component.literal("维度: " + dim));
}

View File

@ -46,6 +46,9 @@ public enum WirelessTransceiverProvider implements IServerDataProvider<BlockAcce
long freq = blockEntity.getFrequency();
IWirelessEndpoint master = WirelessMasterRegistry.get(level, freq);
if (master != null && !master.isEndpointRemoved()) {
if (master instanceof WirelessTransceiverBlockEntity masterBlockEntity && masterBlockEntity.getCustomName() != null) {
data.putString("customName", masterBlockEntity.getCustomName().getString());
}
BlockPos pos = master.getBlockPos();
if (pos != null) {
data.putLong("masterPos", pos.asLong());