Crafting monitor WIP

This commit is contained in:
Raoul Van den Berge
2016-04-10 20:23:54 +02:00
parent 9b52409e67
commit b3180e8e7b
10 changed files with 130 additions and 0 deletions

View File

@@ -18,4 +18,5 @@ public final class RefinedStorageBlocks {
public static final BlockStorage STORAGE = new BlockStorage(); public static final BlockStorage STORAGE = new BlockStorage();
public static final BlockRelay RELAY = new BlockRelay(); public static final BlockRelay RELAY = new BlockRelay();
public static final BlockInterface INTERFACE = new BlockInterface(); public static final BlockInterface INTERFACE = new BlockInterface();
public static final BlockCraftingMonitor CRAFTING_MONITOR = new BlockCraftingMonitor();
} }

View File

@@ -14,4 +14,5 @@ public final class RefinedStorageGui {
public static final int RELAY = 12; public static final int RELAY = 12;
public static final int INTERFACE = 13; public static final int INTERFACE = 13;
public static final int WIRELESS_GRID = 14; public static final int WIRELESS_GRID = 14;
public static final int CRAFTING_MONITOR = 15;
} }

View File

@@ -0,0 +1,33 @@
package refinedstorage.block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
public class BlockCraftingMonitor extends BlockMachine {
public BlockCraftingMonitor() {
super("crafting_monitor");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileCraftingMonitor();
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) {
if (!world.isRemote) {
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.CRAFTING_MONITOR, world, pos.getX(), pos.getY(), pos.getZ());
}
return true;
}
}

View File

@@ -0,0 +1,11 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
public class ContainerCraftingMonitor extends ContainerBase {
public ContainerCraftingMonitor(EntityPlayer player) {
super(player);
addPlayerInventory(8, 99);
}
}

View File

@@ -0,0 +1,51 @@
package refinedstorage.gui;
import refinedstorage.container.ContainerCraftingMonitor;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
public class GuiCraftingMonitor extends GuiBase {
public static final int VISIBLE_ROWS = 2;
private TileCraftingMonitor craftingMonitor;
private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59);
public GuiCraftingMonitor(ContainerCraftingMonitor container, TileCraftingMonitor craftingMonitor) {
super(container, 176, 181);
this.craftingMonitor = craftingMonitor;
}
@Override
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(craftingMonitor));
}
@Override
public void update(int x, int y) {
scrollbar.setCanScroll(getRows() > VISIBLE_ROWS);
scrollbar.setScrollDelta((float) scrollbar.getScrollbarHeight() / (float) getRows());
}
@Override
public void drawBackground(int x, int y, int mouseX, int mouseY) {
bindTexture("gui/crafting_monitor.png");
drawTexture(x, y, 0, 0, width, height);
scrollbar.draw(this);
}
@Override
public void drawForeground(int mouseX, int mouseY) {
scrollbar.update(this, mouseX, mouseY);
drawString(7, 7, t("gui.refinedstorage:crafting_monitor"));
drawString(7, 87, t("container.inventory"));
}
private int getRows() {
return 0;
}
}

View File

@@ -10,6 +10,7 @@ import refinedstorage.RefinedStorageGui;
import refinedstorage.container.*; import refinedstorage.container.*;
import refinedstorage.storage.IStorageGui; import refinedstorage.storage.IStorageGui;
import refinedstorage.tile.*; import refinedstorage.tile.*;
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.TileGrid;
import refinedstorage.tile.grid.WirelessGrid; import refinedstorage.tile.grid.WirelessGrid;
import refinedstorage.util.HandUtils; import refinedstorage.util.HandUtils;
@@ -41,6 +42,8 @@ public class GuiHandler implements IGuiHandler {
return new ContainerRelay(player); return new ContainerRelay(player);
case RefinedStorageGui.INTERFACE: case RefinedStorageGui.INTERFACE:
return new ContainerInterface(player, (TileInterface) tile); return new ContainerInterface(player, (TileInterface) tile);
case RefinedStorageGui.CRAFTING_MONITOR:
return new ContainerCraftingMonitor(player);
default: default:
return null; return null;
} }
@@ -102,6 +105,8 @@ public class GuiHandler implements IGuiHandler {
return new GuiRelay((ContainerRelay) getContainer(ID, player, tile), (TileRelay) tile); return new GuiRelay((ContainerRelay) getContainer(ID, player, tile), (TileRelay) tile);
case RefinedStorageGui.INTERFACE: case RefinedStorageGui.INTERFACE:
return new GuiInterface((ContainerInterface) getContainer(ID, player, tile), (TileInterface) tile); return new GuiInterface((ContainerInterface) getContainer(ID, player, tile), (TileInterface) tile);
case RefinedStorageGui.CRAFTING_MONITOR:
return new GuiCraftingMonitor((ContainerCraftingMonitor) getContainer(ID, player, tile), (TileCraftingMonitor) tile);
default: default:
return null; return null;
} }

View File

@@ -23,6 +23,7 @@ import refinedstorage.item.*;
import refinedstorage.network.*; import refinedstorage.network.*;
import refinedstorage.storage.NBTStorage; import refinedstorage.storage.NBTStorage;
import refinedstorage.tile.*; import refinedstorage.tile.*;
import refinedstorage.tile.autocrafting.TileCraftingMonitor;
import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.TileGrid;
import refinedstorage.tile.solderer.*; import refinedstorage.tile.solderer.*;
@@ -65,6 +66,7 @@ public class CommonProxy {
GameRegistry.registerTileEntity(TileStorage.class, ID + ":storage"); GameRegistry.registerTileEntity(TileStorage.class, ID + ":storage");
GameRegistry.registerTileEntity(TileRelay.class, ID + ":relay"); GameRegistry.registerTileEntity(TileRelay.class, ID + ":relay");
GameRegistry.registerTileEntity(TileInterface.class, ID + ":interface"); GameRegistry.registerTileEntity(TileInterface.class, ID + ":interface");
GameRegistry.registerTileEntity(TileCraftingMonitor.class, ID + ":crafting_monitor");
registerBlock(RefinedStorageBlocks.CONTROLLER); registerBlock(RefinedStorageBlocks.CONTROLLER);
registerBlock(RefinedStorageBlocks.CABLE); registerBlock(RefinedStorageBlocks.CABLE);
@@ -81,6 +83,7 @@ public class CommonProxy {
registerBlock(RefinedStorageBlocks.STORAGE); registerBlock(RefinedStorageBlocks.STORAGE);
registerBlock(RefinedStorageBlocks.RELAY); registerBlock(RefinedStorageBlocks.RELAY);
registerBlock(RefinedStorageBlocks.INTERFACE); registerBlock(RefinedStorageBlocks.INTERFACE);
registerBlock(RefinedStorageBlocks.CRAFTING_MONITOR);
registerItem(RefinedStorageItems.STORAGE_DISK); registerItem(RefinedStorageItems.STORAGE_DISK);
registerItem(RefinedStorageItems.WIRELESS_GRID); registerItem(RefinedStorageItems.WIRELESS_GRID);

View File

@@ -0,0 +1,21 @@
package refinedstorage.tile.autocrafting;
import net.minecraft.inventory.Container;
import refinedstorage.container.ContainerCraftingMonitor;
import refinedstorage.tile.TileMachine;
public class TileCraftingMonitor extends TileMachine {
@Override
public int getEnergyUsage() {
return 2;
}
@Override
public void updateMachine() {
}
@Override
public Class<? extends Container> getContainer() {
return ContainerCraftingMonitor.class;
}
}

View File

@@ -20,6 +20,7 @@ gui.refinedstorage:relay=Relay
gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.import=Interface Import
gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.export=Interface Export
gui.refinedstorage:interface.patterns=Patterns gui.refinedstorage:interface.patterns=Patterns
gui.refinedstorage:crafting_monitor=Crafting Monitor
misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_stored=%d / %d RF
misc.refinedstorage:energy_usage=Usage: %d RF/t misc.refinedstorage:energy_usage=Usage: %d RF/t
@@ -91,6 +92,7 @@ block.refinedstorage:storage.3.name=64k Storage Block
block.refinedstorage:storage.4.name=Creative Storage Block block.refinedstorage:storage.4.name=Creative Storage Block
block.refinedstorage:relay.name=Relay block.refinedstorage:relay.name=Relay
block.refinedstorage:interface.name=Interface block.refinedstorage:interface.name=Interface
block.refinedstorage:crafting_monitor.name=Crafting Monitor
item.refinedstorage:storage_disk.0.name=1k Storage Disk item.refinedstorage:storage_disk.0.name=1k Storage Disk
item.refinedstorage:storage_disk.1.name=4k Storage Disk item.refinedstorage:storage_disk.1.name=4k Storage Disk

View File

@@ -20,6 +20,7 @@ gui.refinedstorage:relay=Relais
gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.import=Interface Import
gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:interface.export=Interface Export
gui.refinedstorage:interface.patterns=Patronen gui.refinedstorage:interface.patterns=Patronen
gui.refinedstorage:crafting_monitor=Crafting Monitor
misc.refinedstorage:energy_stored=%d / %d RF misc.refinedstorage:energy_stored=%d / %d RF
misc.refinedstorage:energy_usage=Vebruik: %d RF/t misc.refinedstorage:energy_usage=Vebruik: %d RF/t
@@ -91,6 +92,7 @@ block.refinedstorage:storage.3.name=64k Opslag Blok
block.refinedstorage:storage.4.name=Creative Opslag Blok block.refinedstorage:storage.4.name=Creative Opslag Blok
block.refinedstorage:relay.name=Relais block.refinedstorage:relay.name=Relais
block.refinedstorage:interface.name=Interface block.refinedstorage:interface.name=Interface
block.refinedstorage:crafting_monitor.name=Crafting Monitor
item.refinedstorage:storage_disk.0.name=1k Opslagschijf item.refinedstorage:storage_disk.0.name=1k Opslagschijf
item.refinedstorage:storage_disk.1.name=4k Opslagschijf item.refinedstorage:storage_disk.1.name=4k Opslagschijf