Add writer block
This commit is contained in:
@@ -28,4 +28,5 @@ public final class RSBlocks {
|
||||
public static final BlockFluidStorage FLUID_STORAGE = new BlockFluidStorage();
|
||||
public static final BlockDiskManipulator DISK_MANIPULATOR = new BlockDiskManipulator();
|
||||
public static final BlockReader READER = new BlockReader();
|
||||
public static final BlockWriter WRITER = new BlockWriter();
|
||||
}
|
||||
40
src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java
Executable file
40
src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java
Executable file
@@ -0,0 +1,40 @@
|
||||
package com.raoulvdberge.refinedstorage.block;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSGui;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileWriter;
|
||||
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;
|
||||
|
||||
public class BlockWriter extends BlockNode {
|
||||
public BlockWriter() {
|
||||
super("writer");
|
||||
}
|
||||
|
||||
@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(RS.INSTANCE, RSGui.READER_WRITER, world, pos.getX(), pos.getY(), pos.getZ());
|
||||
|
||||
((TileWriter) world.getTileEntity(pos)).onOpened(player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createTileEntity(World world, IBlockState state) {
|
||||
return new TileWriter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPlacementType getPlacementType() {
|
||||
return EnumPlacementType.ANY;
|
||||
}
|
||||
}
|
||||
@@ -132,6 +132,7 @@ public class ProxyCommon {
|
||||
registerTile(TileFluidStorage.class, "fluid_storage");
|
||||
registerTile(TileDiskManipulator.class, "disk_manipulator");
|
||||
registerTile(TileReader.class, "reader");
|
||||
registerTile(TileWriter.class, "writer");
|
||||
|
||||
registerBlock(RSBlocks.CONTROLLER);
|
||||
registerBlock(RSBlocks.GRID);
|
||||
@@ -158,6 +159,7 @@ public class ProxyCommon {
|
||||
registerBlock(RSBlocks.NETWORK_RECEIVER);
|
||||
registerBlock(RSBlocks.DISK_MANIPULATOR);
|
||||
registerBlock(RSBlocks.READER);
|
||||
registerBlock(RSBlocks.WRITER);
|
||||
|
||||
registerItem(RSItems.QUARTZ_ENRICHED_IRON);
|
||||
registerItem(RSItems.STORAGE_DISK);
|
||||
|
||||
86
src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java
Executable file
86
src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java
Executable file
@@ -0,0 +1,86 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
||||
public class TileWriter extends TileNode implements IWriter, IReaderWriter {
|
||||
private int redstoneStrength;
|
||||
private int lastRedstoneStrength;
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return 0; // @TODO
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
|
||||
if (!worldObj.isRemote && redstoneStrength != lastRedstoneStrength) {
|
||||
lastRedstoneStrength = redstoneStrength;
|
||||
|
||||
worldObj.notifyNeighborsOfStateChange(pos, RSBlocks.WRITER);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNode() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRedstoneStrength() {
|
||||
return connected ? redstoneStrength : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRedstoneStrength(int strength) {
|
||||
redstoneStrength = strength;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasStackUpgrade() {
|
||||
return false; // @TODO
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "gui.refinedstorage:writer";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdd(String name) {
|
||||
if (network != null && !name.isEmpty()) {
|
||||
network.addReaderWriterChannel(name);
|
||||
|
||||
network.sendReaderWriterChannelUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(String name) {
|
||||
if (network != null && !name.isEmpty()) {
|
||||
network.removeReaderWriterChannel(name);
|
||||
|
||||
network.sendReaderWriterChannelUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getNetworkPosition() {
|
||||
return network != null ? network.getPosition() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectivityState() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onOpened(EntityPlayer entity) {
|
||||
if (isConnected()) {
|
||||
network.sendReaderWriterChannelUpdate((EntityPlayerMP) entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,6 +53,7 @@ gui.refinedstorage:crafting_preview.circular=Circular dependency!
|
||||
gui.refinedstorage:crafting_preview.loop=Loop in processing...
|
||||
gui.refinedstorage:crafting_preview.force_start=Press CTRL + SHIFT to start anyway
|
||||
gui.refinedstorage:reader=Reader
|
||||
gui.refinedstorage:writer=Writer
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RS
|
||||
misc.refinedstorage:energy_usage=Usage: %d RS/t
|
||||
@@ -181,6 +182,7 @@ block.refinedstorage:fluid_storage.2.name=256k Fluid Storage Block
|
||||
block.refinedstorage:fluid_storage.3.name=512k Fluid Storage Block
|
||||
block.refinedstorage:fluid_storage.4.name=Creative Fluid Storage Block
|
||||
block.refinedstorage:reader.name=Reader
|
||||
block.refinedstorage:writer.name=Writer
|
||||
|
||||
item.refinedstorage:storage_disk.0.name=1k Storage Disk
|
||||
item.refinedstorage:storage_disk.1.name=4k Storage Disk
|
||||
|
||||
Reference in New Issue
Block a user