Re-add the Storage Monitor
This commit is contained in:
@@ -9,8 +9,10 @@ import com.raoulvdberge.refinedstorage.render.color.PatternItemColor;
|
|||||||
import com.raoulvdberge.refinedstorage.render.model.DiskDriveBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.DiskDriveBakedModel;
|
||||||
import com.raoulvdberge.refinedstorage.render.model.FullbrightBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.FullbrightBakedModel;
|
||||||
import com.raoulvdberge.refinedstorage.render.model.PatternBakedModel;
|
import com.raoulvdberge.refinedstorage.render.model.PatternBakedModel;
|
||||||
|
import com.raoulvdberge.refinedstorage.render.tesr.StorageMonitorTileRenderer;
|
||||||
import com.raoulvdberge.refinedstorage.screen.*;
|
import com.raoulvdberge.refinedstorage.screen.*;
|
||||||
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
import com.raoulvdberge.refinedstorage.screen.factory.GridScreenFactory;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.ScreenManager;
|
import net.minecraft.client.gui.ScreenManager;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
@@ -126,10 +128,13 @@ public class ClientSetup {
|
|||||||
ScreenManager.registerFactory(RSContainers.INTERFACE, InterfaceScreen::new);
|
ScreenManager.registerFactory(RSContainers.INTERFACE, InterfaceScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.FLUID_INTERFACE, FluidInterfaceScreen::new);
|
ScreenManager.registerFactory(RSContainers.FLUID_INTERFACE, FluidInterfaceScreen::new);
|
||||||
ScreenManager.registerFactory(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new);
|
ScreenManager.registerFactory(RSContainers.WIRELESS_TRANSMITTER, WirelessTransmitterScreen::new);
|
||||||
|
ScreenManager.registerFactory(RSContainers.STORAGE_MONITOR, StorageMonitorScreen::new);
|
||||||
|
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.FOCUS_SEARCH_BAR);
|
||||||
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
ClientRegistry.registerKeyBinding(RSKeyBindings.CLEAR_GRID_CRAFTING_MATRIX);
|
||||||
|
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(StorageMonitorTile.class, new StorageMonitorTileRenderer());
|
||||||
|
|
||||||
e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN);
|
e.getMinecraftSupplier().get().getItemColors().register(new PatternItemColor(), RSItems.PATTERN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ public final class RS {
|
|||||||
API.instance().getNetworkNodeRegistry().add(InterfaceNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new InterfaceNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(InterfaceNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new InterfaceNetworkNode(world, pos)));
|
||||||
API.instance().getNetworkNodeRegistry().add(FluidInterfaceNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new FluidInterfaceNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(FluidInterfaceNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new FluidInterfaceNetworkNode(world, pos)));
|
||||||
API.instance().getNetworkNodeRegistry().add(WirelessTransmitterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new WirelessTransmitterNetworkNode(world, pos)));
|
API.instance().getNetworkNodeRegistry().add(WirelessTransmitterNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new WirelessTransmitterNetworkNode(world, pos)));
|
||||||
|
API.instance().getNetworkNodeRegistry().add(StorageMonitorNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new StorageMonitorNetworkNode(world, pos)));
|
||||||
|
|
||||||
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
API.instance().getGridManager().add(GridBlockGridFactory.ID, new GridBlockGridFactory());
|
||||||
|
|
||||||
@@ -179,6 +180,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(new InterfaceBlock());
|
e.getRegistry().register(new InterfaceBlock());
|
||||||
e.getRegistry().register(new FluidInterfaceBlock());
|
e.getRegistry().register(new FluidInterfaceBlock());
|
||||||
e.getRegistry().register(new WirelessTransmitterBlock());
|
e.getRegistry().register(new WirelessTransmitterBlock());
|
||||||
|
e.getRegistry().register(new StorageMonitorBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -215,6 +217,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(InterfaceTile::new, RSBlocks.INTERFACE).build(null).setRegistryName(RS.ID, "interface")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(InterfaceTile::new, RSBlocks.INTERFACE).build(null).setRegistryName(RS.ID, "interface")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(FluidInterfaceTile::new, RSBlocks.FLUID_INTERFACE).build(null).setRegistryName(RS.ID, "fluid_interface")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(FluidInterfaceTile::new, RSBlocks.FLUID_INTERFACE).build(null).setRegistryName(RS.ID, "fluid_interface")));
|
||||||
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(WirelessTransmitterTile::new, RSBlocks.WIRELESS_TRANSMITTER).build(null).setRegistryName(RS.ID, "wireless_transmitter")));
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(WirelessTransmitterTile::new, RSBlocks.WIRELESS_TRANSMITTER).build(null).setRegistryName(RS.ID, "wireless_transmitter")));
|
||||||
|
e.getRegistry().register(registerTileDataParameters(TileEntityType.Builder.create(StorageMonitorTile::new, RSBlocks.STORAGE_MONITOR).build(null).setRegistryName(RS.ID, "storage_monitor")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
private <T extends TileEntity> TileEntityType<T> registerTileDataParameters(TileEntityType<T> t) {
|
||||||
@@ -243,6 +246,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<InterfaceContainer, InterfaceTile>((windowId, inv, tile) -> new InterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "interface"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<InterfaceContainer, InterfaceTile>((windowId, inv, tile) -> new InterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "interface"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<FluidInterfaceContainer, FluidInterfaceTile>((windowId, inv, tile) -> new FluidInterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_interface"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<FluidInterfaceContainer, FluidInterfaceTile>((windowId, inv, tile) -> new FluidInterfaceContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "fluid_interface"));
|
||||||
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<WirelessTransmitterContainer, WirelessTransmitterTile>((windowId, inv, tile) -> new WirelessTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "wireless_transmitter"));
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<WirelessTransmitterContainer, WirelessTransmitterTile>((windowId, inv, tile) -> new WirelessTransmitterContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "wireless_transmitter"));
|
||||||
|
e.getRegistry().register(IForgeContainerType.create(new PositionalTileContainerFactory<StorageMonitorContainer, StorageMonitorTile>((windowId, inv, tile) -> new StorageMonitorContainer(tile, inv.player, windowId))).setRegistryName(RS.ID, "storage_monitor"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -321,6 +325,7 @@ public final class RS {
|
|||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.INTERFACE));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.INTERFACE));
|
||||||
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.FLUID_INTERFACE));
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.FLUID_INTERFACE));
|
||||||
e.getRegistry().register(new WirelessTransmitterBlockItem());
|
e.getRegistry().register(new WirelessTransmitterBlockItem());
|
||||||
|
e.getRegistry().register(BlockUtils.createBlockItemFor(RSBlocks.STORAGE_MONITOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
/* TODO
|
||||||
|
|||||||
@@ -66,13 +66,14 @@ public final class RSBlocks {
|
|||||||
public static final FluidInterfaceBlock FLUID_INTERFACE = null;
|
public static final FluidInterfaceBlock FLUID_INTERFACE = null;
|
||||||
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
||||||
public static final WirelessTransmitterBlock WIRELESS_TRANSMITTER = null;
|
public static final WirelessTransmitterBlock WIRELESS_TRANSMITTER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
|
public static final StorageMonitorBlock STORAGE_MONITOR = null;
|
||||||
|
|
||||||
public static final BlockDestructor DESTRUCTOR = new BlockDestructor();
|
public static final BlockDestructor DESTRUCTOR = new BlockDestructor();
|
||||||
public static final BlockConstructor CONSTRUCTOR = new BlockConstructor();
|
public static final BlockConstructor CONSTRUCTOR = new BlockConstructor();
|
||||||
public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor();
|
public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor();
|
||||||
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
public static final BlockCrafter CRAFTER = new BlockCrafter();
|
||||||
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
||||||
public static final BlockStorageMonitor STORAGE_MONITOR = new BlockStorageMonitor();
|
|
||||||
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
public static final BlockPortableGrid PORTABLE_GRID = new BlockPortableGrid();
|
||||||
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
public static final BlockCrafterManager CRAFTER_MANAGER = new BlockCrafterManager();
|
||||||
}
|
}
|
||||||
@@ -37,6 +37,8 @@ public final class RSContainers {
|
|||||||
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
public static final ContainerType<FluidInterfaceContainer> FLUID_INTERFACE = null;
|
||||||
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
||||||
public static final ContainerType<WirelessTransmitterContainer> WIRELESS_TRANSMITTER = null;
|
public static final ContainerType<WirelessTransmitterContainer> WIRELESS_TRANSMITTER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
|
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":crafter")
|
//@ObjectHolder(RS.ID + ":crafter")
|
||||||
public static final ContainerType<CrafterContainer> CRAFTER = null;
|
public static final ContainerType<CrafterContainer> CRAFTER = null;
|
||||||
@@ -50,6 +52,4 @@ public final class RSContainers {
|
|||||||
public static final ContainerType<ConstructorContainer> CONSTRUCTOR = null;
|
public static final ContainerType<ConstructorContainer> CONSTRUCTOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
||||||
public static final ContainerType<DiskManipulatorContainer> DISK_MANIPULATOR = null;
|
public static final ContainerType<DiskManipulatorContainer> DISK_MANIPULATOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":storage_monitor")
|
|
||||||
public static final ContainerType<StorageMonitorContainer> STORAGE_MONITOR = null;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,11 +66,11 @@ public class RSTiles {
|
|||||||
public static final TileEntityType<FluidInterfaceTile> FLUID_INTERFACE = null;
|
public static final TileEntityType<FluidInterfaceTile> FLUID_INTERFACE = null;
|
||||||
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
@ObjectHolder(RS.ID + ":wireless_transmitter")
|
||||||
public static final TileEntityType<WirelessTransmitterTile> WIRELESS_TRANSMITTER = null;
|
public static final TileEntityType<WirelessTransmitterTile> WIRELESS_TRANSMITTER = null;
|
||||||
|
@ObjectHolder(RS.ID + ":storage_monitor")
|
||||||
|
public static final TileEntityType<StorageMonitorTile> STORAGE_MONITOR = null;
|
||||||
|
|
||||||
//@ObjectHolder(RS.ID + ":portable_grid")
|
//@ObjectHolder(RS.ID + ":portable_grid")
|
||||||
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
public static final TileEntityType<TilePortableGrid> PORTABLE_GRID = null;
|
||||||
//@ObjectHolder(RS.ID + ":storage_monitor")
|
|
||||||
public static final TileEntityType<TileStorageMonitor> STORAGE_MONITOR = null;
|
|
||||||
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
//@ObjectHolder(RS.ID + ":disk_manipulator")
|
||||||
public static final TileEntityType<TileDiskManipulator> DISK_MANIPULATOR = null;
|
public static final TileEntityType<TileDiskManipulator> DISK_MANIPULATOR = null;
|
||||||
//@ObjectHolder(RS.ID + ":crafter")
|
//@ObjectHolder(RS.ID + ":crafter")
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class NetworkNodeStorageMonitor extends NetworkNode implements IComparable {
|
public class StorageMonitorNetworkNode extends NetworkNode implements IComparable {
|
||||||
public static final int DEPOSIT_ALL_MAX_DELAY = 500;
|
public static final int DEPOSIT_ALL_MAX_DELAY = 500;
|
||||||
|
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "storage_monitor");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "storage_monitor");
|
||||||
@@ -45,7 +45,7 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl
|
|||||||
|
|
||||||
private int oldAmount = -1;
|
private int oldAmount = -1;
|
||||||
|
|
||||||
public NetworkNodeStorageMonitor(World world, BlockPos pos) {
|
public StorageMonitorNetworkNode(World world, BlockPos pos) {
|
||||||
super(world, pos);
|
super(world, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ public class NetworkNodeStorageMonitor extends NetworkNode implements IComparabl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return 0;
|
return RS.SERVER_CONFIG.getStorageMonitor().getUsage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.block;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.block.info.BlockInfoBuilder;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
|
||||||
|
|
||||||
public class BlockStorageMonitor extends BlockNode {
|
|
||||||
public BlockStorageMonitor() {
|
|
||||||
super(BlockInfoBuilder.forId("storage_monitor").tileEntity(TileStorageMonitor::new).create());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@Override
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public void registerModels(IModelRegistration modelRegistration) {
|
|
||||||
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "connected=false,direction=north"));
|
|
||||||
|
|
||||||
modelRegistration.setTesr(TileStorageMonitor.class, new TileEntitySpecialRendererStorageMonitor());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public BlockDirection getDirection() {
|
|
||||||
return BlockDirection.HORIZONTAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBlockActivated(World world, BlockPos pos, BlockState state, PlayerEntity player, EnumHand hand, Direction side, float hitX, float hitY, float hitZ) {
|
|
||||||
if (!world.isRemote) {
|
|
||||||
ItemStack held = player.inventory.getCurrentItem();
|
|
||||||
|
|
||||||
if (player.isSneaking()) {
|
|
||||||
openNetworkGui(RSGui.STORAGE_MONITOR, player, world, pos, side);
|
|
||||||
} else {
|
|
||||||
NetworkNodeStorageMonitor storageMonitor = ((TileStorageMonitor) world.getTileEntity(pos)).getNode();
|
|
||||||
|
|
||||||
if (!held.isEmpty()) {
|
|
||||||
return storageMonitor.deposit(player, held);
|
|
||||||
} else {
|
|
||||||
return storageMonitor.depositAll(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockClicked(World world, BlockPos pos, PlayerEntity player) {
|
|
||||||
super.onBlockClicked(world, pos, player);
|
|
||||||
|
|
||||||
if (!world.isRemote) {
|
|
||||||
RayTraceResult rayResult = ForgeHooks.rayTraceEyes(player, player.getEntityAttribute(PlayerEntity.REACH_DISTANCE).getAttributeValue() + 1);
|
|
||||||
|
|
||||||
if (rayResult == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
((TileStorageMonitor) world.getTileEntity(pos)).getNode().extract(player, rayResult.sideHit);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasConnectedState() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.block;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.StorageMonitorNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.block.info.BlockDirection;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.StorageMonitorContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerProvider;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.BlockUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.NetworkUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
|
import net.minecraft.world.IBlockReader;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.fml.network.NetworkHooks;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class StorageMonitorBlock extends NodeBlock {
|
||||||
|
public StorageMonitorBlock() {
|
||||||
|
super(BlockUtils.DEFAULT_ROCK_PROPERTIES);
|
||||||
|
|
||||||
|
this.setRegistryName(RS.ID, "storage_monitor");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockDirection getDirection() {
|
||||||
|
return BlockDirection.HORIZONTAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
|
return new StorageMonitorTile();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public boolean onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) {
|
||||||
|
if (!world.isRemote) {
|
||||||
|
ItemStack held = player.inventory.getCurrentItem();
|
||||||
|
|
||||||
|
if (player.isSneaking()) {
|
||||||
|
return NetworkUtils.attemptModify(world, pos, hit.getFace(), player, () -> NetworkHooks.openGui(
|
||||||
|
(ServerPlayerEntity) player,
|
||||||
|
new PositionalTileContainerProvider<StorageMonitorTile>(
|
||||||
|
new TranslationTextComponent("gui.refinedstorage.storage_monitor"),
|
||||||
|
(tile, windowId, inventory, p) -> new StorageMonitorContainer(tile, player, windowId),
|
||||||
|
pos
|
||||||
|
),
|
||||||
|
pos
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
StorageMonitorNetworkNode storageMonitor = ((StorageMonitorTile) world.getTileEntity(pos)).getNode();
|
||||||
|
|
||||||
|
if (!held.isEmpty()) {
|
||||||
|
return storageMonitor.deposit(player, held);
|
||||||
|
} else {
|
||||||
|
return storageMonitor.depositAll(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public void onBlockClicked(BlockState state, World world, BlockPos pos, PlayerEntity player) {
|
||||||
|
super.onBlockClicked(state, world, pos, player);
|
||||||
|
|
||||||
|
if (!world.isRemote) {
|
||||||
|
RayTraceResult result = WorldUtils.rayTracePlayer(world, player);
|
||||||
|
|
||||||
|
if (!(result instanceof BlockRayTraceResult)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
((StorageMonitorTile) world.getTileEntity(pos)).getNode().extract(player, ((BlockRayTraceResult) result).getFace());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasConnectedState() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ public class ServerConfig {
|
|||||||
private ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
|
private ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
|
||||||
private ForgeConfigSpec spec;
|
private ForgeConfigSpec spec;
|
||||||
|
|
||||||
|
private Upgrades upgrades;
|
||||||
private Controller controller;
|
private Controller controller;
|
||||||
private Cable cable;
|
private Cable cable;
|
||||||
private Grid grid;
|
private Grid grid;
|
||||||
@@ -23,9 +24,10 @@ public class ServerConfig {
|
|||||||
private Interface _interface;
|
private Interface _interface;
|
||||||
private FluidInterface fluidInterface;
|
private FluidInterface fluidInterface;
|
||||||
private WirelessTransmitter wirelessTransmitter;
|
private WirelessTransmitter wirelessTransmitter;
|
||||||
private Upgrades upgrades;
|
private StorageMonitor storageMonitor;
|
||||||
|
|
||||||
public ServerConfig() {
|
public ServerConfig() {
|
||||||
|
upgrades = new Upgrades();
|
||||||
controller = new Controller();
|
controller = new Controller();
|
||||||
cable = new Cable();
|
cable = new Cable();
|
||||||
grid = new Grid();
|
grid = new Grid();
|
||||||
@@ -43,11 +45,15 @@ public class ServerConfig {
|
|||||||
_interface = new Interface();
|
_interface = new Interface();
|
||||||
fluidInterface = new FluidInterface();
|
fluidInterface = new FluidInterface();
|
||||||
wirelessTransmitter = new WirelessTransmitter();
|
wirelessTransmitter = new WirelessTransmitter();
|
||||||
upgrades = new Upgrades();
|
storageMonitor = new StorageMonitor();
|
||||||
|
|
||||||
spec = builder.build();
|
spec = builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Upgrades getUpgrades() {
|
||||||
|
return upgrades;
|
||||||
|
}
|
||||||
|
|
||||||
public Controller getController() {
|
public Controller getController() {
|
||||||
return controller;
|
return controller;
|
||||||
}
|
}
|
||||||
@@ -60,10 +66,6 @@ public class ServerConfig {
|
|||||||
return diskDrive;
|
return diskDrive;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Upgrades getUpgrades() {
|
|
||||||
return upgrades;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Grid getGrid() {
|
public Grid getGrid() {
|
||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
@@ -120,6 +122,10 @@ public class ServerConfig {
|
|||||||
return wirelessTransmitter;
|
return wirelessTransmitter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StorageMonitor getStorageMonitor() {
|
||||||
|
return storageMonitor;
|
||||||
|
}
|
||||||
|
|
||||||
public ForgeConfigSpec getSpec() {
|
public ForgeConfigSpec getSpec() {
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
@@ -561,4 +567,20 @@ public class ServerConfig {
|
|||||||
return rangePerUpgrade.get();
|
return rangePerUpgrade.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class StorageMonitor {
|
||||||
|
private final ForgeConfigSpec.IntValue usage;
|
||||||
|
|
||||||
|
public StorageMonitor() {
|
||||||
|
builder.push("storageMonitor");
|
||||||
|
|
||||||
|
usage = builder.comment("The energy used by the Storage Monitor").defineInRange("usage", 3, 0, Integer.MAX_VALUE);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUsage() {
|
||||||
|
return usage.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ package com.raoulvdberge.refinedstorage.container;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSContainers;
|
import com.raoulvdberge.refinedstorage.RSContainers;
|
||||||
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
|
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
|
||||||
public class StorageMonitorContainer extends BaseContainer {
|
public class StorageMonitorContainer extends BaseContainer {
|
||||||
public StorageMonitorContainer(TileStorageMonitor storageMonitor, PlayerEntity player, int windowId) {
|
public StorageMonitorContainer(StorageMonitorTile storageMonitor, PlayerEntity player, int windowId) {
|
||||||
super(RSContainers.STORAGE_MONITOR, storageMonitor, player, windowId);
|
super(RSContainers.STORAGE_MONITOR, storageMonitor, player, windowId);
|
||||||
|
|
||||||
addSlot(new FilterSlot(storageMonitor.getNode().getItemFilters(), 0, 80, 20));
|
addSlot(new FilterSlot(storageMonitor.getNode().getItemFilters(), 0, 80, 20));
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||||
import com.raoulvdberge.refinedstorage.render.tesr.PatternItemStackTileEntityRenderer;
|
import com.raoulvdberge.refinedstorage.render.tesr.PatternItemStackTileRenderer;
|
||||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||||
import net.minecraft.client.util.ITooltipFlag;
|
import net.minecraft.client.util.ITooltipFlag;
|
||||||
@@ -45,7 +45,7 @@ public class PatternItem extends Item implements ICraftingPatternProvider {
|
|||||||
private static final int VERSION = 1;
|
private static final int VERSION = 1;
|
||||||
|
|
||||||
public PatternItem() {
|
public PatternItem() {
|
||||||
super(new Item.Properties().group(RS.MAIN_GROUP).setTEISR(() -> PatternItemStackTileEntityRenderer::new));
|
super(new Item.Properties().group(RS.MAIN_GROUP).setTEISR(() -> PatternItemStackTileRenderer::new));
|
||||||
|
|
||||||
this.setRegistryName(RS.ID, "pattern");
|
this.setRegistryName(RS.ID, "pattern");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.item.PatternItem;
|
|||||||
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
|
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
public class PatternItemStackTileEntityRenderer extends ItemStackTileEntityRenderer {
|
public class PatternItemStackTileRenderer extends ItemStackTileEntityRenderer {
|
||||||
@Override
|
@Override
|
||||||
public void renderByItem(ItemStack stack) {
|
public void renderByItem(ItemStack stack) {
|
||||||
CraftingPattern pattern = PatternItem.fromCache(null, stack);
|
CraftingPattern pattern = PatternItem.fromCache(null, stack);
|
||||||
@@ -1,18 +1,21 @@
|
|||||||
package com.raoulvdberge.refinedstorage.render.tesr;
|
package com.raoulvdberge.refinedstorage.render.tesr;
|
||||||
|
|
||||||
import com.mojang.blaze3d.platform.GlStateManager;
|
import com.mojang.blaze3d.platform.GlStateManager;
|
||||||
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
import net.minecraft.client.renderer.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.model.ItemCameraTransforms;
|
import net.minecraft.client.renderer.model.ItemCameraTransforms;
|
||||||
|
import net.minecraft.client.renderer.texture.AtlasTexture;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
|
||||||
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraftforge.client.ForgeHooksClient;
|
import net.minecraftforge.client.ForgeHooksClient;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileStorageMonitor> {
|
public class StorageMonitorTileRenderer extends TileEntityRenderer<StorageMonitorTile> {
|
||||||
@Override
|
@Override
|
||||||
public void render(TileStorageMonitor tile, double x, double y, double z, float partialTicks, int destroyStage) {
|
public void render(StorageMonitorTile tile, double x, double y, double z, float partialTicks, int destroyStage) {
|
||||||
setLightmapDisabled(true);
|
setLightmapDisabled(true);
|
||||||
|
|
||||||
float disX = 0, disXText = 0;
|
float disX = 0, disXText = 0;
|
||||||
@@ -37,8 +40,9 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
Direction direction = tile.getWorld().getBlockState(tile.getPos()).get(RSBlocks.STORAGE_MONITOR.getDirection().getProperty());
|
||||||
if (tile.getDirection() == Direction.NORTH) {
|
|
||||||
|
if (direction == Direction.NORTH) {
|
||||||
disX = 0.5F;
|
disX = 0.5F;
|
||||||
disXText = disX + textWidth;
|
disXText = disX + textWidth;
|
||||||
|
|
||||||
@@ -46,7 +50,7 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
disZText = disZ - spacing;
|
disZText = disZ - spacing;
|
||||||
|
|
||||||
rotZ = 1F;
|
rotZ = 1F;
|
||||||
} else if (tile.getDirection() == Direction.WEST) {
|
} else if (direction == Direction.WEST) {
|
||||||
disX = -spacing;
|
disX = -spacing;
|
||||||
disXText = disX - spacing;
|
disXText = disX - spacing;
|
||||||
|
|
||||||
@@ -55,7 +59,7 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
|
|
||||||
rotZ = 1F;
|
rotZ = 1F;
|
||||||
rotX = 1F;
|
rotX = 1F;
|
||||||
} else if (tile.getDirection() == Direction.SOUTH) {
|
} else if (direction == Direction.SOUTH) {
|
||||||
disX = 0.5F;
|
disX = 0.5F;
|
||||||
disXText = disX - textWidth;
|
disXText = disX - textWidth;
|
||||||
|
|
||||||
@@ -63,7 +67,7 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
disZText = disZ + spacing;
|
disZText = disZ + spacing;
|
||||||
|
|
||||||
rotX = 1F;
|
rotX = 1F;
|
||||||
} else if (tile.getDirection() == Direction.EAST) {
|
} else if (direction == Direction.EAST) {
|
||||||
disX = 1F + spacing;
|
disX = 1F + spacing;
|
||||||
disXText = disX + spacing;
|
disXText = disX + spacing;
|
||||||
|
|
||||||
@@ -72,7 +76,7 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
|
|
||||||
rotZ = 1F;
|
rotZ = 1F;
|
||||||
rotX = -1F;
|
rotX = -1F;
|
||||||
}*/
|
}
|
||||||
|
|
||||||
GlStateManager.pushMatrix();
|
GlStateManager.pushMatrix();
|
||||||
GlStateManager.translated(x + disX, y + disY, z + disZ);
|
GlStateManager.translated(x + disX, y + disY, z + disZ);
|
||||||
@@ -84,8 +88,8 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
GlStateManager.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
GlStateManager.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||||
GlStateManager.depthMask(true);
|
GlStateManager.depthMask(true);
|
||||||
GlStateManager.scalef(0.4F, -0.4F, -0.015F);
|
GlStateManager.scalef(0.4F, -0.4F, -0.015F);
|
||||||
// TODO Minecraft.getInstance().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
|
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE);
|
||||||
// TODO Minecraft.getInstance().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).setBlurMipmap(false, false);
|
Minecraft.getInstance().getTextureManager().getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).setBlurMipmap(false, false);
|
||||||
GlStateManager.enableRescaleNormal();
|
GlStateManager.enableRescaleNormal();
|
||||||
GlStateManager.enableAlphaTest();
|
GlStateManager.enableAlphaTest();
|
||||||
GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F);
|
GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F);
|
||||||
@@ -102,8 +106,8 @@ public class StorageMonitorTileEntityRenderer extends TileEntityRenderer<TileSto
|
|||||||
GlStateManager.disableAlphaTest();
|
GlStateManager.disableAlphaTest();
|
||||||
GlStateManager.disableRescaleNormal();
|
GlStateManager.disableRescaleNormal();
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
// TODO Minecraft.getInstance().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
|
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE);
|
||||||
// TODO Minecraft.getInstance().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
|
Minecraft.getInstance().getTextureManager().getTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();
|
||||||
GlStateManager.color4f(1F, 1F, 1F, 1F);
|
GlStateManager.color4f(1F, 1F, 1F, 1F);
|
||||||
|
|
||||||
@@ -3,18 +3,19 @@ package com.raoulvdberge.refinedstorage.screen;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.container.StorageMonitorContainer;
|
import com.raoulvdberge.refinedstorage.container.StorageMonitorContainer;
|
||||||
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton;
|
import com.raoulvdberge.refinedstorage.screen.widget.sidebutton.ExactModeSideButton;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
|
import com.raoulvdberge.refinedstorage.tile.StorageMonitorTile;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
|
||||||
public class GuiStorageMonitor extends BaseScreen<StorageMonitorContainer> {
|
public class StorageMonitorScreen extends BaseScreen<StorageMonitorContainer> {
|
||||||
public GuiStorageMonitor(StorageMonitorContainer container, PlayerInventory inventory) {
|
public StorageMonitorScreen(StorageMonitorContainer container, PlayerInventory inventory, ITextComponent title) {
|
||||||
super(container, 211, 137, inventory, null);
|
super(container, 211, 137, inventory, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPostInit(int x, int y) {
|
public void onPostInit(int x, int y) {
|
||||||
addSideButton(new ExactModeSideButton(this, TileStorageMonitor.COMPARE));
|
addSideButton(new ExactModeSideButton(this, StorageMonitorTile.COMPARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -30,7 +31,7 @@ public class GuiStorageMonitor extends BaseScreen<StorageMonitorContainer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderForeground(int mouseX, int mouseY) {
|
public void renderForeground(int mouseX, int mouseY) {
|
||||||
renderString(7, 7, I18n.format("gui.refinedstorage:storage_monitor"));
|
renderString(7, 7, title.getFormattedText());
|
||||||
renderString(7, 43, I18n.format("container.inventory"));
|
renderString(7, 43, I18n.format("container.inventory"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
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.NetworkNodeStorageMonitor;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.StorageMonitorNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -11,8 +11,8 @@ import net.minecraft.world.World;
|
|||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class TileStorageMonitor extends NetworkNodeTile<NetworkNodeStorageMonitor> {
|
public class StorageMonitorTile extends NetworkNodeTile<StorageMonitorNetworkNode> {
|
||||||
public static final TileDataParameter<Integer, TileStorageMonitor> COMPARE = IComparable.createParameter();
|
public static final TileDataParameter<Integer, StorageMonitorTile> COMPARE = IComparable.createParameter();
|
||||||
|
|
||||||
private static final String NBT_STACK = "Stack";
|
private static final String NBT_STACK = "Stack";
|
||||||
private static final String NBT_AMOUNT = "Amount";
|
private static final String NBT_AMOUNT = "Amount";
|
||||||
@@ -21,15 +21,15 @@ public class TileStorageMonitor extends NetworkNodeTile<NetworkNodeStorageMonito
|
|||||||
@Nullable
|
@Nullable
|
||||||
private ItemStack itemStack;
|
private ItemStack itemStack;
|
||||||
|
|
||||||
public TileStorageMonitor() {
|
public StorageMonitorTile() {
|
||||||
super(RSTiles.STORAGE_MONITOR);
|
super(RSTiles.STORAGE_MONITOR);
|
||||||
|
|
||||||
dataManager.addWatchedParameter(COMPARE);
|
dataManager.addWatchedParameter(COMPARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NetworkNodeStorageMonitor createNode(World world, BlockPos pos) {
|
public StorageMonitorNetworkNode createNode(World world, BlockPos pos) {
|
||||||
return new NetworkNodeStorageMonitor(world, pos);
|
return new StorageMonitorNetworkNode(world, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -7,6 +7,9 @@ import net.minecraft.inventory.ISidedInventory;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.RayTraceContext;
|
||||||
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.util.text.Style;
|
import net.minecraft.util.text.Style;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.util.text.TranslationTextComponent;
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
@@ -56,4 +59,14 @@ public final class WorldUtils {
|
|||||||
public static void sendNoPermissionMessage(PlayerEntity player) {
|
public static void sendNoPermissionMessage(PlayerEntity player) {
|
||||||
player.sendMessage(new TranslationTextComponent("misc.refinedstorage:security.no_permission").setStyle(new Style().setColor(TextFormatting.RED)));
|
player.sendMessage(new TranslationTextComponent("misc.refinedstorage:security.no_permission").setStyle(new Style().setColor(TextFormatting.RED)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RayTraceResult rayTracePlayer(World world, PlayerEntity player) {
|
||||||
|
double reachDistance = player.getAttribute(PlayerEntity.REACH_DISTANCE).getValue();
|
||||||
|
|
||||||
|
Vec3d base = player.getEyePosition(1.0F);
|
||||||
|
Vec3d look = player.getLookVec();
|
||||||
|
Vec3d target = base.add(look.x * reachDistance, look.y * reachDistance, look.z * reachDistance);
|
||||||
|
|
||||||
|
return world.rayTraceBlocks(new RayTraceContext(base, target, RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,40 +1,20 @@
|
|||||||
{
|
{
|
||||||
"forge_marker": 1,
|
|
||||||
"defaults": {
|
|
||||||
"model": "cube",
|
|
||||||
"textures": {
|
|
||||||
"particle": "refinedstorage:blocks/side",
|
|
||||||
"north": "refinedstorage:blocks/storage_monitor_front",
|
|
||||||
"east": "refinedstorage:blocks/storage_monitor_left",
|
|
||||||
"south": "refinedstorage:blocks/storage_monitor_back",
|
|
||||||
"west": "refinedstorage:blocks/storage_monitor_right",
|
|
||||||
"up": "refinedstorage:blocks/storage_monitor_top",
|
|
||||||
"down": "refinedstorage:blocks/bottom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variants": {
|
"variants": {
|
||||||
"connected": {
|
"direction=north": {
|
||||||
"true": {
|
"model": "refinedstorage:block/storage_monitor",
|
||||||
"textures": {
|
"y": 0
|
||||||
"north": "refinedstorage:blocks/storage_monitor_front"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"false": {
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"direction": {
|
"direction=east": {
|
||||||
"north": {
|
"model": "refinedstorage:block/storage_monitor",
|
||||||
"y": 0
|
"y": 90
|
||||||
},
|
},
|
||||||
"east": {
|
"direction=south": {
|
||||||
"y": 90
|
"model": "refinedstorage:block/storage_monitor",
|
||||||
},
|
"y": 180
|
||||||
"south": {
|
},
|
||||||
"y": 180
|
"direction=west": {
|
||||||
},
|
"model": "refinedstorage:block/storage_monitor",
|
||||||
"west": {
|
"y": 270
|
||||||
"y": 270
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
"gui.refinedstorage.security_manager.permission.4.tooltip": "Adding or removing devices to or from the network",
|
"gui.refinedstorage.security_manager.permission.4.tooltip": "Adding or removing devices to or from the network",
|
||||||
"gui.refinedstorage.security_manager.permission.5": "Security",
|
"gui.refinedstorage.security_manager.permission.5": "Security",
|
||||||
"gui.refinedstorage.security_manager.permission.5.tooltip": "Ability to change security options",
|
"gui.refinedstorage.security_manager.permission.5.tooltip": "Ability to change security options",
|
||||||
"gui.refinedstorage:storage_monitor": "Storage Monitor",
|
"gui.refinedstorage.storage_monitor": "Storage Monitor",
|
||||||
"gui.refinedstorage:crafter_manager": "Crafter Manager",
|
"gui.refinedstorage:crafter_manager": "Crafter Manager",
|
||||||
"misc.refinedstorage.energy_stored": "%d / %d FE",
|
"misc.refinedstorage.energy_stored": "%d / %d FE",
|
||||||
"misc.refinedstorage.energy_usage": "Usage: %d FE/t",
|
"misc.refinedstorage.energy_usage": "Usage: %d FE/t",
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
"block.refinedstorage.creative_fluid_storage_block": "Creative Fluid Storage Block",
|
"block.refinedstorage.creative_fluid_storage_block": "Creative Fluid Storage Block",
|
||||||
"block.refinedstorage.security_manager": "Security Manager",
|
"block.refinedstorage.security_manager": "Security Manager",
|
||||||
"block.refinedstorage.quartz_enriched_iron_block": "Block of Quartz Enriched Iron",
|
"block.refinedstorage.quartz_enriched_iron_block": "Block of Quartz Enriched Iron",
|
||||||
"block.refinedstorage:storage_monitor": "Storage Monitor",
|
"block.refinedstorage.storage_monitor": "Storage Monitor",
|
||||||
"block.refinedstorage:portable_grid.0": "Portable Grid",
|
"block.refinedstorage:portable_grid.0": "Portable Grid",
|
||||||
"block.refinedstorage:portable_grid.1": "Creative Portable Grid",
|
"block.refinedstorage:portable_grid.1": "Creative Portable Grid",
|
||||||
"block.refinedstorage:portable_grid.tooltip": "Sneak to place in the world.",
|
"block.refinedstorage:portable_grid.tooltip": "Sneak to place in the world.",
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube",
|
||||||
|
"textures": {
|
||||||
|
"particle": "refinedstorage:block/side",
|
||||||
|
"north": "refinedstorage:block/storage_monitor_front",
|
||||||
|
"east": "refinedstorage:block/storage_monitor_left",
|
||||||
|
"south": "refinedstorage:block/storage_monitor_back",
|
||||||
|
"west": "refinedstorage:block/storage_monitor_right",
|
||||||
|
"up": "refinedstorage:block/storage_monitor_top",
|
||||||
|
"down": "refinedstorage:block/bottom"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "refinedstorage:block/storage_monitor"
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "refinedstorage:storage_monitor"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:survives_explosion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -7,14 +7,13 @@
|
|||||||
],
|
],
|
||||||
"key": {
|
"key": {
|
||||||
"P": {
|
"P": {
|
||||||
"item": "#basic_processor"
|
"item": "refinedstorage:basic_processor"
|
||||||
},
|
},
|
||||||
"C": {
|
"C": {
|
||||||
"item": "#construction_core"
|
"item": "refinedstorage:construction_core"
|
||||||
},
|
},
|
||||||
"G": {
|
"G": {
|
||||||
"type": "forge:ore_dict",
|
"tag": "forge:glass"
|
||||||
"ore": "blockGlass"
|
|
||||||
},
|
},
|
||||||
"E": {
|
"E": {
|
||||||
"item": "refinedstorage:quartz_enriched_iron"
|
"item": "refinedstorage:quartz_enriched_iron"
|
||||||
@@ -23,7 +22,7 @@
|
|||||||
"item": "refinedstorage:machine_casing"
|
"item": "refinedstorage:machine_casing"
|
||||||
},
|
},
|
||||||
"D": {
|
"D": {
|
||||||
"item": "#destruction_core"
|
"item": "refinedstorage:destruction_core"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
Reference in New Issue
Block a user