feat: 调整无线收发器继承AEBaseBlockEntity以支持ae方块重命名功能; 添加jade从节点方块显示主节点名称
This commit is contained in:
parent
9f98768ee2
commit
fa37427dda
|
|
@ -2,6 +2,7 @@ package com.extendedae_plus.content.wireless;
|
||||||
|
|
||||||
import appeng.api.networking.*;
|
import appeng.api.networking.*;
|
||||||
import appeng.api.util.AECableType;
|
import appeng.api.util.AECableType;
|
||||||
|
import appeng.blockentity.AEBaseBlockEntity;
|
||||||
import com.extendedae_plus.init.ModBlockEntities;
|
import com.extendedae_plus.init.ModBlockEntities;
|
||||||
import com.extendedae_plus.init.ModItems;
|
import com.extendedae_plus.init.ModItems;
|
||||||
import com.extendedae_plus.wireless.IWirelessEndpoint;
|
import com.extendedae_plus.wireless.IWirelessEndpoint;
|
||||||
|
|
@ -12,7 +13,6 @@ import net.minecraft.core.Direction;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ import java.util.Objects;
|
||||||
* - 集成 AE2 节点;
|
* - 集成 AE2 节点;
|
||||||
* - 集成无线主/从逻辑。
|
* - 集成无线主/从逻辑。
|
||||||
*/
|
*/
|
||||||
public class WirelessTransceiverBlockEntity extends BlockEntity implements IWirelessEndpoint, IInWorldGridNodeHost {
|
public class WirelessTransceiverBlockEntity extends AEBaseBlockEntity implements IWirelessEndpoint, IInWorldGridNodeHost {
|
||||||
|
|
||||||
private IManagedGridNode managedNode;
|
private IManagedGridNode managedNode;
|
||||||
|
|
||||||
|
|
@ -187,7 +187,7 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire
|
||||||
|
|
||||||
/* ===================== NBT ===================== */
|
/* ===================== NBT ===================== */
|
||||||
@Override
|
@Override
|
||||||
protected void saveAdditional(CompoundTag tag) {
|
public void saveAdditional(CompoundTag tag) {
|
||||||
super.saveAdditional(tag);
|
super.saveAdditional(tag);
|
||||||
tag.putLong("frequency", frequency);
|
tag.putLong("frequency", frequency);
|
||||||
tag.putBoolean("master", masterMode);
|
tag.putBoolean("master", masterMode);
|
||||||
|
|
@ -198,15 +198,15 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(CompoundTag tag) {
|
public void loadTag(CompoundTag tag) {
|
||||||
super.load(tag);
|
super.loadTag(tag);
|
||||||
this.frequency = tag.getLong("frequency");
|
this.frequency = tag.getLong("frequency");
|
||||||
this.masterMode = tag.getBoolean("master");
|
this.masterMode = tag.getBoolean("master");
|
||||||
this.locked = tag.getBoolean("locked");
|
this.locked = tag.getBoolean("locked");
|
||||||
|
|
||||||
if (managedNode != null) {
|
if (managedNode != null) {
|
||||||
managedNode.loadFromNBT(tag);
|
managedNode.loadFromNBT(tag);
|
||||||
}
|
}
|
||||||
// 应用到链接器
|
|
||||||
if (masterMode) {
|
if (masterMode) {
|
||||||
masterLink.setFrequency(frequency);
|
masterLink.setFrequency(frequency);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,12 @@ public enum WirelessTransceiverJadePluginComponents implements IBlockComponentPr
|
||||||
if (data.contains("masterMode") && !data.getBoolean("masterMode") && data.contains("masterPos")) {
|
if (data.contains("masterMode") && !data.getBoolean("masterMode") && data.contains("masterPos")) {
|
||||||
BlockPos pos = BlockPos.of(data.getLong("masterPos"));
|
BlockPos pos = BlockPos.of(data.getLong("masterPos"));
|
||||||
String dim = data.contains("masterDim") ? data.getString("masterDim") : "";
|
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()) {
|
if (!dim.isEmpty()) {
|
||||||
tooltip.add(Component.literal("维度: " + dim));
|
tooltip.add(Component.literal("维度: " + dim));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,9 @@ public enum WirelessTransceiverProvider implements IServerDataProvider<BlockAcce
|
||||||
long freq = blockEntity.getFrequency();
|
long freq = blockEntity.getFrequency();
|
||||||
IWirelessEndpoint master = WirelessMasterRegistry.get(level, freq);
|
IWirelessEndpoint master = WirelessMasterRegistry.get(level, freq);
|
||||||
if (master != null && !master.isEndpointRemoved()) {
|
if (master != null && !master.isEndpointRemoved()) {
|
||||||
|
if (master instanceof WirelessTransceiverBlockEntity masterBlockEntity && masterBlockEntity.getCustomName() != null) {
|
||||||
|
data.putString("customName", masterBlockEntity.getCustomName().getString());
|
||||||
|
}
|
||||||
BlockPos pos = master.getBlockPos();
|
BlockPos pos = master.getBlockPos();
|
||||||
if (pos != null) {
|
if (pos != null) {
|
||||||
data.putLong("masterPos", pos.asLong());
|
data.putLong("masterPos", pos.asLong());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user