Re-add the Network Receiver

This commit is contained in:
raoulvdberge
2019-10-18 21:12:39 +02:00
parent e46baf4a3c
commit cc0adab112
21 changed files with 156 additions and 79 deletions

View File

@@ -62,6 +62,11 @@ public class ClientSetup {
new ResourceLocation(RS.ID, "block/grid/cutouts/fluid_front_connected") new ResourceLocation(RS.ID, "block/grid/cutouts/fluid_front_connected")
)); ));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "network_receiver"), (base, registry) -> new FullbrightBakedModel(
base,
new ResourceLocation(RS.ID, "block/network_receiver/cutouts/connected")
));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "pattern"), (base, registry) -> new PatternBakedModel(base)); bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "pattern"), (base, registry) -> new PatternBakedModel(base));
bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel( bakedModelOverrideRegistry.add(new ResourceLocation(RS.ID, "disk_drive"), (base, registry) -> new FullbrightBakedModel(

View File

@@ -115,6 +115,7 @@ public final class RS {
API.instance().getNetworkNodeRegistry().add(ExternalStorageNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ExternalStorageNetworkNode(world, pos))); API.instance().getNetworkNodeRegistry().add(ExternalStorageNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ExternalStorageNetworkNode(world, pos)));
API.instance().getNetworkNodeRegistry().add(ImporterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ImporterNetworkNode(world, pos))); API.instance().getNetworkNodeRegistry().add(ImporterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ImporterNetworkNode(world, pos)));
API.instance().getNetworkNodeRegistry().add(ExporterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ExporterNetworkNode(world, pos))); API.instance().getNetworkNodeRegistry().add(ExporterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new ExporterNetworkNode(world, pos)));
API.instance().getNetworkNodeRegistry().add(NetworkReceiverNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new NetworkReceiverNetworkNode(world, pos)));
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory()); API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
@@ -159,6 +160,7 @@ public final class RS {
e.getRegistry().register(new ExternalStorageBlock()); e.getRegistry().register(new ExternalStorageBlock());
e.getRegistry().register(new ImporterBlock()); e.getRegistry().register(new ImporterBlock());
e.getRegistry().register(new ExporterBlock()); e.getRegistry().register(new ExporterBlock());
e.getRegistry().register(new NetworkReceiverBlock());
} }
@SubscribeEvent @SubscribeEvent
@@ -187,6 +189,7 @@ public final class RS {
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ExternalStorageTile::new, RSBlocks.EXTERNAL_STORAGE).build(null).setRegistryName(RS.ID, "external_storage"))); e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ExternalStorageTile::new, RSBlocks.EXTERNAL_STORAGE).build(null).setRegistryName(RS.ID, "external_storage")));
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ImporterTile::new, RSBlocks.IMPORTER).build(null).setRegistryName(RS.ID, "importer"))); e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ImporterTile::new, RSBlocks.IMPORTER).build(null).setRegistryName(RS.ID, "importer")));
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ExporterTile::new, RSBlocks.EXPORTER).build(null).setRegistryName(RS.ID, "exporter"))); e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(ExporterTile::new, RSBlocks.EXPORTER).build(null).setRegistryName(RS.ID, "exporter")));
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(NetworkReceiverTile::new, RSBlocks.NETWORK_RECEIVER).build(null).setRegistryName(RS.ID, "network_receiver")));
} }
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) { private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
@@ -278,6 +281,7 @@ public final class RS {
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.EXTERNAL_STORAGE)); e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.EXTERNAL_STORAGE));
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.IMPORTER)); e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.IMPORTER));
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.EXPORTER)); e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.EXPORTER));
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.NETWORK_RECEIVER));
} }
/* TODO /* TODO

View File

@@ -19,7 +19,10 @@ public final class RSBlocks {
public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter(); public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter();
public static final BlockCrafter CRAFTER = new BlockCrafter(); public static final BlockCrafter CRAFTER = new BlockCrafter();
public static final BlockNetworkTransmitter NETWORK_TRANSMITTER = new BlockNetworkTransmitter(); public static final BlockNetworkTransmitter NETWORK_TRANSMITTER = new BlockNetworkTransmitter();
public static final BlockNetworkReceiver NETWORK_RECEIVER = new BlockNetworkReceiver();
@ObjectHolder(RS.ID + ":network_receiver")
public static final NetworkReceiverBlock NETWORK_RECEIVER = null;
public static final BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface(); public static final BlockFluidInterface FLUID_INTERFACE = new BlockFluidInterface();
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator(); public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
public static final BlockSecurityManager SECURITY_MANAGER = new BlockSecurityManager(); public static final BlockSecurityManager SECURITY_MANAGER = new BlockSecurityManager();

View File

@@ -14,7 +14,6 @@ public class RSOldConfig {
public int relayUsage; public int relayUsage;
public int wirelessTransmitterUsage; public int wirelessTransmitterUsage;
public int networkTransmitterUsage; public int networkTransmitterUsage;
public int networkReceiverUsage;
public int diskManipulatorUsage; public int diskManipulatorUsage;
public int securityManagerUsage; public int securityManagerUsage;
public int securityManagerPerSecurityCardUsage; public int securityManagerPerSecurityCardUsage;
@@ -85,7 +84,6 @@ public class RSOldConfig {
relayUsage = config.getInt("relay", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Relays"); relayUsage = config.getInt("relay", ENERGY, 1, 0, Integer.MAX_VALUE, "The energy used by Relays");
wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters"); wirelessTransmitterUsage = config.getInt("wirelessTransmitter", ENERGY, 8, 0, Integer.MAX_VALUE, "The energy used by Wireless Transmitters");
networkTransmitterUsage = config.getInt("networkTransmitter", ENERGY, 64, 0, Integer.MAX_VALUE, "The energy used by Network Transmitters"); networkTransmitterUsage = config.getInt("networkTransmitter", ENERGY, 64, 0, Integer.MAX_VALUE, "The energy used by Network Transmitters");
networkReceiverUsage = config.getInt("networkReceiver", ENERGY, 0, 0, Integer.MAX_VALUE, "The energy used by Network Receivers");
diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators"); diskManipulatorUsage = config.getInt("diskManipulator", ENERGY, 3, 0, Integer.MAX_VALUE, "The energy used by Disk Manipulators");
securityManagerUsage = config.getInt("securityManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The base energy used by Security Managers"); securityManagerUsage = config.getInt("securityManager", ENERGY, 4, 0, Integer.MAX_VALUE, "The base energy used by Security Managers");
securityManagerPerSecurityCardUsage = config.getInt("securityManagerPerSecurityCard", ENERGY, 10, 0, Integer.MAX_VALUE, "The additional energy used by Security Cards in Security Managers"); securityManagerPerSecurityCardUsage = config.getInt("securityManagerPerSecurityCard", ENERGY, 10, 0, Integer.MAX_VALUE, "The additional energy used by Security Cards in Security Managers");

View File

@@ -59,8 +59,10 @@ public class RSTiles {
public static final TileEntityType<ImporterTile> INTERFACE = null; public static final TileEntityType<ImporterTile> INTERFACE = null;
//@ObjectHolder(RS.ID + ":network_transmitter") //@ObjectHolder(RS.ID + ":network_transmitter")
public static final TileEntityType<TileNetworkTransmitter> NETWORK_TRANSMITTER = null; public static final TileEntityType<TileNetworkTransmitter> NETWORK_TRANSMITTER = null;
//@ObjectHolder(RS.ID + ":network_receiver")
public static final TileEntityType<TileNetworkReceiver> NETWORK_RECEIVER = null; @ObjectHolder(RS.ID + ":network_receiver")
public static final TileEntityType<NetworkReceiverTile> NETWORK_RECEIVER = null;
//@ObjectHolder(RS.ID + ":relay") //@ObjectHolder(RS.ID + ":relay")
public static final TileEntityType<TileRelay> RELAY = null; public static final TileEntityType<TileRelay> RELAY = null;
//@ObjectHolder(RS.ID + ":security_manager") //@ObjectHolder(RS.ID + ":security_manager")

View File

@@ -5,16 +5,16 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
public class NetworkNodeNetworkReceiver extends NetworkNode { public class NetworkReceiverNetworkNode extends NetworkNode {
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "network_receiver"); public static final ResourceLocation ID = new ResourceLocation(RS.ID, "network_receiver");
public NetworkNodeNetworkReceiver(World world, BlockPos pos) { public NetworkReceiverNetworkNode(World world, BlockPos pos) {
super(world, pos); super(world, pos);
} }
@Override @Override
public int getEnergyUsage() { public int getEnergyUsage() {
return RS.INSTANCE.config.networkReceiverUsage; return RS.SERVER_CONFIG.getNetworkReceiver().getUsage();
} }
@Override @Override

View File

@@ -1,28 +0,0 @@
package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
import com.raoulvdberge.refinedstorage.tile.TileNetworkReceiver;
public class BlockNetworkReceiver extends BlockNode {
public BlockNetworkReceiver() {
super(BlockInfoBuilder.forId("network_receiver").tileEntity(TileNetworkReceiver::new).create());
}
/* TODO
@Override
@OnlyIn(Dist.CLIENT)
public void registerModels(IModelRegistration modelRegistration) {
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
modelRegistration.addBakedModelOverride(info.getId(), base -> new BakedModelFullbright(base, RS.ID + ":blocks/network_receiver/cutouts/connected"));
}
@Override
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT;
}*/
@Override
public boolean hasConnectedState() {
return true;
}
}

View File

@@ -120,11 +120,6 @@ public class CableBlock extends NodeBlock {
.with(DOWN, down); .with(DOWN, down);
} }
@Override
public boolean hasTileEntity(BlockState state) {
return true;
}
@Nullable @Nullable
@Override @Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) { public TileEntity createTileEntity(BlockState state, IBlockReader world) {

View File

@@ -0,0 +1,35 @@
package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.tile.NetworkReceiverTile;
import com.raoulvdberge.refinedstorage.util.BlockUtils;
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.world.IBlockReader;
import javax.annotation.Nullable;
public class NetworkReceiverBlock extends NodeBlock {
public NetworkReceiverBlock() {
super(BlockUtils.DEFAULT_ROCK_PROPERTIES);
this.setRegistryName(RS.ID, "network_receiver");
}
@Nullable
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return new NetworkReceiverTile();
}
@Override
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT;
}
@Override
public boolean hasConnectedState() {
return true;
}
}

View File

@@ -75,6 +75,11 @@ public abstract class NodeBlock extends BaseBlock {
} }
} }
@Override
public boolean hasTileEntity(BlockState state) {
return true;
}
public boolean hasConnectedState() { public boolean hasConnectedState() {
return false; return false;
} }

View File

@@ -15,6 +15,7 @@ public class ServerConfig {
private ExternalStorage externalStorage; private ExternalStorage externalStorage;
private Importer importer; private Importer importer;
private Exporter exporter; private Exporter exporter;
private NetworkReceiver networkReceiver;
private Upgrades upgrades; private Upgrades upgrades;
public ServerConfig() { public ServerConfig() {
@@ -27,6 +28,7 @@ public class ServerConfig {
externalStorage = new ExternalStorage(); externalStorage = new ExternalStorage();
importer = new Importer(); importer = new Importer();
exporter = new Exporter(); exporter = new Exporter();
networkReceiver = new NetworkReceiver();
upgrades = new Upgrades(); upgrades = new Upgrades();
spec = builder.build(); spec = builder.build();
@@ -72,6 +74,10 @@ public class ServerConfig {
return exporter; return exporter;
} }
public NetworkReceiver getNetworkReceiver() {
return networkReceiver;
}
public ForgeConfigSpec getSpec() { public ForgeConfigSpec getSpec() {
return spec; return spec;
} }
@@ -367,4 +373,20 @@ public class ServerConfig {
return usage.get(); return usage.get();
} }
} }
public class NetworkReceiver {
private final ForgeConfigSpec.IntValue usage;
public NetworkReceiver() {
builder.push("networkReceiver");
usage = builder.comment("The energy used by the Network Receiver").defineInRange("usage", 0, 0, Integer.MAX_VALUE);
builder.pop();
}
public int getUsage() {
return usage.get();
}
}
} }

View File

@@ -58,15 +58,30 @@ public class NetworkCardItem extends Item {
super.addInformation(stack, world, tooltip, flag); super.addInformation(stack, world, tooltip, flag);
BlockPos pos = getReceiver(stack); BlockPos pos = getReceiver(stack);
DimensionType type = getDimension(stack);
if (pos != null) { if (pos != null && type != null) {
tooltip.add(new TranslationTextComponent("misc.refinedstorage.network_card.tooltip", pos.getX(), pos.getY(), pos.getZ()).setStyle(new Style().setColor(TextFormatting.GRAY))); tooltip.add(new TranslationTextComponent(
"misc.refinedstorage.network_card.tooltip",
pos.getX(),
pos.getY(),
pos.getZ(),
type.getRegistryName().toString()
).setStyle(new Style().setColor(TextFormatting.GRAY)));
} }
} }
@Nullable
public static BlockPos getReceiver(ItemStack stack) { public static BlockPos getReceiver(ItemStack stack) {
if (stack.hasTag() && stack.getTag().contains(NBT_RECEIVER_X) && stack.getTag().contains(NBT_RECEIVER_Y) && stack.getTag().contains(NBT_RECEIVER_Z)) { if (stack.hasTag() &&
return new BlockPos(stack.getTag().getInt(NBT_RECEIVER_X), stack.getTag().getInt(NBT_RECEIVER_Y), stack.getTag().getInt(NBT_RECEIVER_Z)); stack.getTag().contains(NBT_RECEIVER_X) &&
stack.getTag().contains(NBT_RECEIVER_Y) &&
stack.getTag().contains(NBT_RECEIVER_Z)) {
return new BlockPos(
stack.getTag().getInt(NBT_RECEIVER_X),
stack.getTag().getInt(NBT_RECEIVER_Y),
stack.getTag().getInt(NBT_RECEIVER_Z)
);
} }
return null; return null;

View File

@@ -63,7 +63,7 @@ public abstract class NetworkNodeTile<N extends NetworkNode> extends BaseTile im
INetworkNode node = manager.getNode(pos); INetworkNode node = manager.getNode(pos);
if (node == null) { if (node == null) {
throw new RuntimeException("No network node present at " + pos.toString()); throw new RuntimeException("No network node present at " + pos.toString() + ", consider removing the block at this position");
} }
return (N) node; return (N) node;

View File

@@ -1,20 +1,20 @@
package com.raoulvdberge.refinedstorage.tile; package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.RSTiles; import com.raoulvdberge.refinedstorage.RSTiles;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeNetworkReceiver; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkReceiverNetworkNode;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
public class TileNetworkReceiver extends NetworkNodeTile<NetworkNodeNetworkReceiver> { public class NetworkReceiverTile extends NetworkNodeTile<NetworkReceiverNetworkNode> {
public TileNetworkReceiver() { public NetworkReceiverTile() {
super(RSTiles.NETWORK_RECEIVER); super(RSTiles.NETWORK_RECEIVER);
} }
@Override @Override
@Nonnull @Nonnull
public NetworkNodeNetworkReceiver createNode(World world, BlockPos pos) { public NetworkReceiverNetworkNode createNode(World world, BlockPos pos) {
return new NetworkNodeNetworkReceiver(world, pos); return new NetworkReceiverNetworkNode(world, pos);
} }
} }

View File

@@ -1,27 +1,10 @@
{ {
"forge_marker": 1,
"defaults": {
"model": "refinedstorage:cube_all_cutout",
"textures": {
"particle": "refinedstorage:blocks/network_receiver/network_receiver",
"all": "refinedstorage:blocks/network_receiver/network_receiver",
"cutout": "refinedstorage:blocks/network_receiver/cutouts/disconnected"
}
},
"variants": { "variants": {
"inventory": [ "connected=true": {
{ "model": "refinedstorage:block/network_receiver_connected"
"transform": "forge:default-block"
}
],
"connected": {
"true": {
"textures": {
"cutout": "refinedstorage:blocks/network_receiver/cutouts/connected"
}
}, },
"false": { "connected=false": {
} "model": "refinedstorage:block/network_receiver_disconnected"
} }
} }
} }

View File

@@ -93,7 +93,7 @@
"misc.refinedstorage.network_item.tooltip": "Linked to %d, %d, %d.", "misc.refinedstorage.network_item.tooltip": "Linked to %d, %d, %d.",
"misc.refinedstorage.network_item.out_of_range": "There is no Wireless Transmitter in range.", "misc.refinedstorage.network_item.out_of_range": "There is no Wireless Transmitter in range.",
"misc.refinedstorage.network_item.not_found": "Controller not found.", "misc.refinedstorage.network_item.not_found": "Controller not found.",
"misc.refinedstorage.network_card.tooltip": "Linked to %d, %d, %d.", "misc.refinedstorage.network_card.tooltip": "Linked to %d, %d, %d in %s.",
"misc.refinedstorage.pattern.inputs": "Inputs", "misc.refinedstorage.pattern.inputs": "Inputs",
"misc.refinedstorage.pattern.outputs": "Outputs", "misc.refinedstorage.pattern.outputs": "Outputs",
"misc.refinedstorage.pattern.invalid": "Invalid pattern", "misc.refinedstorage.pattern.invalid": "Invalid pattern",
@@ -201,7 +201,7 @@
"block.refinedstorage:wireless_transmitter": "Wireless Transmitter", "block.refinedstorage:wireless_transmitter": "Wireless Transmitter",
"block.refinedstorage:wireless_transmitter.tooltip": "Must be placed on %s.", "block.refinedstorage:wireless_transmitter.tooltip": "Must be placed on %s.",
"block.refinedstorage:crafter": "Crafter", "block.refinedstorage:crafter": "Crafter",
"block.refinedstorage:network_receiver": "Network Receiver", "block.refinedstorage.network_receiver": "Network Receiver",
"block.refinedstorage:network_transmitter": "Network Transmitter", "block.refinedstorage:network_transmitter": "Network Transmitter",
"block.refinedstorage:fluid_interface": "Fluid Interface", "block.refinedstorage:fluid_interface": "Fluid Interface",
"block.refinedstorage.64k_fluid_storage_block": "64k Fluid Storage Block", "block.refinedstorage.64k_fluid_storage_block": "64k Fluid Storage Block",

View File

@@ -0,0 +1,8 @@
{
"parent": "refinedstorage:block/cube_all_cutout",
"textures": {
"particle": "refinedstorage:block/network_receiver/network_receiver",
"all": "refinedstorage:block/network_receiver/network_receiver",
"cutout": "refinedstorage:block/network_receiver/cutouts/connected"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "refinedstorage:block/cube_all_cutout",
"textures": {
"particle": "refinedstorage:block/network_receiver/network_receiver",
"all": "refinedstorage:block/network_receiver/network_receiver",
"cutout": "refinedstorage:block/network_receiver/cutouts/disconnected"
}
}

View File

@@ -0,0 +1,3 @@
{
"parent": "refinedstorage:block/network_receiver_disconnected"
}

View File

@@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "refinedstorage:network_receiver"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View File

@@ -7,19 +7,19 @@
], ],
"key": { "key": {
"E": { "E": {
"item": "minecraft:ender_pearl" "tag": "forge:ender_pearls"
}, },
"C": { "C": {
"item": "#construction_core" "item": "refinedstorage:construction_core"
}, },
"M": { "M": {
"item": "refinedstorage:machine_casing" "item": "refinedstorage:machine_casing"
}, },
"D": { "D": {
"item": "#destruction_core" "item": "refinedstorage:destruction_core"
}, },
"A": { "A": {
"item": "#advanced_processor" "item": "refinedstorage:advanced_processor"
} }
}, },
"result": { "result": {