Added cover support for the constructor and destructor

This commit is contained in:
Buuz135
2021-09-12 22:16:48 +02:00
parent 499fd5b261
commit 7cf838d742
12 changed files with 135 additions and 18 deletions

View File

@@ -1,8 +1,10 @@
package com.refinedmods.refinedstorage.apiimpl.network.node; package com.refinedmods.refinedstorage.apiimpl.network.node;
import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RS;
import com.refinedmods.refinedstorage.api.network.node.ICoverable;
import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.Action;
import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IComparer;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory;
import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler;
import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler; import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler;
@@ -43,7 +45,7 @@ import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class ConstructorNetworkNode extends NetworkNode implements IComparable, IType { public class ConstructorNetworkNode extends NetworkNode implements IComparable, IType, ICoverable {
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "constructor"); public static final ResourceLocation ID = new ResourceLocation(RS.ID, "constructor");
private static final String NBT_COMPARE = "Compare"; private static final String NBT_COMPARE = "Compare";
@@ -64,8 +66,11 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable,
private int type = IType.ITEMS; private int type = IType.ITEMS;
private boolean drop = false; private boolean drop = false;
private CoverManager coverManager;
public ConstructorNetworkNode(World world, BlockPos pos) { public ConstructorNetworkNode(World world, BlockPos pos) {
super(world, pos); super(world, pos);
this.coverManager = new CoverManager(this);
} }
@Override @Override
@@ -174,6 +179,8 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable,
public void read(CompoundNBT tag) { public void read(CompoundNBT tag) {
super.read(tag); super.read(tag);
if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover"));
StackUtils.readItems(upgrades, 1, tag); StackUtils.readItems(upgrades, 1, tag);
} }
@@ -186,6 +193,8 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable,
public CompoundNBT write(CompoundNBT tag) { public CompoundNBT write(CompoundNBT tag) {
super.write(tag); super.write(tag);
tag.put("Cover", this.coverManager.writeToNbt());
StackUtils.writeItems(upgrades, 1, tag); StackUtils.writeItems(upgrades, 1, tag);
return tag; return tag;
@@ -268,6 +277,11 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable,
return fluidFilters; return fluidFilters;
} }
@Override
public CoverManager getCoverManager() {
return coverManager;
}
private class NetworkFluidHandler implements IFluidHandler { private class NetworkFluidHandler implements IFluidHandler {
private final FluidStack resource; private final FluidStack resource;

View File

@@ -1,8 +1,10 @@
package com.refinedmods.refinedstorage.apiimpl.network.node; package com.refinedmods.refinedstorage.apiimpl.network.node;
import com.refinedmods.refinedstorage.RS; import com.refinedmods.refinedstorage.RS;
import com.refinedmods.refinedstorage.api.network.node.ICoverable;
import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.Action;
import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IComparer;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory;
import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler;
import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler; import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler;
@@ -47,7 +49,7 @@ import net.minecraftforge.items.IItemHandlerModifiable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class DestructorNetworkNode extends NetworkNode implements IComparable, IWhitelistBlacklist, IType { public class DestructorNetworkNode extends NetworkNode implements IComparable, IWhitelistBlacklist, IType, ICoverable {
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "destructor"); public static final ResourceLocation ID = new ResourceLocation(RS.ID, "destructor");
private static final String NBT_COMPARE = "Compare"; private static final String NBT_COMPARE = "Compare";
@@ -71,8 +73,11 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
private boolean pickupItem = false; private boolean pickupItem = false;
private ItemStack tool = createTool(); private ItemStack tool = createTool();
private CoverManager coverManager;
public DestructorNetworkNode(World world, BlockPos pos) { public DestructorNetworkNode(World world, BlockPos pos) {
super(world, pos); super(world, pos);
this.coverManager = new CoverManager(this);
} }
@Override @Override
@@ -250,6 +255,8 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
public void read(CompoundNBT tag) { public void read(CompoundNBT tag) {
super.read(tag); super.read(tag);
if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover"));
StackUtils.readItems(upgrades, 1, tag); StackUtils.readItems(upgrades, 1, tag);
} }
@@ -262,6 +269,8 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
public CompoundNBT write(CompoundNBT tag) { public CompoundNBT write(CompoundNBT tag) {
super.write(tag); super.write(tag);
tag.put("Cover", this.coverManager.writeToNbt());
StackUtils.writeItems(upgrades, 1, tag); StackUtils.writeItems(upgrades, 1, tag);
return tag; return tag;
@@ -348,4 +357,9 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
public void setPickupItem(boolean pickupItem) { public void setPickupItem(boolean pickupItem) {
this.pickupItem = pickupItem; this.pickupItem = pickupItem;
} }
@Override
public CoverManager getCoverManager() {
return coverManager;
}
} }

View File

@@ -249,7 +249,9 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
@Override @Override
public CompoundNBT write(CompoundNBT tag) { public CompoundNBT write(CompoundNBT tag) {
super.write(tag); super.write(tag);
tag.put("Cover", this.coverManager.writeToNbt()); tag.put("Cover", this.coverManager.writeToNbt());
StackUtils.writeItems(upgrades, 1, tag); StackUtils.writeItems(upgrades, 1, tag);
return tag; return tag;
} }
@@ -271,7 +273,9 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
@Override @Override
public void read(CompoundNBT tag) { public void read(CompoundNBT tag) {
super.read(tag); super.read(tag);
if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover")); if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover"));
StackUtils.readItems(upgrades, 1, tag); StackUtils.readItems(upgrades, 1, tag);
} }

View File

@@ -153,7 +153,9 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh
@Override @Override
public void read(CompoundNBT tag) { public void read(CompoundNBT tag) {
super.read(tag); super.read(tag);
if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover")); if (tag.contains("Cover")) this.coverManager.readFromNbt(tag.getCompound("Cover"));
StackUtils.readItems(upgrades, 1, tag); StackUtils.readItems(upgrades, 1, tag);
} }
@@ -165,7 +167,9 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh
@Override @Override
public CompoundNBT write(CompoundNBT tag) { public CompoundNBT write(CompoundNBT tag) {
super.write(tag); super.write(tag);
tag.put("Cover", this.coverManager.writeToNbt()); tag.put("Cover", this.coverManager.writeToNbt());
StackUtils.writeItems(upgrades, 1, tag); StackUtils.writeItems(upgrades, 1, tag);
return tag; return tag;

View File

@@ -52,13 +52,13 @@ public class ConstructorBlock extends CableBlock {
@Override @Override
public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) {
return ShapeCache.getOrCreate(state, s -> { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> {
VoxelShape shape = getCableShape(s); VoxelShape shape = getCableShape(s);
shape = VoxelShapes.or(shape, getHeadShape(s)); shape = VoxelShapes.or(shape, getHeadShape(s));
return ConstantsCable.addCoverVoxelShapes(shape, world, pos); return shape;
}); }), world, pos);
} }
private VoxelShape getHeadShape(BlockState state) { private VoxelShape getHeadShape(BlockState state) {

View File

@@ -52,13 +52,13 @@ public class DestructorBlock extends CableBlock {
@Override @Override
public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) { public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext ctx) {
return ShapeCache.getOrCreate(state, s -> { return ConstantsCable.addCoverVoxelShapes(ShapeCache.getOrCreate(state, s -> {
VoxelShape shape = getCableShape(s); VoxelShape shape = getCableShape(s);
shape = VoxelShapes.or(shape, getHeadShape(s)); shape = VoxelShapes.or(shape, getHeadShape(s));
return ConstantsCable.addCoverVoxelShapes(shape, world, pos); return shape;
}); }), world, pos);
} }
private VoxelShape getHeadShape(BlockState state) { private VoxelShape getHeadShape(BlockState state) {

View File

@@ -97,8 +97,6 @@ public class ClientSetup {
"block/security_manager/cutouts/right_") "block/security_manager/cutouts/right_")
))); )));
forEachColorApply("wireless_transmitter", (name, color) -> bakedModelOverrideRegistry.add(name, (base, registry) -> new FullbrightBakedModel(base, true, getColoredModel(color, "block/wireless_transmitter/cutouts/")))); forEachColorApply("wireless_transmitter", (name, color) -> bakedModelOverrideRegistry.add(name, (base, registry) -> new FullbrightBakedModel(base, true, getColoredModel(color, "block/wireless_transmitter/cutouts/"))));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected")));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "destructor"), (base, registry) -> new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/destructor/cutouts/connected")));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel( bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel(
new DiskDriveBakedModel( new DiskDriveBakedModel(
@@ -114,6 +112,8 @@ public class ClientSetup {
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cable"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cable"), (base, registry) -> new BakedModelCableCover(base));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "exporter"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "exporter"), (base, registry) -> new BakedModelCableCover(base));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "importer"), (base, registry) -> new BakedModelCableCover(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "importer"), (base, registry) -> new BakedModelCableCover(base));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "constructor"), (base, registry) -> new BakedModelCableCover(new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/constructor/cutouts/connected"))));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "destructor"), (base, registry) -> new BakedModelCableCover(new FullbrightBakedModel(base, true, new ResourceLocation(RS.ID, "block/destructor/cutouts/connected"))));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cover"), (base, registry) -> new BakedModelCover(ItemStack.EMPTY, CoverType.NORMAL)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "cover"), (base, registry) -> new BakedModelCover(ItemStack.EMPTY, CoverType.NORMAL));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "hollow_cover"), (base, registry) -> new BakedModelCover(ItemStack.EMPTY, CoverType.HOLLOW)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "hollow_cover"), (base, registry) -> new BakedModelCover(ItemStack.EMPTY, CoverType.HOLLOW));

View File

@@ -33,8 +33,7 @@ public class CableTile extends NetworkNodeTile<CableNetworkNode> {
public static final TileDataParameter<CompoundNBT, CableTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(), public static final TileDataParameter<CompoundNBT, CableTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(),
t -> t.getNode().getCoverManager().writeToNbt(), t -> t.getNode().getCoverManager().writeToNbt(),
(t, v) -> t.getNode().getCoverManager().readFromNbt(v), (t, v) -> t.getNode().getCoverManager().readFromNbt(v),
(initial, p) -> Minecraft.getInstance().enqueue(() -> { (initial, p) -> Minecraft.getInstance().enqueue(() -> {}));
}));
static { static {
TileDataManager.registerParameter(COVER_MANAGER); TileDataManager.registerParameter(COVER_MANAGER);

View File

@@ -2,12 +2,19 @@ package com.refinedmods.refinedstorage.tile;
import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.RSTiles;
import com.refinedmods.refinedstorage.apiimpl.network.node.ConstructorNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.ConstructorNetworkNode;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IComparable;
import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IType;
import com.refinedmods.refinedstorage.tile.data.TileDataManager;
import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.tile.data.TileDataParameter;
import com.refinedmods.refinedstorage.util.WorldUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.model.data.IModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -19,12 +26,22 @@ public class ConstructorTile extends NetworkNodeTile<ConstructorNetworkNode> {
t.getNode().markDirty(); t.getNode().markDirty();
}); });
public static final TileDataParameter<CompoundNBT, ConstructorTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(),
t -> t.getNode().getCoverManager().writeToNbt(),
(t, v) -> t.getNode().getCoverManager().readFromNbt(v),
(initial, p) -> Minecraft.getInstance().enqueue(() -> {}));
static {
TileDataManager.registerParameter(COVER_MANAGER);
}
public ConstructorTile() { public ConstructorTile() {
super(RSTiles.CONSTRUCTOR); super(RSTiles.CONSTRUCTOR);
dataManager.addWatchedParameter(COMPARE); dataManager.addWatchedParameter(COMPARE);
dataManager.addWatchedParameter(TYPE); dataManager.addWatchedParameter(TYPE);
dataManager.addWatchedParameter(DROP); dataManager.addWatchedParameter(DROP);
dataManager.addWatchedParameter(COVER_MANAGER);
} }
@Override @Override
@@ -32,4 +49,30 @@ public class ConstructorTile extends NetworkNodeTile<ConstructorNetworkNode> {
public ConstructorNetworkNode createNode(World world, BlockPos pos) { public ConstructorNetworkNode createNode(World world, BlockPos pos) {
return new ConstructorNetworkNode(world, pos); return new ConstructorNetworkNode(world, pos);
} }
@Nonnull
@Override
public IModelData getModelData() {
return new ModelDataMap.Builder().withInitial(CoverManager.PROPERTY, this.getNode().getCoverManager()).build();
}
@Override
public CompoundNBT writeUpdate(CompoundNBT tag) {
super.writeUpdate(tag);
tag.put("Covers", this.getNode().getCoverManager().writeToNbt());
return tag;
}
@Override
public void readUpdate(CompoundNBT tag) {
super.readUpdate(tag);
this.getNode().getCoverManager().readFromNbt(tag.getCompound("Covers"));
requestModelDataUpdate();
WorldUtils.updateBlock(world, pos);
}
} }

View File

@@ -2,13 +2,20 @@ package com.refinedmods.refinedstorage.tile;
import com.refinedmods.refinedstorage.RSTiles; import com.refinedmods.refinedstorage.RSTiles;
import com.refinedmods.refinedstorage.apiimpl.network.node.DestructorNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.DestructorNetworkNode;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.tile.config.IComparable; import com.refinedmods.refinedstorage.tile.config.IComparable;
import com.refinedmods.refinedstorage.tile.config.IType; import com.refinedmods.refinedstorage.tile.config.IType;
import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.tile.config.IWhitelistBlacklist;
import com.refinedmods.refinedstorage.tile.data.TileDataManager;
import com.refinedmods.refinedstorage.tile.data.TileDataParameter; import com.refinedmods.refinedstorage.tile.data.TileDataParameter;
import com.refinedmods.refinedstorage.util.WorldUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.model.data.IModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -21,6 +28,15 @@ public class DestructorTile extends NetworkNodeTile<DestructorNetworkNode> {
t.getNode().markDirty(); t.getNode().markDirty();
}); });
public static final TileDataParameter<CompoundNBT, DestructorTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(),
t -> t.getNode().getCoverManager().writeToNbt(),
(t, v) -> t.getNode().getCoverManager().readFromNbt(v),
(initial, p) -> Minecraft.getInstance().enqueue(() -> {}));
static {
TileDataManager.registerParameter(COVER_MANAGER);
}
public DestructorTile() { public DestructorTile() {
super(RSTiles.DESTRUCTOR); super(RSTiles.DESTRUCTOR);
@@ -35,4 +51,30 @@ public class DestructorTile extends NetworkNodeTile<DestructorNetworkNode> {
public DestructorNetworkNode createNode(World world, BlockPos pos) { public DestructorNetworkNode createNode(World world, BlockPos pos) {
return new DestructorNetworkNode(world, pos); return new DestructorNetworkNode(world, pos);
} }
@Nonnull
@Override
public IModelData getModelData() {
return new ModelDataMap.Builder().withInitial(CoverManager.PROPERTY, this.getNode().getCoverManager()).build();
}
@Override
public CompoundNBT writeUpdate(CompoundNBT tag) {
super.writeUpdate(tag);
tag.put("Covers", this.getNode().getCoverManager().writeToNbt());
return tag;
}
@Override
public void readUpdate(CompoundNBT tag) {
super.readUpdate(tag);
this.getNode().getCoverManager().readFromNbt(tag.getCompound("Covers"));
requestModelDataUpdate();
WorldUtils.updateBlock(world, pos);
}
} }

View File

@@ -23,8 +23,7 @@ public class ExporterTile extends NetworkNodeTile<ExporterNetworkNode> {
public static final TileDataParameter<CompoundNBT, ExporterTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(), public static final TileDataParameter<CompoundNBT, ExporterTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(),
t -> t.getNode().getCoverManager().writeToNbt(), t -> t.getNode().getCoverManager().writeToNbt(),
(t, v) -> t.getNode().getCoverManager().readFromNbt(v), (t, v) -> t.getNode().getCoverManager().readFromNbt(v),
(initial, p) -> Minecraft.getInstance().enqueue(() -> { (initial, p) -> Minecraft.getInstance().enqueue(() -> {}));
}));
public static final TileDataParameter<Integer, ExporterTile> COMPARE = IComparable.createParameter(); public static final TileDataParameter<Integer, ExporterTile> COMPARE = IComparable.createParameter();
public static final TileDataParameter<Integer, ExporterTile> TYPE = IType.createParameter(); public static final TileDataParameter<Integer, ExporterTile> TYPE = IType.createParameter();

View File

@@ -27,14 +27,12 @@ public class ImporterTile extends NetworkNodeTile<ImporterNetworkNode> {
public static final TileDataParameter<CompoundNBT, ImporterTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(), public static final TileDataParameter<CompoundNBT, ImporterTile> COVER_MANAGER = new TileDataParameter<>(DataSerializers.COMPOUND_NBT, new CompoundNBT(),
t -> t.getNode().getCoverManager().writeToNbt(), t -> t.getNode().getCoverManager().writeToNbt(),
(t, v) -> t.getNode().getCoverManager().readFromNbt(v), (t, v) -> t.getNode().getCoverManager().readFromNbt(v),
(initial, p) -> Minecraft.getInstance().enqueue(() -> { (initial, p) -> Minecraft.getInstance().enqueue(() -> {}));
}));
static { static {
TileDataManager.registerParameter(COVER_MANAGER); TileDataManager.registerParameter(COVER_MANAGER);
} }
public ImporterTile() { public ImporterTile() {
super(RSTiles.IMPORTER); super(RSTiles.IMPORTER);
@@ -50,7 +48,6 @@ public class ImporterTile extends NetworkNodeTile<ImporterNetworkNode> {
return new ImporterNetworkNode(world, pos); return new ImporterNetworkNode(world, pos);
} }
@Nonnull @Nonnull
@Override @Override
public IModelData getModelData() { public IModelData getModelData() {
@@ -60,6 +57,7 @@ public class ImporterTile extends NetworkNodeTile<ImporterNetworkNode> {
@Override @Override
public CompoundNBT writeUpdate(CompoundNBT tag) { public CompoundNBT writeUpdate(CompoundNBT tag) {
super.writeUpdate(tag); super.writeUpdate(tag);
tag.put("Covers", this.getNode().getCoverManager().writeToNbt()); tag.put("Covers", this.getNode().getCoverManager().writeToNbt());
return tag; return tag;