Added cover support for the constructor and destructor
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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));
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user