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")
));
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, "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(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(NetworkReceiverNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new NetworkReceiverNetworkNode(world, pos)));
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 ImporterBlock());
e.getRegistry().register(new ExporterBlock());
e.getRegistry().register(new NetworkReceiverBlock());
}
@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(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(NetworkReceiverTile::new, RSBlocks.NETWORK_RECEIVER).build(null).setRegistryName(RS.ID, "network_receiver")));
}
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.IMPORTER));
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.EXPORTER));
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.NETWORK_RECEIVER));
}
/* TODO

View File

@@ -19,7 +19,10 @@ public final class RSBlocks {
public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter();
public static final BlockCrafter CRAFTER = new BlockCrafter();
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 BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
public static final BlockSecurityManager SECURITY_MANAGER = new BlockSecurityManager();

View File

@@ -14,7 +14,6 @@ public class RSOldConfig {
public int relayUsage;
public int wirelessTransmitterUsage;
public int networkTransmitterUsage;
public int networkReceiverUsage;
public int diskManipulatorUsage;
public int securityManagerUsage;
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");
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");
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");
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");

View File

@@ -59,8 +59,10 @@ public class RSTiles {
public static final TileEntityType<ImporterTile> INTERFACE = null;
//@ObjectHolder(RS.ID + ":network_transmitter")
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")
public static final TileEntityType<TileRelay> RELAY = null;
//@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.world.World;
public class NetworkNodeNetworkReceiver extends NetworkNode {
public class NetworkReceiverNetworkNode extends NetworkNode {
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);
}
@Override
public int getEnergyUsage() {
return RS.INSTANCE.config.networkReceiverUsage;
return RS.SERVER_CONFIG.getNetworkReceiver().getUsage();
}
@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);
}
@Override
public boolean hasTileEntity(BlockState state) {
return true;
}
@Nullable
@Override
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() {
return false;
}

View File

@@ -15,6 +15,7 @@ public class ServerConfig {
private ExternalStorage externalStorage;
private Importer importer;
private Exporter exporter;
private NetworkReceiver networkReceiver;
private Upgrades upgrades;
public ServerConfig() {
@@ -27,6 +28,7 @@ public class ServerConfig {
externalStorage = new ExternalStorage();
importer = new Importer();
exporter = new Exporter();
networkReceiver = new NetworkReceiver();
upgrades = new Upgrades();
spec = builder.build();
@@ -72,6 +74,10 @@ public class ServerConfig {
return exporter;
}
public NetworkReceiver getNetworkReceiver() {
return networkReceiver;
}
public ForgeConfigSpec getSpec() {
return spec;
}
@@ -367,4 +373,20 @@ public class ServerConfig {
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);
BlockPos pos = getReceiver(stack);
DimensionType type = getDimension(stack);
if (pos != null) {
tooltip.add(new TranslationTextComponent("misc.refinedstorage.network_card.tooltip", pos.getX(), pos.getY(), pos.getZ()).setStyle(new Style().setColor(TextFormatting.GRAY)));
if (pos != null && type != null) {
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) {
if (stack.hasTag() && 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));
if (stack.hasTag() &&
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;

View File

@@ -63,7 +63,7 @@ public abstract class NetworkNodeTile<N extends NetworkNode> extends BaseTile im
INetworkNode node = manager.getNode(pos);
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;

View File

@@ -1,20 +1,20 @@
package com.raoulvdberge.refinedstorage.tile;
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.world.World;
import javax.annotation.Nonnull;
public class TileNetworkReceiver extends NetworkNodeTile<NetworkNodeNetworkReceiver> {
public TileNetworkReceiver() {
public class NetworkReceiverTile extends NetworkNodeTile<NetworkReceiverNetworkNode> {
public NetworkReceiverTile() {
super(RSTiles.NETWORK_RECEIVER);
}
@Override
@Nonnull
public NetworkNodeNetworkReceiver createNode(World world, BlockPos pos) {
return new NetworkNodeNetworkReceiver(world, pos);
public NetworkReceiverNetworkNode createNode(World world, BlockPos 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": {
"inventory": [
{
"transform": "forge:default-block"
}
],
"connected": {
"true": {
"textures": {
"cutout": "refinedstorage:blocks/network_receiver/cutouts/connected"
}
"connected=true": {
"model": "refinedstorage:block/network_receiver_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.out_of_range": "There is no Wireless Transmitter in range.",
"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.outputs": "Outputs",
"misc.refinedstorage.pattern.invalid": "Invalid pattern",
@@ -201,7 +201,7 @@
"block.refinedstorage:wireless_transmitter": "Wireless Transmitter",
"block.refinedstorage:wireless_transmitter.tooltip": "Must be placed on %s.",
"block.refinedstorage:crafter": "Crafter",
"block.refinedstorage:network_receiver": "Network Receiver",
"block.refinedstorage.network_receiver": "Network Receiver",
"block.refinedstorage:network_transmitter": "Network Transmitter",
"block.refinedstorage:fluid_interface": "Fluid Interface",
"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": {
"E": {
"item": "minecraft:ender_pearl"
"tag": "forge:ender_pearls"
},
"C": {
"item": "#construction_core"
"item": "refinedstorage:construction_core"
},
"M": {
"item": "refinedstorage:machine_casing"
},
"D": {
"item": "#destruction_core"
"item": "refinedstorage:destruction_core"
},
"A": {
"item": "#advanced_processor"
"item": "refinedstorage:advanced_processor"
}
},
"result": {