Merge pull request #1 from raoulvdberge/mc1.9

Update to master
This commit is contained in:
GustoniaEagle
2016-03-29 15:23:58 +01:00
296 changed files with 8837 additions and 10046 deletions

1
.gitignore vendored Normal file → Executable file
View File

@@ -13,3 +13,4 @@ run/
*.ipr *.ipr
*.iws *.iws
.idea/ .idea/
out/

50
CHANGELOG.md Executable file
View File

@@ -0,0 +1,50 @@
# Refined Storage Changelog
### 0.5
**Bugfixes**
- Fixed clicking sound in Grid
- Fixed a bunch of crashes
- Fixed exporter not exporting is some cases
- Fixed importer not importing in some cases
- Fixed controller drawing RF every 20 ticks instead of every tick
- Fixed not being able to shift click from Crafting Grid crafting slots
- Fixed new items inserted after crafting in Grid being laggy
- Fixed flickering of items in Grid
- Fixed getting a stack of unstackable stuff from Grid
- Check if the Constructor can actually place said block in the world
**Features**
- New textures
- Updated to the latest Forge and JEI
- Renamed Drives to Disk Drives
- Renamed Storage Cells to Storage Disks
- Drives have a better interface and there are now blacklist and whitelist filters for the Storage Disks in it too.
- Destructors have the ability to whitelist and blacklist certain items now
- Shift clicking stuff in the Interface
- Scrollbar in Grid and Crafting Grid
- Made the normal Grid 1 row larger
- Display of connected machines in the Controller GUI
- Deep Storage Unit integration (with this several barrel mods are now supported too!)
- Machines don't need to be connected with cables anymore, they can be next to each other too
- Made the amount text in the Grid for items smaller
- Nice formatting for items >= 1K (pressing shift while hovering over an item will still display the real item count)
- When placing Importer, Exporter or External Storage with SHIFT, it will have the opposite direction. This is for easy placement behind other blocks (furnaces for example)
### 0.4.1
**Bugfixes**
- Fix ID duplication issues
### 0.4
**Bugfixes**
- Cables now have actual collision
- Fullness percentage in Creative Storage Blocks going under 0%
- The Controller shouldn't display the base usage when not working
- Fix Minecraft reporting that retrieving Grid type fails
- Check isItemValidForSlot on trying to push to inventories
**Features**
- Relays
- Interfaces
### 0.3
- Initial release

2
LICENSE.md Normal file → Executable file
View File

@@ -1,6 +1,6 @@
# The MIT License (MIT) # The MIT License (MIT)
Copyright © 2015 - 2016 Raoul Van den Berge Copyright © 2015 - 2016 Refined Storage contributors
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation obtaining a copy of this software and associated documentation

8
README.md Normal file → Executable file
View File

@@ -2,4 +2,10 @@
A Minecraft mod all about storage. A Minecraft mod all about storage.
[Check this project out on CurseForge](http://minecraft.curseforge.com/projects/refined-storage). This project is available on [CurseForge](http://minecraft.curseforge.com/projects/refined-storage).
## What are you interested in?
- [How this mod works and how to use it](https://github.com/raoulvdberge/refinedstorage/wiki)
- [Reporting a bug](https://github.com/raoulvdberge/refinedstorage/issues)
- [Sending a feature request](https://github.com/raoulvdberge/refinedstorage/issues)

4
build.gradle Normal file → Executable file
View File

@@ -17,7 +17,7 @@ group = "refinedstorage"
archivesBaseName = "refinedstorage" archivesBaseName = "refinedstorage"
minecraft { minecraft {
version = "1.9-12.16.0.1770-1.9" version = "1.9-12.16.0.1811-1.9"
runDir = "run" runDir = "run"
useDepAts = true useDepAts = true
mappings = "snapshot_20160312" mappings = "snapshot_20160312"
@@ -30,7 +30,7 @@ repositories {
} }
dependencies { dependencies {
deobfCompile "mezz.jei:jei_1.9:3.0.+" deobfCompile "mezz.jei:jei_1.9:3.1.+"
} }
processResources { processResources {

0
gradlew vendored Normal file → Executable file
View File

0
gradlew.bat vendored Normal file → Executable file
View File

BIN
logo.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

0
screenshots/crafting_grid.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

0
screenshots/interface.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

0
screenshots/overview.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 558 KiB

After

Width:  |  Height:  |  Size: 558 KiB

0
screenshots/relays.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

0
screenshots/storage_block.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

0
src/main/java/cofh/api/CoFHAPIProps.java Normal file → Executable file
View File

1
src/main/java/cofh/api/energy/EnergyStorage.java Normal file → Executable file
View File

@@ -6,7 +6,6 @@ import net.minecraft.nbt.NBTTagCompound;
* Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own. * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public class EnergyStorage implements IEnergyStorage { public class EnergyStorage implements IEnergyStorage {

1
src/main/java/cofh/api/energy/IEnergyConnection.java Normal file → Executable file
View File

@@ -10,7 +10,6 @@ import net.minecraft.util.EnumFacing;
* Note that {@link IEnergyHandler} is an extension of this. * Note that {@link IEnergyHandler} is an extension of this.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyConnection { public interface IEnergyConnection {

19
src/main/java/cofh/api/energy/IEnergyContainerItem.java Normal file → Executable file
View File

@@ -8,19 +8,15 @@ import net.minecraft.item.ItemStack;
* A reference implementation is provided {@link ItemEnergyContainer}. * A reference implementation is provided {@link ItemEnergyContainer}.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyContainerItem { public interface IEnergyContainerItem {
/** /**
* Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged.
* *
* @param container * @param container ItemStack to be charged.
* ItemStack to be charged. * @param maxReceive Maximum amount of energy to be sent into the item.
* @param maxReceive * @param simulate If TRUE, the charge will only be simulated.
* Maximum amount of energy to be sent into the item.
* @param simulate
* If TRUE, the charge will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) received by the item. * @return Amount of energy that was (or would have been, if simulated) received by the item.
*/ */
int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); int receiveEnergy(ItemStack container, int maxReceive, boolean simulate);
@@ -29,12 +25,9 @@ public interface IEnergyContainerItem {
* Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally
* discharged. * discharged.
* *
* @param container * @param container ItemStack to be discharged.
* ItemStack to be discharged. * @param maxExtract Maximum amount of energy to be extracted from the item.
* @param maxExtract * @param simulate If TRUE, the discharge will only be simulated.
* Maximum amount of energy to be extracted from the item.
* @param simulate
* If TRUE, the discharge will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) extracted from the item. * @return Amount of energy that was (or would have been, if simulated) extracted from the item.
*/ */
int extractEnergy(ItemStack container, int maxExtract, boolean simulate); int extractEnergy(ItemStack container, int maxExtract, boolean simulate);

1
src/main/java/cofh/api/energy/IEnergyHandler.java Normal file → Executable file
View File

@@ -10,7 +10,6 @@ import net.minecraft.util.EnumFacing;
* Note that {@link IEnergyReceiver} and {@link IEnergyProvider} are extensions of this. * Note that {@link IEnergyReceiver} and {@link IEnergyProvider} are extensions of this.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyHandler extends IEnergyConnection { public interface IEnergyHandler extends IEnergyConnection {

10
src/main/java/cofh/api/energy/IEnergyProvider.java Normal file → Executable file
View File

@@ -9,19 +9,15 @@ import net.minecraft.util.EnumFacing;
* A reference implementation is provided {@link TileEnergyHandler}. * A reference implementation is provided {@link TileEnergyHandler}.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyProvider extends IEnergyHandler { public interface IEnergyProvider extends IEnergyHandler {
/** /**
* Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider.
* *
* @param from * @param from Orientation the energy is extracted from.
* Orientation the energy is extracted from. * @param maxExtract Maximum amount of energy to extract.
* @param maxExtract * @param simulate If TRUE, the extraction will only be simulated.
* Maximum amount of energy to extract.
* @param simulate
* If TRUE, the extraction will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) extracted. * @return Amount of energy that was (or would have been, if simulated) extracted.
*/ */
int extractEnergy(EnumFacing from, int maxExtract, boolean simulate); int extractEnergy(EnumFacing from, int maxExtract, boolean simulate);

10
src/main/java/cofh/api/energy/IEnergyReceiver.java Normal file → Executable file
View File

@@ -9,19 +9,15 @@ import net.minecraft.util.EnumFacing;
* A reference implementation is provided {@link TileEnergyHandler}. * A reference implementation is provided {@link TileEnergyHandler}.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyReceiver extends IEnergyHandler { public interface IEnergyReceiver extends IEnergyHandler {
/** /**
* Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
* *
* @param from * @param from Orientation the energy is received from.
* Orientation the energy is received from. * @param maxReceive Maximum amount of energy to receive.
* @param maxReceive * @param simulate If TRUE, the charge will only be simulated.
* Maximum amount of energy to receive.
* @param simulate
* If TRUE, the charge will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) received. * @return Amount of energy that was (or would have been, if simulated) received.
*/ */
int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate); int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate);

13
src/main/java/cofh/api/energy/IEnergyStorage.java Normal file → Executable file
View File

@@ -7,17 +7,14 @@ package cofh.api.energy;
* A reference implementation can be found at {@link EnergyStorage}. * A reference implementation can be found at {@link EnergyStorage}.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public interface IEnergyStorage { public interface IEnergyStorage {
/** /**
* Adds energy to the storage. Returns quantity of energy that was accepted. * Adds energy to the storage. Returns quantity of energy that was accepted.
* *
* @param maxReceive * @param maxReceive Maximum amount of energy to be inserted.
* Maximum amount of energy to be inserted. * @param simulate If TRUE, the insertion will only be simulated.
* @param simulate
* If TRUE, the insertion will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) accepted by the storage. * @return Amount of energy that was (or would have been, if simulated) accepted by the storage.
*/ */
int receiveEnergy(int maxReceive, boolean simulate); int receiveEnergy(int maxReceive, boolean simulate);
@@ -25,10 +22,8 @@ public interface IEnergyStorage {
/** /**
* Removes energy from the storage. Returns quantity of energy that was removed. * Removes energy from the storage. Returns quantity of energy that was removed.
* *
* @param maxExtract * @param maxExtract Maximum amount of energy to be extracted.
* Maximum amount of energy to be extracted. * @param simulate If TRUE, the extraction will only be simulated.
* @param simulate
* If TRUE, the extraction will only be simulated.
* @return Amount of energy that was (or would have been, if simulated) extracted from the storage. * @return Amount of energy that was (or would have been, if simulated) extracted from the storage.
*/ */
int extractEnergy(int maxExtract, boolean simulate); int extractEnergy(int maxExtract, boolean simulate);

1
src/main/java/cofh/api/energy/ItemEnergyContainer.java Normal file → Executable file
View File

@@ -8,7 +8,6 @@ import net.minecraft.nbt.NBTTagCompound;
* Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own. * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public class ItemEnergyContainer extends Item implements IEnergyContainerItem { public class ItemEnergyContainer extends Item implements IEnergyContainerItem {

3
src/main/java/cofh/api/energy/TileEnergyHandler.java Normal file → Executable file
View File

@@ -6,11 +6,10 @@ import net.minecraft.util.EnumFacing;
/** /**
* Reference implementation of {@link IEnergyReceiver} and {@link IEnergyProvider}. Use/extend this or implement your own. * Reference implementation of {@link IEnergyReceiver} and {@link IEnergyProvider}. Use/extend this or implement your own.
* * <p>
* This class is really meant to summarize how each interface is properly used. * This class is really meant to summarize how each interface is properly used.
* *
* @author King Lemming * @author King Lemming
*
*/ */
public class TileEnergyHandler extends TileEntity implements IEnergyReceiver, IEnergyProvider { public class TileEnergyHandler extends TileEntity implements IEnergyReceiver, IEnergyProvider {

2
src/main/java/cofh/api/energy/package-info.java Normal file → Executable file
View File

@@ -5,6 +5,6 @@
@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy") @API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy")
package cofh.api.energy; package cofh.api.energy;
import net.minecraftforge.fml.common.API;
import cofh.api.CoFHAPIProps; import cofh.api.CoFHAPIProps;
import net.minecraftforge.fml.common.API;

0
src/main/java/cofh/api/package-info.java Normal file → Executable file
View File

View File

@@ -0,0 +1,25 @@
package powercrystals.minefactoryreloaded.api;
import net.minecraft.item.ItemStack;
public interface IDeepStorageUnit {
/**
* @return A populated ItemStack with stackSize for the full amount of materials in the DSU. May have a stackSize > getMaxStackSize().
*/
ItemStack getStoredItemType();
/**
* Sets the total amount of the item currently being stored, or zero if it wants to remove all items.
*/
void setStoredItemCount(int amount);
/**
* Sets the type of the stored item and initializes the number of stored items to amount. Will overwrite any existing stored items.
*/
void setStoredItemType(ItemStack type, int amount);
/**
* @return The maximum number of items the DSU can hold.
*/
int getMaxStoredCount();
}

25
src/main/java/refinedstorage/RefinedStorage.java Normal file → Executable file
View File

@@ -12,28 +12,24 @@ import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import refinedstorage.item.ItemStorageCell; import refinedstorage.item.ItemStorageDisk;
import refinedstorage.proxy.CommonProxy; import refinedstorage.proxy.CommonProxy;
@Mod(modid = RefinedStorage.ID, version = RefinedStorage.VERSION) @Mod(modid = RefinedStorage.ID, version = RefinedStorage.VERSION)
public final class RefinedStorage public final class RefinedStorage {
{
public static final String ID = "refinedstorage"; public static final String ID = "refinedstorage";
public static final String VERSION = "0.5"; public static final String VERSION = "0.5";
public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel(ID); public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel(ID);
public static final CreativeTabs TAB = new CreativeTabs(ID) public static final CreativeTabs TAB = new CreativeTabs(ID) {
{
@Override @Override
public ItemStack getIconItemStack() public ItemStack getIconItemStack() {
{ return new ItemStack(RefinedStorageItems.STORAGE_DISK, 1, ItemStorageDisk.TYPE_1K);
return new ItemStack(RefinedStorageItems.STORAGE_CELL, 1, ItemStorageCell.TYPE_1K);
} }
@Override @Override
public Item getTabIconItem() public Item getTabIconItem() {
{
return null; return null;
} }
}; };
@@ -45,20 +41,17 @@ public final class RefinedStorage
public static RefinedStorage INSTANCE; public static RefinedStorage INSTANCE;
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent e) public void preInit(FMLPreInitializationEvent e) {
{
PROXY.preInit(e); PROXY.preInit(e);
} }
@EventHandler @EventHandler
public void init(FMLInitializationEvent e) public void init(FMLInitializationEvent e) {
{
PROXY.init(e); PROXY.init(e);
} }
@EventHandler @EventHandler
public void postInit(FMLPostInitializationEvent e) public void postInit(FMLPostInitializationEvent e) {
{
PROXY.postInit(e); PROXY.postInit(e);
} }
} }

6
src/main/java/refinedstorage/RefinedStorageBlocks.java Normal file → Executable file
View File

@@ -2,19 +2,17 @@ package refinedstorage;
import refinedstorage.block.*; import refinedstorage.block.*;
public final class RefinedStorageBlocks public final class RefinedStorageBlocks {
{
public static final BlockController CONTROLLER = new BlockController(); public static final BlockController CONTROLLER = new BlockController();
public static final BlockCable CABLE = new BlockCable(); public static final BlockCable CABLE = new BlockCable();
public static final BlockGrid GRID = new BlockGrid(); public static final BlockGrid GRID = new BlockGrid();
public static final BlockDrive DRIVE = new BlockDrive(); public static final BlockDiskDrive DISK_DRIVE = new BlockDiskDrive();
public static final BlockExternalStorage EXTERNAL_STORAGE = new BlockExternalStorage(); public static final BlockExternalStorage EXTERNAL_STORAGE = new BlockExternalStorage();
public static final BlockImporter IMPORTER = new BlockImporter(); public static final BlockImporter IMPORTER = new BlockImporter();
public static final BlockExporter EXPORTER = new BlockExporter(); public static final BlockExporter EXPORTER = new BlockExporter();
public static final BlockDetector DETECTOR = new BlockDetector(); public static final BlockDetector DETECTOR = new BlockDetector();
public static final BlockMachineCasing MACHINE_CASING = new BlockMachineCasing(); public static final BlockMachineCasing MACHINE_CASING = new BlockMachineCasing();
public static final BlockSolderer SOLDERER = new BlockSolderer(); public static final BlockSolderer SOLDERER = new BlockSolderer();
public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter();
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 BlockStorage STORAGE = new BlockStorage(); public static final BlockStorage STORAGE = new BlockStorage();

6
src/main/java/refinedstorage/RefinedStorageGui.java Normal file → Executable file
View File

@@ -1,15 +1,13 @@
package refinedstorage; package refinedstorage;
public final class RefinedStorageGui public final class RefinedStorageGui {
{
public static final int CONTROLLER = 0; public static final int CONTROLLER = 0;
public static final int GRID = 1; public static final int GRID = 1;
public static final int DRIVE = 2; public static final int DISK_DRIVE = 2;
public static final int IMPORTER = 4; public static final int IMPORTER = 4;
public static final int EXPORTER = 5; public static final int EXPORTER = 5;
public static final int DETECTOR = 6; public static final int DETECTOR = 6;
public static final int SOLDERER = 7; public static final int SOLDERER = 7;
public static final int WIRELESS_TRANSMITTER = 8;
public static final int DESTRUCTOR = 9; public static final int DESTRUCTOR = 9;
public static final int CONSTRUCTOR = 10; public static final int CONSTRUCTOR = 10;
public static final int STORAGE = 11; public static final int STORAGE = 11;

6
src/main/java/refinedstorage/RefinedStorageItems.java Normal file → Executable file
View File

@@ -2,11 +2,9 @@ package refinedstorage;
import refinedstorage.item.*; import refinedstorage.item.*;
public final class RefinedStorageItems public final class RefinedStorageItems {
{ public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk();
public static final ItemStorageCell STORAGE_CELL = new ItemStorageCell();
public static final ItemWirelessGrid WIRELESS_GRID = new ItemWirelessGrid(); public static final ItemWirelessGrid WIRELESS_GRID = new ItemWirelessGrid();
public static final ItemWirelessGridPlate WIRELESS_GRID_PLATE = new ItemWirelessGridPlate();
public static final ItemQuartzEnrichedIron QUARTZ_ENRICHED_IRON = new ItemQuartzEnrichedIron(); public static final ItemQuartzEnrichedIron QUARTZ_ENRICHED_IRON = new ItemQuartzEnrichedIron();
public static final ItemCore CORE = new ItemCore(); public static final ItemCore CORE = new ItemCore();
public static final ItemSilicon SILICON = new ItemSilicon(); public static final ItemSilicon SILICON = new ItemSilicon();

59
src/main/java/refinedstorage/block/BlockBase.java Normal file → Executable file
View File

@@ -15,17 +15,16 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks;
import refinedstorage.tile.TileBase; import refinedstorage.tile.TileBase;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public abstract class BlockBase extends Block public abstract class BlockBase extends Block {
{
public static final PropertyDirection DIRECTION = PropertyDirection.create("direction"); public static final PropertyDirection DIRECTION = PropertyDirection.create("direction");
private String name; private String name;
public BlockBase(String name) public BlockBase(String name) {
{
super(Material.rock); super(Material.rock);
this.name = name; this.name = name;
@@ -35,14 +34,12 @@ public abstract class BlockBase extends Block
} }
@Override @Override
public String getUnlocalizedName() public String getUnlocalizedName() {
{
return "block." + RefinedStorage.ID + ":" + name; return "block." + RefinedStorage.ID + ":" + name;
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -50,24 +47,20 @@ public abstract class BlockBase extends Block
} }
@Override @Override
public IBlockState getStateFromMeta(int meta) public IBlockState getStateFromMeta(int meta) {
{
return getDefaultState(); return getDefaultState();
} }
@Override @Override
public int getMetaFromState(IBlockState state) public int getMetaFromState(IBlockState state) {
{
return 0; return 0;
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
{
TileEntity tile = world.getTileEntity(pos); TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase) if (tile instanceof TileBase) {
{
return state.withProperty(DIRECTION, ((TileBase) tile).getDirection()); return state.withProperty(DIRECTION, ((TileBase) tile).getDirection());
} }
@@ -75,24 +68,20 @@ public abstract class BlockBase extends Block
} }
@Override @Override
public int damageDropped(IBlockState state) public int damageDropped(IBlockState state) {
{
return getMetaFromState(state); return getMetaFromState(state);
} }
@Override @Override
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis) public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis) {
{
TileEntity tile = world.getTileEntity(pos); TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase) if (tile instanceof TileBase) {
{
EnumFacing dir = ((TileBase) tile).getDirection(); EnumFacing dir = ((TileBase) tile).getDirection();
int newDir = dir.ordinal() + 1; int newDir = dir.ordinal() + 1;
if (newDir > EnumFacing.VALUES.length - 1) if (newDir > EnumFacing.VALUES.length - 1) {
{
newDir = 0; newDir = 0;
} }
@@ -107,25 +96,29 @@ public abstract class BlockBase extends Block
} }
@Override @Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemStack) {
{
super.onBlockPlacedBy(world, pos, state, player, itemStack); super.onBlockPlacedBy(world, pos, state, player, itemStack);
Block blockPlaced = state.getBlock();
TileEntity tile = world.getTileEntity(pos); TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase) if (tile instanceof TileBase) {
{ EnumFacing facing = BlockPistonBase.getFacingFromEntity(pos, player);
((TileBase) tile).setDirection(BlockPistonBase.getFacingFromEntity(pos, player));
if (player.isSneaking() && (blockPlaced == RefinedStorageBlocks.IMPORTER || blockPlaced == RefinedStorageBlocks.EXPORTER || blockPlaced == RefinedStorageBlocks.EXTERNAL_STORAGE)) {
facing = facing.getOpposite();
}
((TileBase) tile).setDirection(facing);
} }
} }
@Override @Override
public void breakBlock(World world, BlockPos pos, IBlockState state) public void breakBlock(World world, BlockPos pos, IBlockState state) {
{
TileEntity tile = world.getTileEntity(pos); TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase && ((TileBase) tile).getDroppedInventory() != null) if (tile instanceof TileBase && ((TileBase) tile).getDroppedInventory() != null) {
{
InventoryUtils.dropInventory(world, ((TileBase) tile).getDroppedInventory(), pos.getX(), pos.getY(), pos.getZ()); InventoryUtils.dropInventory(world, ((TileBase) tile).getDroppedInventory(), pos.getX(), pos.getY(), pos.getZ());
} }

64
src/main/java/refinedstorage/block/BlockCable.java Normal file → Executable file
View File

@@ -1,5 +1,6 @@
package refinedstorage.block; package refinedstorage.block;
import net.minecraft.block.Block;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
@@ -9,10 +10,10 @@ import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.tile.TileCable; import refinedstorage.tile.TileController;
import refinedstorage.tile.TileMachine;
public class BlockCable extends BlockBase public class BlockCable extends BlockBase {
{
public static final PropertyBool NORTH = PropertyBool.create("north"); public static final PropertyBool NORTH = PropertyBool.create("north");
public static final PropertyBool EAST = PropertyBool.create("east"); public static final PropertyBool EAST = PropertyBool.create("east");
public static final PropertyBool SOUTH = PropertyBool.create("south"); public static final PropertyBool SOUTH = PropertyBool.create("south");
@@ -20,14 +21,12 @@ public class BlockCable extends BlockBase
public static final PropertyBool UP = PropertyBool.create("up"); public static final PropertyBool UP = PropertyBool.create("up");
public static final PropertyBool DOWN = PropertyBool.create("down"); public static final PropertyBool DOWN = PropertyBool.create("down");
public BlockCable() public BlockCable() {
{
super("cable"); super("cable");
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -41,52 +40,47 @@ public class BlockCable extends BlockBase
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
{
return super.getActualState(state, world, pos) return super.getActualState(state, world, pos)
.withProperty(NORTH, TileCable.hasConnectionWith(world, pos.north())) .withProperty(NORTH, hasConnectionWith(world, pos.north()))
.withProperty(EAST, TileCable.hasConnectionWith(world, pos.east())) .withProperty(EAST, hasConnectionWith(world, pos.east()))
.withProperty(SOUTH, TileCable.hasConnectionWith(world, pos.south())) .withProperty(SOUTH, hasConnectionWith(world, pos.south()))
.withProperty(WEST, TileCable.hasConnectionWith(world, pos.west())) .withProperty(WEST, hasConnectionWith(world, pos.west()))
.withProperty(UP, TileCable.hasConnectionWith(world, pos.up())) .withProperty(UP, hasConnectionWith(world, pos.up()))
.withProperty(DOWN, TileCable.hasConnectionWith(world, pos.down())); .withProperty(DOWN, hasConnectionWith(world, pos.down()));
}
public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) {
Block block = world.getBlockState(pos).getBlock();
if (block instanceof BlockCable) {
return true;
}
TileEntity tile = world.getTileEntity(pos);
return tile instanceof TileMachine || tile instanceof TileController;
} }
@Override @Override
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) {
{
float pixel = 1F / 16F; float pixel = 1F / 16F;
return new AxisAlignedBB(4 * pixel, 4 * pixel, 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel); return new AxisAlignedBB(4 * pixel, 4 * pixel, 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel);
} }
@Override @Override
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos) public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos) {
{
return getBoundingBox(state, world, pos); return getBoundingBox(state, world, pos);
} }
@Override @Override
public boolean hasTileEntity(IBlockState state) public boolean isOpaqueCube(IBlockState state) {
{
return true;
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return new TileCable();
}
@Override
public boolean isOpaqueCube(IBlockState state)
{
return false; return false;
} }
@Override @Override
public boolean isFullCube(IBlockState state) public boolean isFullCube(IBlockState state) {
{
return false; return false;
} }
} }

View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileConstructor; import refinedstorage.tile.TileConstructor;
public class BlockConstructor extends BlockMachine public class BlockConstructor extends BlockMachine {
{ public BlockConstructor() {
public BlockConstructor()
{
super("constructor"); super("constructor");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileConstructor(); return new TileConstructor();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.CONSTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.CONSTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ());
} }

48
src/main/java/refinedstorage/block/BlockController.java Normal file → Executable file
View File

@@ -1,6 +1,5 @@
package refinedstorage.block; package refinedstorage.block;
import java.util.List;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.properties.PropertyInteger; import net.minecraft.block.properties.PropertyInteger;
@@ -20,28 +19,25 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileController; import refinedstorage.tile.TileController;
public class BlockController extends BlockBase import java.util.List;
{
public class BlockController extends BlockBase {
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumControllerType.class); public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumControllerType.class);
public static final PropertyInteger ENERGY = PropertyInteger.create("energy", 0, 8); public static final PropertyInteger ENERGY = PropertyInteger.create("energy", 0, 8);
public BlockController() public BlockController() {
{
super("controller"); super("controller");
} }
@Override @Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
{ for (int i = 0; i <= 1; i++) {
for (int i = 0; i <= 1; i++)
{
subItems.add(new ItemStack(item, 1, i)); subItems.add(new ItemStack(item, 1, i));
} }
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -51,41 +47,34 @@ public class BlockController extends BlockBase
} }
@Override @Override
public IBlockState getStateFromMeta(int meta) public IBlockState getStateFromMeta(int meta) {
{
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumControllerType.NORMAL : EnumControllerType.CREATIVE); return getDefaultState().withProperty(TYPE, meta == 0 ? EnumControllerType.NORMAL : EnumControllerType.CREATIVE);
} }
@Override @Override
public int getMetaFromState(IBlockState state) public int getMetaFromState(IBlockState state) {
{
return state.getValue(TYPE) == EnumControllerType.NORMAL ? 0 : 1; return state.getValue(TYPE) == EnumControllerType.NORMAL ? 0 : 1;
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
{
return super.getActualState(state, world, pos) return super.getActualState(state, world, pos)
.withProperty(ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyScaled(8)); .withProperty(ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyScaled(8));
} }
@Override @Override
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state) {
{
return true; return true;
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileController(); return new TileController();
} }
@Override @Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.CONTROLLER, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.CONTROLLER, world, pos.getX(), pos.getY(), pos.getZ());
} }
@@ -93,22 +82,19 @@ public class BlockController extends BlockBase
} }
@Override @Override
public void breakBlock(World world, BlockPos pos, IBlockState state) public void breakBlock(World world, BlockPos pos, IBlockState state) {
{
((TileController) world.getTileEntity(pos)).onDestroyed(); ((TileController) world.getTileEntity(pos)).onDestroyed();
super.breakBlock(world, pos, state); super.breakBlock(world, pos, state);
} }
@Override @Override
public boolean hasComparatorInputOverride(IBlockState state) public boolean hasComparatorInputOverride(IBlockState state) {
{
return true; return true;
} }
@Override @Override
public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) public int getComparatorInputOverride(IBlockState state, World world, BlockPos pos) {
{
return ((TileController) world.getTileEntity(pos)).getEnergyScaled(15); return ((TileController) world.getTileEntity(pos)).getEnergyScaled(15);
} }
} }

16
src/main/java/refinedstorage/block/BlockDestructor.java Normal file → Executable file
View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDestructor; import refinedstorage.tile.TileDestructor;
public class BlockDestructor extends BlockMachine public class BlockDestructor extends BlockMachine {
{ public BlockDestructor() {
public BlockDestructor()
{
super("destructor"); super("destructor");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileDestructor(); return new TileDestructor();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.DESTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.DESTRUCTOR, world, pos.getX(), pos.getY(), pos.getZ());
} }

33
src/main/java/refinedstorage/block/BlockDetector.java Normal file → Executable file
View File

@@ -16,18 +16,15 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
public class BlockDetector extends BlockMachine public class BlockDetector extends BlockMachine {
{
public static final PropertyBool POWERED = PropertyBool.create("powered"); public static final PropertyBool POWERED = PropertyBool.create("powered");
public BlockDetector() public BlockDetector() {
{
super("detector"); super("detector");
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -37,25 +34,21 @@ public class BlockDetector extends BlockMachine
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
{
return super.getActualState(state, world, pos) return super.getActualState(state, world, pos)
.withProperty(POWERED, ((TileDetector) world.getTileEntity(pos)).isPowered()); .withProperty(POWERED, ((TileDetector) world.getTileEntity(pos)).isPowered());
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileDetector(); return new TileDetector();
} }
@Override @Override
public int getWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) public int getWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {
{
TileDetector detector = (TileDetector) world.getTileEntity(pos); TileDetector detector = (TileDetector) world.getTileEntity(pos);
if (detector.getDirection() == side.getOpposite()) if (detector.getDirection() == side.getOpposite()) {
{
return detector.isPowered() ? 15 : 0; return detector.isPowered() ? 15 : 0;
} }
@@ -63,22 +56,18 @@ public class BlockDetector extends BlockMachine
} }
@Override @Override
public int getStrongPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) public int getStrongPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {
{
return getWeakPower(state, world, pos, side); return getWeakPower(state, world, pos, side);
} }
@Override @Override
public boolean canProvidePower(IBlockState state) public boolean canProvidePower(IBlockState state) {
{
return true; return true;
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.DETECTOR, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.DETECTOR, world, pos.getX(), pos.getY(), pos.getZ());
} }

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.TileDiskDrive;
public class BlockDiskDrive extends BlockMachine {
public BlockDiskDrive() {
super("disk_drive");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileDiskDrive();
}
@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.DISK_DRIVE, world, pos.getX(), pos.getY(), pos.getZ());
}
return true;
}
}

View File

@@ -1,37 +0,0 @@
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.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDrive;
public class BlockDrive extends BlockMachine
{
public BlockDrive()
{
super("drive");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return new TileDrive();
}
@Override
public boolean onBlockActivated(World world, net.minecraft.util.math.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.DRIVE, world, pos.getX(), pos.getY(), pos.getZ());
}
return true;
}
}

16
src/main/java/refinedstorage/block/BlockExporter.java Normal file → Executable file
View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileExporter; import refinedstorage.tile.TileExporter;
public class BlockExporter extends BlockMachine public class BlockExporter extends BlockMachine {
{ public BlockExporter() {
public BlockExporter()
{
super("exporter"); super("exporter");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileExporter(); return new TileExporter();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.EXPORTER, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.EXPORTER, world, pos.getX(), pos.getY(), pos.getZ());
} }

View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileExternalStorage; import refinedstorage.tile.TileExternalStorage;
public class BlockExternalStorage extends BlockMachine public class BlockExternalStorage extends BlockMachine {
{ public BlockExternalStorage() {
public BlockExternalStorage()
{
super("external_storage"); super("external_storage");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileExternalStorage(); return new TileExternalStorage();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.STORAGE, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.STORAGE, world, pos.getX(), pos.getY(), pos.getZ());
} }

33
src/main/java/refinedstorage/block/BlockGrid.java Normal file → Executable file
View File

@@ -1,6 +1,5 @@
package refinedstorage.block; package refinedstorage.block;
import java.util.List;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
@@ -18,33 +17,29 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class BlockGrid extends BlockMachine import java.util.List;
{
public class BlockGrid extends BlockMachine {
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class); public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class);
public BlockGrid() public BlockGrid() {
{
super("grid"); super("grid");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileGrid(); return new TileGrid();
} }
@Override @Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
{ for (int i = 0; i <= 1; i++) {
for (int i = 0; i <= 1; i++)
{
subItems.add(new ItemStack(item, 1, i)); subItems.add(new ItemStack(item, 1, i));
} }
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -54,22 +49,18 @@ public class BlockGrid extends BlockMachine
} }
@Override @Override
public IBlockState getStateFromMeta(int meta) public IBlockState getStateFromMeta(int meta) {
{
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumGridType.NORMAL : EnumGridType.CRAFTING); return getDefaultState().withProperty(TYPE, meta == 0 ? EnumGridType.NORMAL : EnumGridType.CRAFTING);
} }
@Override @Override
public int getMetaFromState(IBlockState state) public int getMetaFromState(IBlockState state) {
{
return state.getValue(TYPE) == EnumGridType.NORMAL ? 0 : 1; return state.getValue(TYPE) == EnumGridType.NORMAL ? 0 : 1;
} }
@Override @Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.GRID, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.GRID, world, pos.getX(), pos.getY(), pos.getZ());
} }

16
src/main/java/refinedstorage/block/BlockImporter.java Normal file → Executable file
View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileImporter; import refinedstorage.tile.TileImporter;
public class BlockImporter extends BlockMachine public class BlockImporter extends BlockMachine {
{ public BlockImporter() {
public BlockImporter()
{
super("importer"); super("importer");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileImporter(); return new TileImporter();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.IMPORTER, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.IMPORTER, world, pos.getX(), pos.getY(), pos.getZ());
} }

16
src/main/java/refinedstorage/block/BlockInterface.java Normal file → Executable file
View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileInterface; import refinedstorage.tile.TileInterface;
public class BlockInterface extends BlockMachine public class BlockInterface extends BlockMachine {
{ public BlockInterface() {
public BlockInterface()
{
super("interface"); super("interface");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileInterface(); return new TileInterface();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.INTERFACE, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.INTERFACE, world, pos.getX(), pos.getY(), pos.getZ());
} }

15
src/main/java/refinedstorage/block/BlockMachine.java Normal file → Executable file
View File

@@ -8,24 +8,20 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileMachine;
public abstract class BlockMachine extends BlockBase public abstract class BlockMachine extends BlockBase {
{
public static final PropertyBool CONNECTED = PropertyBool.create("connected"); public static final PropertyBool CONNECTED = PropertyBool.create("connected");
public BlockMachine(String name) public BlockMachine(String name) {
{
super(name); super(name);
} }
@Override @Override
public boolean hasTileEntity(IBlockState state) public boolean hasTileEntity(IBlockState state) {
{
return true; return true;
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -34,8 +30,7 @@ public abstract class BlockMachine extends BlockBase
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
{
return super.getActualState(state, world, pos) return super.getActualState(state, world, pos)
.withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected()); .withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected());
} }

View File

@@ -1,9 +1,7 @@
package refinedstorage.block; package refinedstorage.block;
public class BlockMachineCasing extends BlockBase public class BlockMachineCasing extends BlockBase {
{ public BlockMachineCasing() {
public BlockMachineCasing()
{
super("machine_casing"); super("machine_casing");
} }
} }

15
src/main/java/refinedstorage/block/BlockRelay.java Normal file → Executable file
View File

@@ -12,24 +12,19 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileRelay; import refinedstorage.tile.TileRelay;
public class BlockRelay extends BlockMachine public class BlockRelay extends BlockMachine {
{ public BlockRelay() {
public BlockRelay()
{
super("relay"); super("relay");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileRelay(); return new TileRelay();
} }
@Override @Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.RELAY, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.RELAY, world, pos.getX(), pos.getY(), pos.getZ());
} }

16
src/main/java/refinedstorage/block/BlockSolderer.java Normal file → Executable file
View File

@@ -6,29 +6,25 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileSolderer; import refinedstorage.tile.TileSolderer;
public class BlockSolderer extends BlockMachine public class BlockSolderer extends BlockMachine {
{ public BlockSolderer() {
public BlockSolderer()
{
super("solderer"); super("solderer");
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileSolderer(); return new TileSolderer();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.SOLDERER, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.SOLDERER, world, pos.getX(), pos.getY(), pos.getZ());
} }

53
src/main/java/refinedstorage/block/BlockStorage.java Normal file → Executable file
View File

@@ -1,7 +1,5 @@
package refinedstorage.block; package refinedstorage.block;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
@@ -24,27 +22,25 @@ import refinedstorage.RefinedStorageGui;
import refinedstorage.item.ItemBlockStorage; import refinedstorage.item.ItemBlockStorage;
import refinedstorage.tile.TileStorage; import refinedstorage.tile.TileStorage;
public class BlockStorage extends BlockMachine import java.util.ArrayList;
{ import java.util.List;
public class BlockStorage extends BlockMachine {
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class); public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class);
public BlockStorage() public BlockStorage() {
{
super("storage"); super("storage");
} }
@Override @Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
{ for (int i = 0; i <= 4; i++) {
for (int i = 0; i <= 4; i++)
{
subItems.add(ItemBlockStorage.initNBT(new ItemStack(item, 1, i))); subItems.add(ItemBlockStorage.initNBT(new ItemStack(item, 1, i)));
} }
} }
@Override @Override
protected BlockStateContainer createBlockState() protected BlockStateContainer createBlockState() {
{
return new BlockStateContainer(this, new IProperty[] return new BlockStateContainer(this, new IProperty[]
{ {
DIRECTION, DIRECTION,
@@ -54,28 +50,23 @@ public class BlockStorage extends BlockMachine
} }
@Override @Override
public IBlockState getStateFromMeta(int meta) public IBlockState getStateFromMeta(int meta) {
{
return getDefaultState().withProperty(TYPE, EnumStorageType.getById(meta)); return getDefaultState().withProperty(TYPE, EnumStorageType.getById(meta));
} }
@Override @Override
public int getMetaFromState(IBlockState state) public int getMetaFromState(IBlockState state) {
{
return ((EnumStorageType) state.getValue(TYPE)).getId(); return ((EnumStorageType) state.getValue(TYPE)).getId();
} }
@Override @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state) {
{
return new TileStorage(); return new TileStorage();
} }
@Override @Override
public boolean onBlockActivated(World world, net.minecraft.util.math.BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) 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) {
if (!world.isRemote)
{
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.STORAGE, world, pos.getX(), pos.getY(), pos.getZ()); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.STORAGE, world, pos.getX(), pos.getY(), pos.getZ());
} }
@@ -83,21 +74,18 @@ public class BlockStorage extends BlockMachine
} }
@Override @Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) {
{
super.onBlockPlacedBy(world, pos, state, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
NBTTagCompound tag = stack.getTagCompound(); NBTTagCompound tag = stack.getTagCompound();
if (tag != null && tag.hasKey(TileStorage.NBT_STORAGE)) if (tag != null && tag.hasKey(TileStorage.NBT_STORAGE)) {
{
((TileStorage) world.getTileEntity(pos)).setStorageTag((NBTTagCompound) tag.getTag(TileStorage.NBT_STORAGE)); ((TileStorage) world.getTileEntity(pos)).setStorageTag((NBTTagCompound) tag.getTag(TileStorage.NBT_STORAGE));
} }
} }
@Override @Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
{
List<ItemStack> drops = new ArrayList<ItemStack>(); List<ItemStack> drops = new ArrayList<ItemStack>();
ItemStack stack = new ItemStack(RefinedStorageBlocks.STORAGE, 1, RefinedStorageBlocks.STORAGE.getMetaFromState(state)); ItemStack stack = new ItemStack(RefinedStorageBlocks.STORAGE, 1, RefinedStorageBlocks.STORAGE.getMetaFromState(state));
@@ -114,10 +102,8 @@ public class BlockStorage extends BlockMachine
} }
@Override @Override
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) {
{ if (willHarvest) {
if (willHarvest)
{
return true; return true;
} }
@@ -125,8 +111,7 @@ public class BlockStorage extends BlockMachine
} }
@Override @Override
public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity tile, ItemStack stack) public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity tile, ItemStack stack) {
{
super.harvestBlock(world, player, pos, state, tile, stack); super.harvestBlock(world, player, pos, state, tile, stack);
world.setBlockToAir(pos); world.setBlockToAir(pos);

View File

@@ -1,62 +0,0 @@
package refinedstorage.block;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer;
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.IBlockAccess;
import net.minecraft.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileWirelessTransmitter;
public class BlockWirelessTransmitter extends BlockMachine
{
public static final PropertyBool WORKING = PropertyBool.create("working");
public BlockWirelessTransmitter()
{
super("wireless_transmitter");
}
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
CONNECTED,
WORKING
});
}
@Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
{
return super.getActualState(state, world, pos)
.withProperty(WORKING, ((TileWirelessTransmitter) world.getTileEntity(pos)).isWorking());
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return new TileWirelessTransmitter();
}
@Override
public boolean onBlockActivated(World world, net.minecraft.util.math.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.WIRELESS_TRANSMITTER, world, pos.getX(), pos.getY(), pos.getZ());
}
return true;
}
}

View File

@@ -2,34 +2,29 @@ package refinedstorage.block;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
public enum EnumControllerType implements IStringSerializable public enum EnumControllerType implements IStringSerializable {
{
NORMAL(0, "normal"), NORMAL(0, "normal"),
CREATIVE(1, "creative"); CREATIVE(1, "creative");
private int id; private int id;
private String name; private String name;
EnumControllerType(int id, String name) EnumControllerType(int id, String name) {
{
this.id = id; this.id = id;
this.name = name; this.name = name;
} }
@Override @Override
public String getName() public String getName() {
{
return name; return name;
} }
public int getId() public int getId() {
{
return id; return id;
} }
@Override @Override
public String toString() public String toString() {
{
return name; return name;
} }
} }

15
src/main/java/refinedstorage/block/EnumGridType.java Normal file → Executable file
View File

@@ -2,34 +2,29 @@ package refinedstorage.block;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
public enum EnumGridType implements IStringSerializable public enum EnumGridType implements IStringSerializable {
{
NORMAL(0, "normal"), NORMAL(0, "normal"),
CRAFTING(1, "crafting"); CRAFTING(1, "crafting");
private int id; private int id;
private String name; private String name;
EnumGridType(int id, String name) EnumGridType(int id, String name) {
{
this.id = id; this.id = id;
this.name = name; this.name = name;
} }
@Override @Override
public String getName() public String getName() {
{
return name; return name;
} }
public int getId() public int getId() {
{
return id; return id;
} }
@Override @Override
public String toString() public String toString() {
{
return name; return name;
} }

27
src/main/java/refinedstorage/block/EnumStorageType.java Normal file → Executable file
View File

@@ -2,8 +2,7 @@ package refinedstorage.block;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;
public enum EnumStorageType implements IStringSerializable public enum EnumStorageType implements IStringSerializable {
{
TYPE_1K(0, 1000, "1k"), TYPE_1K(0, 1000, "1k"),
TYPE_4K(1, 4000, "4k"), TYPE_4K(1, 4000, "4k"),
TYPE_16K(2, 16000, "16k"), TYPE_16K(2, 16000, "16k"),
@@ -14,41 +13,33 @@ public enum EnumStorageType implements IStringSerializable
private int capacity; private int capacity;
private String name; private String name;
EnumStorageType(int id, int capacity, String name) EnumStorageType(int id, int capacity, String name) {
{
this.id = id; this.id = id;
this.capacity = capacity; this.capacity = capacity;
this.name = name; this.name = name;
} }
@Override @Override
public String getName() public String getName() {
{
return name; return name;
} }
public int getId() public int getId() {
{
return id; return id;
} }
public int getCapacity() public int getCapacity() {
{
return capacity; return capacity;
} }
@Override @Override
public String toString() public String toString() {
{
return name; return name;
} }
public static EnumStorageType getById(int id) public static EnumStorageType getById(int id) {
{ for (EnumStorageType type : EnumStorageType.values()) {
for (EnumStorageType type : EnumStorageType.values()) if (type.getId() == id) {
{
if (type.getId() == id)
{
return type; return type;
} }
} }

121
src/main/java/refinedstorage/container/ContainerBase.java Normal file → Executable file
View File

@@ -1,7 +1,5 @@
package refinedstorage.container; package refinedstorage.container;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ClickType; import net.minecraft.inventory.ClickType;
@@ -9,30 +7,29 @@ import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.container.slot.SlotDisabled; import refinedstorage.container.slot.SlotDisabled;
import refinedstorage.container.slot.SlotGridCraftingResult;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
public abstract class ContainerBase extends Container import java.util.ArrayList;
{ import java.util.List;
public abstract class ContainerBase extends Container {
private EntityPlayer player; private EntityPlayer player;
private List<Slot> playerInventorySlots = new ArrayList<Slot>(); private List<Slot> playerInventorySlots = new ArrayList<Slot>();
public ContainerBase(EntityPlayer player) public ContainerBase(EntityPlayer player) {
{
this.player = player; this.player = player;
} }
public EntityPlayer getPlayer() public EntityPlayer getPlayer() {
{
return player; return player;
} }
protected void addPlayerInventory(int xInventory, int yInventory) protected void addPlayerInventory(int xInventory, int yInventory) {
{
int id = 0; int id = 0;
for (int i = 0; i < 9; i++) for (int i = 0; i < 9; i++) {
{
Slot slot = new Slot(player.inventory, id, xInventory + i * 18, yInventory + 4 + (3 * 18)); Slot slot = new Slot(player.inventory, id, xInventory + i * 18, yInventory + 4 + (3 * 18));
playerInventorySlots.add(slot); playerInventorySlots.add(slot);
@@ -42,10 +39,8 @@ public abstract class ContainerBase extends Container
id++; id++;
} }
for (int y = 0; y < 3; y++) for (int y = 0; y < 3; y++) {
{ for (int x = 0; x < 9; x++) {
for (int x = 0; x < 9; x++)
{
Slot slot = new Slot(player.inventory, id, xInventory + x * 18, yInventory + y * 18); Slot slot = new Slot(player.inventory, id, xInventory + x * 18, yInventory + y * 18);
playerInventorySlots.add(slot); playerInventorySlots.add(slot);
@@ -58,20 +53,37 @@ public abstract class ContainerBase extends Container
} }
@Override @Override
public ItemStack func_184996_a(int id, int clickedButton, ClickType clickType, EntityPlayer player) public ItemStack func_184996_a(int id, int clickedButton, ClickType clickType, EntityPlayer player) {
{
Slot slot = id >= 0 ? getSlot(id) : null; Slot slot = id >= 0 ? getSlot(id) : null;
if (slot instanceof SlotSpecimen) if (slot instanceof SlotSpecimen) {
{ if (((SlotSpecimen) slot).isSizeAllowed()) {
if (((SlotSpecimen) slot).isSizeAllowed()) if (slot.getStack() != null) {
{ if (GuiScreen.isShiftKeyDown()) {
if (player.inventory.getItemStack() != null) slot.putStack(null);
{ } else {
int amount = slot.getStack().stackSize;
if (clickedButton == 0) {
amount--;
if (amount < 1) {
amount = 1;
}
} else if (clickedButton == 1) {
amount++;
if (amount > 64) {
amount = 64;
}
}
slot.getStack().stackSize = amount;
}
} else if (player.inventory.getItemStack() != null) {
int amount = player.inventory.getItemStack().stackSize; int amount = player.inventory.getItemStack().stackSize;
if (clickedButton == 1) if (clickedButton == 1) {
{
amount = 1; amount = 1;
} }
@@ -80,52 +92,18 @@ public abstract class ContainerBase extends Container
slot.putStack(toPut); slot.putStack(toPut);
} }
else if (slot.getStack() != null) } else if (player.inventory.getItemStack() == null) {
{
if (GuiScreen.isShiftKeyDown())
{
slot.putStack(null); slot.putStack(null);
} } else if (slot.isItemValid(player.inventory.getItemStack())) {
else
{
int amount = slot.getStack().stackSize;
if (clickedButton == 0)
{
amount++;
if (amount > 64)
{
amount = 64;
}
}
else if (clickedButton == 1)
{
amount--;
if (amount < 1)
{
amount = 1;
}
}
slot.getStack().stackSize = amount;
}
}
}
else if (player.inventory.getItemStack() == null)
{
slot.putStack(null);
}
else if (slot.isItemValid(player.inventory.getItemStack()))
{
slot.putStack(player.inventory.getItemStack().copy()); slot.putStack(player.inventory.getItemStack().copy());
} }
return player.inventory.getItemStack(); return player.inventory.getItemStack();
} } else if (slot instanceof SlotGridCraftingResult && slot.getHasStack() && GuiScreen.isShiftKeyDown()) {
else if (slot instanceof SlotDisabled) ((SlotGridCraftingResult) slot).onShiftClick(player);
{
return null;
} else if (slot instanceof SlotDisabled) {
return null; return null;
} }
@@ -133,19 +111,16 @@ public abstract class ContainerBase extends Container
} }
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
{
return null; return null;
} }
@Override @Override
public boolean canInteractWith(EntityPlayer player) public boolean canInteractWith(EntityPlayer player) {
{
return true; return true;
} }
public List<Slot> getPlayerInventorySlots() public List<Slot> getPlayerInventorySlots() {
{
return playerInventorySlots; return playerInventorySlots;
} }
} }

View File

@@ -1,33 +1,15 @@
package refinedstorage.container; package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import refinedstorage.container.slot.SlotSpecimenItemBlock;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.tile.TileConstructor; import refinedstorage.tile.TileConstructor;
public class ContainerConstructor extends ContainerBase public class ContainerConstructor extends ContainerBase {
{
class SlotConstructor extends SlotSpecimen
{
public SlotConstructor(IInventory inventory, int id, int x, int y)
{
super(inventory, id, x, y, false);
}
@Override public ContainerConstructor(EntityPlayer player, TileConstructor constructor) {
public boolean isItemValid(ItemStack stack)
{
return stack.getItem() instanceof ItemBlock;
}
}
public ContainerConstructor(EntityPlayer player, TileConstructor constructor)
{
super(player); super(player);
addSlotToContainer(new SlotConstructor(constructor.getInventory(), 0, 80, 20)); addSlotToContainer(new SlotSpecimenItemBlock(constructor.getInventory(), 0, 80, 20));
addPlayerInventory(8, 55); addPlayerInventory(8, 55);
} }

View File

@@ -2,10 +2,8 @@ package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
public class ContainerController extends ContainerBase public class ContainerController extends ContainerBase {
{ public ContainerController(EntityPlayer player) {
public ContainerController(EntityPlayer player)
{
super(player); super(player);
addPlayerInventory(8, 99); addPlayerInventory(8, 99);

View File

@@ -1,13 +1,17 @@
package refinedstorage.container; package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.container.slot.SlotSpecimenItemBlock;
import refinedstorage.tile.TileDestructor;
public class ContainerDestructor extends ContainerBase public class ContainerDestructor extends ContainerBase {
{ public ContainerDestructor(EntityPlayer player, TileDestructor destructor) {
public ContainerDestructor(EntityPlayer player)
{
super(player); super(player);
addPlayerInventory(8, 50); for (int i = 0; i < 9; ++i) {
addSlotToContainer(new SlotSpecimenItemBlock(destructor.getInventory(), i, 8 + (18 * i), 20));
}
addPlayerInventory(8, 55);
} }
} }

View File

@@ -4,10 +4,8 @@ import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
public class ContainerDetector extends ContainerBase public class ContainerDetector extends ContainerBase {
{ public ContainerDetector(EntityPlayer player, TileDetector detector) {
public ContainerDetector(EntityPlayer player, TileDetector detector)
{
super(player); super(player);
addSlotToContainer(new SlotSpecimen(detector.getInventory(), 0, 107, 20, false)); addSlotToContainer(new SlotSpecimen(detector.getInventory(), 0, 107, 20, false));

View File

@@ -0,0 +1,52 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageItems;
import refinedstorage.container.slot.BasicItemValidator;
import refinedstorage.container.slot.SlotFiltered;
import refinedstorage.tile.TileDiskDrive;
public class ContainerDiskDrive extends ContainerStorage {
public ContainerDiskDrive(EntityPlayer player, TileDiskDrive drive) {
super(player);
for (int i = 0; i < 4; ++i) {
addSlotToContainer(new SlotFiltered(drive, i, 98 + (i * 18), 78, new BasicItemValidator(RefinedStorageItems.STORAGE_DISK)));
}
for (int i = 0; i < 4; ++i) {
addSlotToContainer(new SlotFiltered(drive, 4 + i, 98 + (i * 18), 96, new BasicItemValidator(RefinedStorageItems.STORAGE_DISK)));
}
addSpecimenAndPlayerInventorySlots(drive.getInventory());
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack stack = null;
Slot slot = getSlot(index);
if (slot != null && slot.getHasStack()) {
stack = slot.getStack().copy();
if (index < 8) {
if (!mergeItemStack(stack, 8, inventorySlots.size(), true)) {
return null;
}
} else if (!mergeItemStack(stack, 0, 8, false)) {
return null;
}
if (stack.stackSize == 0) {
slot.putStack(null);
} else {
slot.onSlotChanged();
}
}
return stack;
}
}

View File

@@ -1,25 +0,0 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.RefinedStorageItems;
import refinedstorage.container.slot.BasicItemValidator;
import refinedstorage.container.slot.SlotFiltered;
import refinedstorage.tile.TileDrive;
public class ContainerDrive extends ContainerStorage
{
public ContainerDrive(EntityPlayer player, TileDrive drive)
{
super(player, drive.getInventory());
for (int i = 0; i < 4; ++i)
{
addSlotToContainer(new SlotFiltered(drive, i, 98 + (i * 18), 78, new BasicItemValidator(RefinedStorageItems.STORAGE_CELL)));
}
for (int i = 0; i < 4; ++i)
{
addSlotToContainer(new SlotFiltered(drive, 4 + i, 98 + (i * 18), 96, new BasicItemValidator(RefinedStorageItems.STORAGE_CELL)));
}
}
}

View File

@@ -4,14 +4,11 @@ import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.tile.TileExporter; import refinedstorage.tile.TileExporter;
public class ContainerExporter extends ContainerBase public class ContainerExporter extends ContainerBase {
{ public ContainerExporter(EntityPlayer player, TileExporter exporter) {
public ContainerExporter(EntityPlayer player, TileExporter exporter)
{
super(player); super(player);
for (int i = 0; i < 9; ++i) for (int i = 0; i < 9; ++i) {
{
addSlotToContainer(new SlotSpecimen(exporter.getInventory(), i, 8 + (18 * i), 20, false)); addSlotToContainer(new SlotSpecimen(exporter.getInventory(), i, 8 + (18 * i), 20, false));
} }

View File

@@ -1,42 +1,76 @@
package refinedstorage.container; package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.container.slot.SlotGridCraftingResult; import refinedstorage.container.slot.SlotGridCraftingResult;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class ContainerGrid extends ContainerBase import java.util.ArrayList;
{ import java.util.List;
public class ContainerGrid extends ContainerBase {
private List<Slot> craftingSlots = new ArrayList<Slot>();
private TileGrid grid; private TileGrid grid;
public ContainerGrid(EntityPlayer player, TileGrid grid) public ContainerGrid(EntityPlayer player, TileGrid grid) {
{
super(player); super(player);
this.grid = grid; this.grid = grid;
addPlayerInventory(8, grid.getType() == EnumGridType.CRAFTING ? 174 : 108); addPlayerInventory(8, grid.getType() == EnumGridType.CRAFTING ? 174 : 126);
if (grid.getType() == EnumGridType.CRAFTING) if (grid.getType() == EnumGridType.CRAFTING) {
{
int x = 25; int x = 25;
int y = 106; int y = 106;
for (int i = 0; i < 9; ++i) for (int i = 0; i < 9; ++i) {
{ Slot slot = new Slot(grid.getCraftingInventory(), i, x, y);
addSlotToContainer(new Slot(grid.getCraftingInventory(), i, x, y));
craftingSlots.add(slot);
addSlotToContainer(slot);
x += 18; x += 18;
if ((i + 1) % 3 == 0) if ((i + 1) % 3 == 0) {
{
y += 18; y += 18;
x = 25; x = 25;
} }
} }
addSlotToContainer(new SlotGridCraftingResult(player, grid.getCraftingInventory(), grid.getCraftingResultInventory(), grid, 0, 133 + 4, 120 + 4)); addSlotToContainer(new SlotGridCraftingResult(this, player, grid.getCraftingInventory(), grid.getCraftingResultInventory(), grid, 0, 133 + 4, 120 + 4));
}
}
public TileGrid getGrid() {
return grid;
}
public List<Slot> getCraftingSlots() {
return craftingSlots;
}
// I'm overriding detectAndSendChanges() here because the default check
// checks if the item stacks are equal, and if so, then it will only send the new slot contents.
// The thing is though, when the grid replaces the slots with new items from the storage
// system, the item stack replaced WILL be the same and thus changes will not be sent!
// That is why we override here to get rid of the check and ALWAYS send slot changes.
@Override
public void detectAndSendChanges() {
for (int i = 0; i < this.inventorySlots.size(); ++i) {
ItemStack itemstack = ((Slot) this.inventorySlots.get(i)).getStack();
ItemStack itemstack1 = (ItemStack) this.inventoryItemStacks.get(i);
itemstack1 = itemstack == null ? null : itemstack.copy();
this.inventoryItemStacks.set(i, itemstack1);
for (int j = 0; j < this.crafters.size(); ++j) {
((ICrafting) this.crafters.get(j)).sendSlotContents(this, i, itemstack1);
}
} }
} }
} }

View File

@@ -4,14 +4,11 @@ import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.tile.TileImporter; import refinedstorage.tile.TileImporter;
public class ContainerImporter extends ContainerBase public class ContainerImporter extends ContainerBase {
{ public ContainerImporter(EntityPlayer player, TileImporter importer) {
public ContainerImporter(EntityPlayer player, TileImporter importer)
{
super(player); super(player);
for (int i = 0; i < 9; ++i) for (int i = 0; i < 9; ++i) {
{
addSlotToContainer(new SlotSpecimen(importer.getInventory(), i, 8 + (18 * i), 20, false)); addSlotToContainer(new SlotSpecimen(importer.getInventory(), i, 8 + (18 * i), 20, false));
} }

View File

@@ -7,24 +7,19 @@ import refinedstorage.container.slot.SlotOutput;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
import refinedstorage.tile.TileInterface; import refinedstorage.tile.TileInterface;
public class ContainerInterface extends ContainerBase public class ContainerInterface extends ContainerBase {
{ public ContainerInterface(EntityPlayer player, TileInterface tile) {
public ContainerInterface(EntityPlayer player, TileInterface tile)
{
super(player); super(player);
for (int i = 0; i < 9; ++i) for (int i = 0; i < 9; ++i) {
{
addSlotToContainer(new Slot(tile, i, 8 + (18 * i), 20)); addSlotToContainer(new Slot(tile, i, 8 + (18 * i), 20));
} }
for (int i = 9; i < 18; ++i) for (int i = 9; i < 18; ++i) {
{
addSlotToContainer(new SlotSpecimen(tile, i, 8 + (18 * (i - 9)), 54, true)); addSlotToContainer(new SlotSpecimen(tile, i, 8 + (18 * (i - 9)), 54, true));
} }
for (int i = 18; i < 27; ++i) for (int i = 18; i < 27; ++i) {
{
addSlotToContainer(new SlotOutput(tile, i, 8 + (18 * (i - 18)), 100)); addSlotToContainer(new SlotOutput(tile, i, 8 + (18 * (i - 18)), 100));
} }
@@ -32,34 +27,25 @@ public class ContainerInterface extends ContainerBase
} }
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) public ItemStack transferStackInSlot(EntityPlayer player, int index) {
{
ItemStack stack = null; ItemStack stack = null;
Slot slot = getSlot(index); Slot slot = getSlot(index);
if (slot != null && slot.getHasStack()) if (slot != null && slot.getHasStack()) {
{
stack = slot.getStack().copy(); stack = slot.getStack().copy();
if (index < 9) if (index < 9) {
{ if (!mergeItemStack(stack, 9, inventorySlots.size(), true)) {
if (!mergeItemStack(stack, 9, inventorySlots.size(), true))
{
return null; return null;
} }
} } else if (!mergeItemStack(stack, 0, 9, false)) {
else if (!mergeItemStack(stack, 0, 9, false))
{
return null; return null;
} }
if (stack.stackSize == 0) if (stack.stackSize == 0) {
{
slot.putStack(null); slot.putStack(null);
} } else {
else
{
slot.onSlotChanged(); slot.onSlotChanged();
} }
} }

View File

@@ -2,10 +2,8 @@ package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
public class ContainerRelay extends ContainerBase public class ContainerRelay extends ContainerBase {
{ public ContainerRelay(EntityPlayer player) {
public ContainerRelay(EntityPlayer player)
{
super(player); super(player);
addPlayerInventory(8, 50); addPlayerInventory(8, 50);

View File

@@ -6,17 +6,14 @@ import net.minecraft.item.ItemStack;
import refinedstorage.container.slot.SlotOutput; import refinedstorage.container.slot.SlotOutput;
import refinedstorage.tile.TileSolderer; import refinedstorage.tile.TileSolderer;
public class ContainerSolderer extends ContainerBase public class ContainerSolderer extends ContainerBase {
{ public ContainerSolderer(EntityPlayer player, TileSolderer solderer) {
public ContainerSolderer(EntityPlayer player, TileSolderer solderer)
{
super(player); super(player);
int x = 44; int x = 44;
int y = 20; int y = 20;
for (int i = 0; i < 3; ++i) for (int i = 0; i < 3; ++i) {
{
addSlotToContainer(new Slot(solderer, i, x, y)); addSlotToContainer(new Slot(solderer, i, x, y));
y += 18; y += 18;
@@ -28,34 +25,25 @@ public class ContainerSolderer extends ContainerBase
} }
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) public ItemStack transferStackInSlot(EntityPlayer player, int index) {
{
ItemStack stack = null; ItemStack stack = null;
Slot slot = getSlot(index); Slot slot = getSlot(index);
if (slot != null && slot.getHasStack()) if (slot != null && slot.getHasStack()) {
{
stack = slot.getStack().copy(); stack = slot.getStack().copy();
if (index < 3) if (index < 3) {
{ if (!mergeItemStack(stack, 3, inventorySlots.size(), true)) {
if (!mergeItemStack(stack, 3, inventorySlots.size(), true))
{
return null; return null;
} }
} } else if (!mergeItemStack(stack, 0, 3, false)) {
else if (!mergeItemStack(stack, 0, 3, false))
{
return null; return null;
} }
if (stack.stackSize == 0) if (stack.stackSize == 0) {
{
slot.putStack(null); slot.putStack(null);
} } else {
else
{
slot.onSlotChanged(); slot.onSlotChanged();
} }
} }

View File

@@ -4,14 +4,19 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.container.slot.SlotSpecimen;
public class ContainerStorage extends ContainerBase public class ContainerStorage extends ContainerBase {
{ public ContainerStorage(EntityPlayer player) {
public ContainerStorage(EntityPlayer player, IInventory inventory)
{
super(player); super(player);
}
for (int i = 0; i < 9; ++i) public ContainerStorage(EntityPlayer player, IInventory inventory) {
{ this(player);
addSpecimenAndPlayerInventorySlots(inventory);
}
protected void addSpecimenAndPlayerInventorySlots(IInventory inventory) {
for (int i = 0; i < 9; ++i) {
addSlotToContainer(new SlotSpecimen(inventory, i, 8 + (18 * i), 20, false)); addSlotToContainer(new SlotSpecimen(inventory, i, 8 + (18 * i), 20, false));
} }

View File

@@ -1,61 +0,0 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageItems;
import refinedstorage.container.slot.BasicItemValidator;
import refinedstorage.container.slot.SlotFiltered;
import refinedstorage.container.slot.SlotOutput;
import refinedstorage.tile.TileWirelessTransmitter;
public class ContainerWirelessTransmitter extends ContainerBase
{
public ContainerWirelessTransmitter(EntityPlayer player, TileWirelessTransmitter wirelessTransmitter)
{
super(player);
addSlotToContainer(new SlotFiltered(wirelessTransmitter, 0, 8, 20, new BasicItemValidator(Items.ender_pearl)));
addSlotToContainer(new SlotFiltered(wirelessTransmitter, 1, 101, 20, new BasicItemValidator(RefinedStorageItems.WIRELESS_GRID)));
addSlotToContainer(new SlotOutput(wirelessTransmitter, 2, 152, 20));
addPlayerInventory(8, 55);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index)
{
ItemStack stack = null;
Slot slot = getSlot(index);
if (slot != null && slot.getHasStack())
{
stack = slot.getStack().copy();
if (index < 3)
{
if (!mergeItemStack(stack, 3, inventorySlots.size(), true))
{
return null;
}
}
else if (!mergeItemStack(stack, 0, 3, false))
{
return null;
}
if (stack.stackSize == 0)
{
slot.putStack(null);
}
else
{
slot.onSlotChanged();
}
}
return stack;
}
}

View File

@@ -3,18 +3,15 @@ package refinedstorage.container.slot;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class BasicItemValidator implements IItemValidator public class BasicItemValidator implements IItemValidator {
{
private Item item; private Item item;
public BasicItemValidator(Item item) public BasicItemValidator(Item item) {
{
this.item = item; this.item = item;
} }
@Override @Override
public boolean isValid(ItemStack stack) public boolean isValid(ItemStack stack) {
{
return item == stack.getItem(); return item == stack.getItem();
} }
} }

View File

@@ -2,7 +2,6 @@ package refinedstorage.container.slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public interface IItemValidator public interface IItemValidator {
{ boolean isValid(ItemStack stack);
public boolean isValid(ItemStack stack);
} }

View File

@@ -4,16 +4,13 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class SlotDisabled extends Slot public class SlotDisabled extends Slot {
{ public SlotDisabled(IInventory inventory, int id, int x, int y) {
public SlotDisabled(IInventory inventory, int id, int x, int y)
{
super(inventory, id, x, y); super(inventory, id, x, y);
} }
@Override @Override
public boolean isItemValid(ItemStack stack) public boolean isItemValid(ItemStack stack) {
{
return false; return false;
} }
} }

View File

@@ -4,20 +4,17 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class SlotFiltered extends Slot public class SlotFiltered extends Slot {
{
private IItemValidator validator; private IItemValidator validator;
public SlotFiltered(IInventory inventory, int id, int x, int y, IItemValidator validator) public SlotFiltered(IInventory inventory, int id, int x, int y, IItemValidator validator) {
{
super(inventory, id, x, y); super(inventory, id, x, y);
this.validator = validator; this.validator = validator;
} }
@Override @Override
public boolean isItemValid(ItemStack item) public boolean isItemValid(ItemStack item) {
{
return validator.isValid(item); return validator.isValid(item);
} }
} }

View File

@@ -5,36 +5,33 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.inventory.SlotCrafting; import net.minecraft.inventory.SlotCrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.FMLCommonHandler;
import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class SlotGridCraftingResult extends SlotCrafting public class SlotGridCraftingResult extends SlotCrafting {
{ private ContainerGrid container;
private IInventory craftingMatrix; private IInventory craftingMatrix;
private TileGrid grid; private TileGrid grid;
public SlotGridCraftingResult(EntityPlayer player, InventoryCrafting craftingMatrix, IInventory craftingResult, TileGrid grid, int id, int x, int y) public SlotGridCraftingResult(ContainerGrid container, EntityPlayer player, InventoryCrafting craftingMatrix, IInventory craftingResult, TileGrid grid, int id, int x, int y) {
{
super(player, craftingMatrix, craftingResult, id, x, y); super(player, craftingMatrix, craftingResult, id, x, y);
this.container = container;
this.craftingMatrix = craftingMatrix; this.craftingMatrix = craftingMatrix;
this.grid = grid; this.grid = grid;
} }
@Override @Override
public void onPickupFromSlot(EntityPlayer player, ItemStack stack) public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
{ FMLCommonHandler.instance().firePlayerCraftingEvent(player, stack, craftingMatrix);
ItemStack[] matrixSlots = new ItemStack[craftingMatrix.getSizeInventory()];
for (int i = 0; i < craftingMatrix.getSizeInventory(); ++i) onCrafting(stack);
{
if (craftingMatrix.getStackInSlot(i) != null) grid.onCrafted(container);
{
matrixSlots[i] = craftingMatrix.getStackInSlot(i).copy();
}
} }
super.onPickupFromSlot(player, stack); public void onShiftClick(EntityPlayer player) {
grid.onCraftedShift(container, player);
grid.onCrafted(matrixSlots);
} }
} }

View File

@@ -4,16 +4,13 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class SlotOutput extends Slot public class SlotOutput extends Slot {
{ public SlotOutput(IInventory inventory, int id, int x, int y) {
public SlotOutput(IInventory inventory, int id, int x, int y)
{
super(inventory, id, x, y); super(inventory, id, x, y);
} }
@Override @Override
public boolean isItemValid(ItemStack stack) public boolean isItemValid(ItemStack stack) {
{
return false; return false;
} }
} }

View File

@@ -5,42 +5,35 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class SlotSpecimen extends Slot public class SlotSpecimen extends Slot {
{
private boolean sizeAllowed; private boolean sizeAllowed;
public SlotSpecimen(IInventory inventory, int id, int x, int y, boolean allowSize) public SlotSpecimen(IInventory inventory, int id, int x, int y, boolean allowSize) {
{
super(inventory, id, x, y); super(inventory, id, x, y);
this.sizeAllowed = allowSize; this.sizeAllowed = allowSize;
} }
@Override @Override
public boolean canTakeStack(EntityPlayer player) public boolean canTakeStack(EntityPlayer player) {
{
return false; return false;
} }
@Override @Override
public boolean isItemValid(ItemStack stack) public boolean isItemValid(ItemStack stack) {
{
return true; return true;
} }
@Override @Override
public void putStack(ItemStack stack) public void putStack(ItemStack stack) {
{ if (stack != null && !sizeAllowed) {
if (stack != null && !sizeAllowed)
{
stack.stackSize = 1; stack.stackSize = 1;
} }
super.putStack(stack); super.putStack(stack);
} }
public boolean isSizeAllowed() public boolean isSizeAllowed() {
{
return sizeAllowed; return sizeAllowed;
} }
} }

View File

@@ -0,0 +1,16 @@
package refinedstorage.container.slot;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
public class SlotSpecimenItemBlock extends SlotSpecimen {
public SlotSpecimenItemBlock(IInventory inventory, int id, int x, int y) {
super(inventory, id, x, y, false);
}
@Override
public boolean isItemValid(ItemStack stack) {
return stack.getItem() instanceof ItemBlock;
}
}

144
src/main/java/refinedstorage/gui/GuiBase.java Normal file → Executable file
View File

@@ -1,12 +1,8 @@
package refinedstorage.gui; package refinedstorage.gui;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@@ -15,8 +11,12 @@ import org.lwjgl.opengl.GL11;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.gui.sidebutton.SideButton; import refinedstorage.gui.sidebutton.SideButton;
public abstract class GuiBase extends GuiContainer import java.io.IOException;
{ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public abstract class GuiBase extends GuiContainer {
public static final int SIDE_BUTTON_WIDTH = 20; public static final int SIDE_BUTTON_WIDTH = 20;
public static final int SIDE_BUTTON_HEIGHT = 20; public static final int SIDE_BUTTON_HEIGHT = 20;
@@ -28,8 +28,7 @@ public abstract class GuiBase extends GuiContainer
protected int width; protected int width;
protected int height; protected int height;
public GuiBase(Container container, int width, int height) public GuiBase(Container container, int width, int height) {
{
super(container); super(container);
this.width = width; this.width = width;
@@ -39,10 +38,8 @@ public abstract class GuiBase extends GuiContainer
} }
@Override @Override
public void initGui() public void initGui() {
{ if (sideButtons.size() > 0) {
if (sideButtons.size() > 0)
{
xSize -= SIDE_BUTTON_WIDTH; xSize -= SIDE_BUTTON_WIDTH;
} }
@@ -55,44 +52,38 @@ public abstract class GuiBase extends GuiContainer
init(guiLeft, guiTop); init(guiLeft, guiTop);
if (sideButtons.size() > 0) if (sideButtons.size() > 0) {
{
xSize += SIDE_BUTTON_WIDTH; xSize += SIDE_BUTTON_WIDTH;
} }
} }
@Override @Override
public void updateScreen() public void updateScreen() {
{
super.updateScreen(); super.updateScreen();
update(guiLeft, guiTop); update(guiLeft, guiTop);
} }
@Override @Override
protected void drawGuiContainerBackgroundLayer(float renderPartialTicks, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float renderPartialTicks, int mouseX, int mouseY) {
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
drawBackground(guiLeft, guiTop, mouseX, mouseY); drawBackground(guiLeft, guiTop, mouseX, mouseY);
} }
@Override @Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mouseX -= guiLeft; mouseX -= guiLeft;
mouseY -= guiTop; mouseY -= guiTop;
for (SideButton sideButton : sideButtons) for (SideButton sideButton : sideButtons) {
{
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
sideButton.draw(this, sideButton.getX() + 2, sideButton.getY() + 1); sideButton.draw(this, sideButton.getX() + 2, sideButton.getY() + 1);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
if (inBounds(sideButton.getX(), sideButton.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT, mouseX, mouseY)) if (inBounds(sideButton.getX(), sideButton.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT, mouseX, mouseY)) {
{
drawTooltip(mouseX, mouseY, sideButton.getTooltip(this)); drawTooltip(mouseX, mouseY, sideButton.getTooltip(this));
} }
} }
@@ -101,26 +92,21 @@ public abstract class GuiBase extends GuiContainer
} }
@Override @Override
protected void actionPerformed(GuiButton button) throws IOException protected void actionPerformed(GuiButton button) throws IOException {
{
super.actionPerformed(button); super.actionPerformed(button);
for (SideButton sideButton : sideButtons) for (SideButton sideButton : sideButtons) {
{ if (sideButton.getId() == button.id) {
if (sideButton.getId() == button.id)
{
sideButton.actionPerformed(); sideButton.actionPerformed();
} }
} }
} }
public GuiButton addButton(int x, int y, int w, int h) public GuiButton addButton(int x, int y, int w, int h) {
{
return addButton(x, y, w, h, ""); return addButton(x, y, w, h, "");
} }
public GuiButton addButton(int x, int y, int w, int h, String text) public GuiButton addButton(int x, int y, int w, int h, String text) {
{
GuiButton button = new GuiButton(lastButtonId++, x, y, w, h, text); GuiButton button = new GuiButton(lastButtonId++, x, y, w, h, text);
buttonList.add(button); buttonList.add(button);
@@ -128,8 +114,7 @@ public abstract class GuiBase extends GuiContainer
return button; return button;
} }
public void addSideButton(SideButton button) public void addSideButton(SideButton button) {
{
button.setX(xSize - 1); button.setX(xSize - 1);
button.setY(lastSideButtonY); button.setY(lastSideButtonY);
button.setId(addButton(guiLeft + button.getX(), guiTop + button.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT).id); button.setId(addButton(guiLeft + button.getX(), guiTop + button.getY(), SIDE_BUTTON_WIDTH, SIDE_BUTTON_HEIGHT).id);
@@ -139,90 +124,95 @@ public abstract class GuiBase extends GuiContainer
sideButtons.add(button); sideButtons.add(button);
} }
public boolean inBounds(int x, int y, int w, int h, int ox, int oy) public boolean inBounds(int x, int y, int w, int h, int ox, int oy) {
{
return ox >= x && ox <= x + w && oy >= y && oy <= y + h; return ox >= x && ox <= x + w && oy >= y && oy <= y + h;
} }
public void bindTexture(String file) public void bindTexture(String file) {
{
bindTexture(RefinedStorage.ID, file); bindTexture(RefinedStorage.ID, file);
} }
public void bindTexture(String base, String file) public void bindTexture(String base, String file) {
{
mc.getTextureManager().bindTexture(new ResourceLocation(base, "textures/" + file)); mc.getTextureManager().bindTexture(new ResourceLocation(base, "textures/" + file));
} }
public void drawItem(int x, int y, ItemStack stack) public void drawItem(int x, int y, ItemStack stack) {
{ drawItem(x, y, stack, false);
drawItem(x, y, stack, false, null);
} }
public void drawItem(int x, int y, ItemStack stack, boolean withOverlay) public void drawItem(int x, int y, ItemStack stack, boolean withOverlay) {
{
drawItem(x, y, stack, withOverlay, null); drawItem(x, y, stack, withOverlay, null);
} }
public void drawItem(int x, int y, ItemStack stack, boolean withOverlay, String message) public void drawItem(int x, int y, ItemStack stack, boolean withOverlay, String message) {
{
zLevel = 200.0F; zLevel = 200.0F;
itemRender.zLevel = 200.0F; itemRender.zLevel = 200.0F;
FontRenderer font = null;
if (stack != null)
{
font = stack.getItem().getFontRenderer(stack);
}
if (font == null)
{
font = fontRendererObj;
}
itemRender.renderItemIntoGUI(stack, x, y); itemRender.renderItemIntoGUI(stack, x, y);
if (withOverlay) if (withOverlay) {
{ drawItemOverlay(stack, message, x, y);
itemRender.renderItemOverlayIntoGUI(font, stack, x, y, message);
} }
zLevel = 0.0F; zLevel = 0.0F;
itemRender.zLevel = 0.0F; itemRender.zLevel = 0.0F;
} }
public void drawString(int x, int y, String message) public void drawItemOverlay(ItemStack stack, String text, int x, int y) {
{ itemRender.renderItemOverlayIntoGUI(fontRendererObj, stack, x, y, "");
if (text != null) {
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, 1);
GL11.glScalef(0.5f, 0.5f, 1);
int stringWidth = fontRendererObj.getStringWidth(text);
GlStateManager.disableLighting();
GlStateManager.disableRescaleNormal();
GlStateManager.depthMask(false);
GlStateManager.enableBlend();
GlStateManager.blendFunc(770, 771);
GlStateManager.disableDepth();
fontRendererObj.drawStringWithShadow(text, 30 - stringWidth, 22, 16777215);
GlStateManager.enableDepth();
GlStateManager.enableTexture2D();
GlStateManager.depthMask(true);
GlStateManager.enableLighting();
GlStateManager.disableBlend();
GlStateManager.popMatrix();
}
}
public void drawString(int x, int y, String message) {
drawString(x, y, message, 4210752); drawString(x, y, message, 4210752);
} }
public void drawString(int x, int y, String message, int color) public void drawString(int x, int y, String message, int color) {
{
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
fontRendererObj.drawString(message, x, y, color); fontRendererObj.drawString(message, x, y, color);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
} }
public void drawTooltip(int x, int y, String message) public void drawTooltip(int x, int y, String message) {
{
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);
drawHoveringText(Arrays.asList(message.split("\n")), x, y); drawHoveringText(Arrays.asList(message.split("\n")), x, y);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
} }
public void drawTooltip(int x, int y, ItemStack stack) public void drawTooltip(int x, int y, ItemStack stack) {
{ GL11.glDisable(GL11.GL_LIGHTING);
renderToolTip(stack, x, y); renderToolTip(stack, x, y);
GL11.glEnable(GL11.GL_LIGHTING);
} }
public void drawTexture(int x, int y, int textureX, int textureY, int width, int height) public void drawTexture(int x, int y, int textureX, int textureY, int width, int height) {
{
drawTexturedModalRect(x, y, textureX, textureY, width, height); drawTexturedModalRect(x, y, textureX, textureY, width, height);
} }
public String t(String name, Object... format) public String t(String name, Object... format) {
{
return I18n.translateToLocalFormatted(name, format); return I18n.translateToLocalFormatted(name, format);
} }

18
src/main/java/refinedstorage/gui/GuiConstructor.java Normal file → Executable file
View File

@@ -6,20 +6,17 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileConstructor; import refinedstorage.tile.TileConstructor;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiConstructor extends GuiBase public class GuiConstructor extends GuiBase {
{
private TileConstructor constructor; private TileConstructor constructor;
public GuiConstructor(ContainerConstructor container, TileConstructor constructor) public GuiConstructor(ContainerConstructor container, TileConstructor constructor) {
{
super(container, 176, 137); super(container, 176, 137);
this.constructor = constructor; this.constructor = constructor;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(constructor)); addSideButton(new SideButtonRedstoneMode(constructor));
addSideButton(new SideButtonCompare(constructor, InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(constructor, InventoryUtils.COMPARE_DAMAGE));
@@ -27,21 +24,18 @@ public class GuiConstructor extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/constructor.png"); bindTexture("gui/constructor.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:constructor")); drawString(7, 7, t("gui.refinedstorage:constructor"));
drawString(7, 43, t("container.inventory")); drawString(7, 43, t("container.inventory"));
} }

89
src/main/java/refinedstorage/gui/GuiController.java Normal file → Executable file
View File

@@ -2,15 +2,21 @@ package refinedstorage.gui;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.text.translation.I18n;
import refinedstorage.container.ContainerController; import refinedstorage.container.ContainerController;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileController; import refinedstorage.tile.TileController;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileMachine;
public class GuiController extends GuiBase import java.util.ArrayList;
{ import java.util.List;
public class GuiController extends GuiBase {
public static final int VISIBLE_ROWS = 2;
private TileController controller; private TileController controller;
private int barX = 8; private int barX = 8;
@@ -20,42 +26,42 @@ public class GuiController extends GuiBase
private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59); private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59);
public GuiController(ContainerController container, TileController controller) public GuiController(ContainerController container, TileController controller) {
{
super(container, 176, 181); super(container, 176, 181);
this.controller = controller; this.controller = controller;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(controller)); addSideButton(new SideButtonRedstoneMode(controller));
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{ scrollbar.setCanScroll(getRows() > VISIBLE_ROWS);
scrollbar.setCanScroll(getRows() > getVisibleRows());
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/controller.png"); bindTexture("gui/controller.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
int barHeightNew = (int) ((float) controller.getEnergyStored(null) / (float) controller.getMaxEnergyStored(null) * (float) barHeight); int barHeightNew = (int) ((float) controller.getEnergyStored(null) / (float) controller.getMaxEnergyStored(null) * (float) barHeight);
drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, 0 + (barHeight - barHeightNew), barWidth, barHeightNew); drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, barHeight - barHeightNew, barWidth, barHeightNew);
scrollbar.draw(this); scrollbar.draw(this);
} }
private int calculateOffsetOnScale(int pos, float scale) {
float multiplier = (pos / scale);
return (int) multiplier;
}
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
scrollbar.update(this, mouseX, mouseY); scrollbar.update(this, mouseX, mouseY);
drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId())); drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId()));
@@ -68,53 +74,62 @@ public class GuiController extends GuiBase
RenderHelper.enableGUIStandardItemLighting(); RenderHelper.enableGUIStandardItemLighting();
for (int i = 0; i < 4; ++i) List<TileMachine> machines = new ArrayList<TileMachine>(controller.getMachines());
{
if (slot < controller.getMachines().size()) TileMachine machineHovering = null;
{
TileMachine machine = controller.getMachines().get(slot); for (int i = 0; i < 4; ++i) {
if (slot < machines.size()) {
TileMachine machine = machines.get(slot);
IBlockState machineState = machine.getWorld().getBlockState(machine.getPos()); IBlockState machineState = machine.getWorld().getBlockState(machine.getPos());
Block machineBlock = machineState.getBlock(); Block machineBlock = machineState.getBlock();
ItemStack machineStack = new ItemStack(machineBlock, 1, machineBlock.getMetaFromState(machineState)); ItemStack machineStack = new ItemStack(machineBlock, 1, machineBlock.getMetaFromState(machineState));
drawItem(x, y, machineStack); drawItem(x, y + 5, machineStack);
drawString(x + 21, y + 5, t("misc.refinedstorage:energy_usage_minimal", machine.getEnergyUsage())); GlStateManager.pushMatrix();
float scale = 0.5f;
GlStateManager.scale(scale, scale, 1);
drawString(calculateOffsetOnScale(x + 1, scale), calculateOffsetOnScale(y - 3, scale), machineStack.getDisplayName());
drawString(calculateOffsetOnScale(x + 21, scale), calculateOffsetOnScale(y + 10, scale), t("misc.refinedstorage:energy_usage_minimal", machine.getEnergyUsage()));
GlStateManager.popMatrix();
if (inBounds(x, y, 16, 16, mouseX, mouseY)) {
machineHovering = machine;
}
} }
if (i == 1) if (i == 1) {
{
x = 33; x = 33;
y += 30; y += 30;
} } else {
else
{
x += 60; x += 60;
} }
slot++; slot++;
} }
if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) if (machineHovering != null) {
{ String message = I18n.translateToLocalFormatted("gui.refinedstorage:controller.machine_position.x", machineHovering.getPos().getX());
message += "\n" + I18n.translateToLocalFormatted("gui.refinedstorage:controller.machine_position.y", machineHovering.getPos().getY());
message += "\n" + I18n.translateToLocalFormatted("gui.refinedstorage:controller.machine_position.z", machineHovering.getPos().getZ());
drawTooltip(mouseX, mouseY, message);
}
if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) {
drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null)));
} }
} }
public int getOffset() public int getOffset() {
{
return (int) (scrollbar.getCurrentScroll() / 59f * (float) getRows()); return (int) (scrollbar.getCurrentScroll() / 59f * (float) getRows());
} }
private int getRows() private int getRows() {
{
int max = (int) Math.ceil((float) controller.getMachines().size() / (float) 2); int max = (int) Math.ceil((float) controller.getMachines().size() / (float) 2);
return max < 0 ? 0 : max; return max < 0 ? 0 : max;
} }
private int getVisibleRows()
{
return 2;
}
} }

30
src/main/java/refinedstorage/gui/GuiDestructor.java Normal file → Executable file
View File

@@ -1,43 +1,45 @@
package refinedstorage.gui; package refinedstorage.gui;
import refinedstorage.container.ContainerDestructor; import refinedstorage.container.ContainerDestructor;
import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonMode;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileDestructor; import refinedstorage.tile.TileDestructor;
import refinedstorage.util.InventoryUtils;
public class GuiDestructor extends GuiBase public class GuiDestructor extends GuiBase {
{
private TileDestructor destructor; private TileDestructor destructor;
public GuiDestructor(ContainerDestructor container, TileDestructor destructor) public GuiDestructor(ContainerDestructor container, TileDestructor destructor) {
{ super(container, 176, 137);
super(container, 176, 131);
this.destructor = destructor; this.destructor = destructor;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(destructor)); addSideButton(new SideButtonRedstoneMode(destructor));
addSideButton(new SideButtonMode(destructor));
addSideButton(new SideButtonCompare(destructor, InventoryUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(destructor, InventoryUtils.COMPARE_NBT));
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/destructor.png"); bindTexture("gui/destructor.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:destructor")); drawString(7, 7, t("gui.refinedstorage:destructor"));
drawString(7, 39, t("container.inventory")); drawString(7, 43, t("container.inventory"));
} }
} }

34
src/main/java/refinedstorage/gui/GuiDetector.java Normal file → Executable file
View File

@@ -1,7 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.io.IOException;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.container.ContainerDetector; import refinedstorage.container.ContainerDetector;
@@ -11,22 +10,21 @@ import refinedstorage.network.MessageDetectorAmountUpdate;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiDetector extends GuiBase import java.io.IOException;
{
public class GuiDetector extends GuiBase {
private TileDetector detector; private TileDetector detector;
private GuiTextField amountField; private GuiTextField amountField;
public GuiDetector(ContainerDetector container, TileDetector detector) public GuiDetector(ContainerDetector container, TileDetector detector) {
{
super(container, 176, 137); super(container, 176, 137);
this.detector = detector; this.detector = detector;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonCompare(detector, InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(detector, InventoryUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(detector, InventoryUtils.COMPARE_NBT)); addSideButton(new SideButtonCompare(detector, InventoryUtils.COMPARE_NBT));
@@ -42,13 +40,11 @@ public class GuiDetector extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/detector.png"); bindTexture("gui/detector.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
@@ -57,26 +53,20 @@ public class GuiDetector extends GuiBase
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:detector")); drawString(7, 7, t("gui.refinedstorage:detector"));
drawString(7, 43, t("container.inventory")); drawString(7, 43, t("container.inventory"));
} }
@Override @Override
protected void keyTyped(char character, int keyCode) throws IOException protected void keyTyped(char character, int keyCode) throws IOException {
{ if (!checkHotbarKeys(keyCode) && amountField.textboxKeyTyped(character, keyCode)) {
if (!checkHotbarKeys(keyCode) && amountField.textboxKeyTyped(character, keyCode))
{
Integer result = Ints.tryParse(amountField.getText()); Integer result = Ints.tryParse(amountField.getText());
if (result != null) if (result != null) {
{
RefinedStorage.NETWORK.sendToServer(new MessageDetectorAmountUpdate(detector, result)); RefinedStorage.NETWORK.sendToServer(new MessageDetectorAmountUpdate(detector, result));
} }
} } else {
else
{
super.keyTyped(character, keyCode); super.keyTyped(character, keyCode);
} }
} }

18
src/main/java/refinedstorage/gui/GuiExporter.java Normal file → Executable file
View File

@@ -6,20 +6,17 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileExporter; import refinedstorage.tile.TileExporter;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiExporter extends GuiBase public class GuiExporter extends GuiBase {
{
private TileExporter exporter; private TileExporter exporter;
public GuiExporter(ContainerExporter container, TileExporter exporter) public GuiExporter(ContainerExporter container, TileExporter exporter) {
{
super(container, 176, 137); super(container, 176, 137);
this.exporter = exporter; this.exporter = exporter;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(exporter)); addSideButton(new SideButtonRedstoneMode(exporter));
addSideButton(new SideButtonCompare(exporter, InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(exporter, InventoryUtils.COMPARE_DAMAGE));
@@ -27,21 +24,18 @@ public class GuiExporter extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/exporter.png"); bindTexture("gui/exporter.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:exporter")); drawString(7, 7, t("gui.refinedstorage:exporter"));
drawString(7, 43, t("container.inventory")); drawString(7, 43, t("container.inventory"));
} }

321
src/main/java/refinedstorage/gui/GuiGrid.java Normal file → Executable file
View File

@@ -1,10 +1,5 @@
package refinedstorage.gui; package refinedstorage.gui;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
@@ -19,35 +14,39 @@ import refinedstorage.gui.sidebutton.SideButtonGridSortingDirection;
import refinedstorage.gui.sidebutton.SideButtonGridSortingType; import refinedstorage.gui.sidebutton.SideButtonGridSortingType;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.network.MessageGridCraftingClear; import refinedstorage.network.MessageGridCraftingClear;
import refinedstorage.network.MessageGridCraftingPush;
import refinedstorage.network.MessageStoragePull; import refinedstorage.network.MessageStoragePull;
import refinedstorage.network.MessageStoragePush; import refinedstorage.network.MessageStoragePush;
import refinedstorage.storage.StorageItem; import refinedstorage.storage.StorageItem;
import refinedstorage.tile.TileController; import refinedstorage.tile.TileController;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class GuiGrid extends GuiBase import java.io.IOException;
{ import java.util.*;
public class GuiGrid extends GuiBase {
private ContainerGrid container; private ContainerGrid container;
private TileGrid grid; private TileGrid grid;
private List<StorageItem> items = new ArrayList<StorageItem>();
private GuiTextField searchField; private GuiTextField searchField;
private int hoveringSlotId; private int hoveringSlot;
private int hoveringId; private int hoveringItemId;
private Scrollbar scrollbar = new Scrollbar(174, 20, 12, 70); private Scrollbar scrollbar;
public GuiGrid(ContainerGrid container, TileGrid grid) public GuiGrid(ContainerGrid container, TileGrid grid) {
{ super(container, 193, grid.getType() == EnumGridType.CRAFTING ? 256 : 208);
super(container, 193, grid.getType() == EnumGridType.CRAFTING ? 256 : 190);
this.container = container; this.container = container;
this.grid = grid; this.grid = grid;
this.scrollbar = new Scrollbar(174, 20, 12, grid.getType() == EnumGridType.CRAFTING ? 70 : 88);
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(grid)); addSideButton(new SideButtonRedstoneMode(grid));
addSideButton(new SideButtonGridSortingDirection(grid)); addSideButton(new SideButtonGridSortingDirection(grid));
@@ -62,47 +61,76 @@ public class GuiGrid extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{ items.clear();
if (grid.isConnected()) {
items.addAll(grid.getController().getItems());
if (!searchField.getText().trim().isEmpty()) {
Iterator<StorageItem> t = items.iterator();
while (t.hasNext()) {
StorageItem item = t.next();
if (!item.toItemStack().getDisplayName().toLowerCase().contains(searchField.getText().toLowerCase())) {
t.remove();
}
}
}
Collections.sort(items, new Comparator<StorageItem>() {
@Override
public int compare(StorageItem o1, StorageItem o2) {
if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) {
return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName());
} else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) {
return o1.toItemStack().getDisplayName().compareTo(o2.toItemStack().getDisplayName());
}
return 0;
}
});
if (grid.getSortingType() == TileGrid.SORTING_TYPE_QUANTITY) {
Collections.sort(items, new Comparator<StorageItem>() {
@Override
public int compare(StorageItem o1, StorageItem o2) {
if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING) {
return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity());
} else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING) {
return Integer.valueOf(o1.getQuantity()).compareTo(o2.getQuantity());
}
return 0;
}
});
}
}
scrollbar.setCanScroll(getRows() > getVisibleRows()); scrollbar.setCanScroll(getRows() > getVisibleRows());
} }
public int getOffset() public int getOffset() {
{
return (int) (scrollbar.getCurrentScroll() / 70f * (float) getRows()); return (int) (scrollbar.getCurrentScroll() / 70f * (float) getRows());
} }
public int getVisibleRows() public int getRows() {
{ int max = (int) Math.ceil((float) items.size() / (float) 9);
return 4;
}
public int getRows()
{
if (!grid.isConnected())
{
return 0;
}
int max = (int) Math.ceil((float) getItems().size() / (float) 9);
return max < 0 ? 0 : max; return max < 0 ? 0 : max;
} }
private boolean isHoveringOverValidSlot(List<StorageItem> items) private boolean isHoveringOverItemInSlot() {
{ return grid.isConnected() && isHoveringOverSlot() && hoveringSlot < items.size();
return grid.isConnected() && isHoveringOverSlot() && hoveringSlotId < items.size();
} }
private boolean isHoveringOverSlot() private boolean isHoveringOverSlot() {
{ return hoveringSlot >= 0;
return hoveringSlotId >= 0;
} }
public boolean isHoveringOverClear(int mouseX, int mouseY) public boolean isHoveringOverClear(int mouseX, int mouseY) {
{ if (grid.getType() == EnumGridType.CRAFTING) {
if (grid.getType() == EnumGridType.CRAFTING)
{
return inBounds(81, 105, 7, 7, mouseX, mouseY); return inBounds(81, 105, 7, 7, mouseX, mouseY);
} }
@@ -110,14 +138,10 @@ public class GuiGrid extends GuiBase
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{ if (grid.getType() == EnumGridType.CRAFTING) {
if (grid.getType() == EnumGridType.CRAFTING)
{
bindTexture("gui/crafting_grid.png"); bindTexture("gui/crafting_grid.png");
} } else {
else
{
bindTexture("gui/grid.png"); bindTexture("gui/grid.png");
} }
@@ -129,69 +153,60 @@ public class GuiGrid extends GuiBase
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
scrollbar.update(this, mouseX, mouseY); scrollbar.update(this, mouseX, mouseY);
drawString(7, 7, t("gui.refinedstorage:grid")); drawString(7, 7, t("gui.refinedstorage:grid"));
if (grid.getType() == EnumGridType.CRAFTING) if (grid.getType() == EnumGridType.CRAFTING) {
{
drawString(7, 94, t("container.crafting")); drawString(7, 94, t("container.crafting"));
} }
drawString(7, grid.getType() == EnumGridType.CRAFTING ? 163 : 96, t("container.inventory")); drawString(7, grid.getType() == EnumGridType.CRAFTING ? 163 : 113, t("container.inventory"));
int x = 8; int x = 8;
int y = 20; int y = 20;
List<StorageItem> items = getItems(); hoveringSlot = -1;
hoveringSlotId = -1;
int slot = getOffset() * 9; int slot = getOffset() * 9;
RenderHelper.enableGUIStandardItemLighting(); RenderHelper.enableGUIStandardItemLighting();
for (int i = 0; i < 9 * getVisibleRows(); ++i) for (int i = 0; i < 9 * getVisibleRows(); ++i) {
{ if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) {
if (slot < items.size()) hoveringSlot = slot;
{
if (slot < items.size()) {
// We need to use the ID, because if we filter, the client-side index will change
// while the server-side's index will still be the same.
hoveringItemId = items.get(slot).getId();
}
}
if (slot < items.size()) {
int qty = items.get(slot).getQuantity(); int qty = items.get(slot).getQuantity();
String text; String text;
if (qty >= 1000000) if (qty >= 1000000) {
{ text = String.format("%.1f", (float) qty / 1000000).replace(",", ".").replace(".0", "") + "M";
text = String.valueOf((int) Math.floor(qty / 1000000)) + "M"; } else if (qty >= 1000) {
} text = String.format("%.1f", (float) qty / 1000).replace(",", ".").replace(".0", "") + "K";
else if (qty >= 1000) } else if (qty == 1) {
{
text = String.valueOf((int) Math.floor(qty / 1000)) + "K";
}
else if (qty == 1)
{
text = null; text = null;
} else {
text = String.valueOf(qty);
} }
else
{ if (hoveringSlot == slot && GuiScreen.isShiftKeyDown() && qty > 1) {
text = String.valueOf(qty); text = String.valueOf(qty);
} }
drawItem(x, y, items.get(slot).toItemStack(), true, text); drawItem(x, y, items.get(slot).toItemStack(), true, text);
} }
if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) {
{
hoveringSlotId = slot;
if (slot < items.size())
{
// We need to use the ID, because if we filter, the client-side index will change
// while the serverside's index will still be the same.
hoveringId = items.get(slot).getId();
}
int color = grid.isConnected() ? -2130706433 : 0xFF5B5B5B; int color = grid.isConnected() ? -2130706433 : 0xFF5B5B5B;
GlStateManager.disableLighting(); GlStateManager.disableLighting();
@@ -209,149 +224,75 @@ public class GuiGrid extends GuiBase
x += 18; x += 18;
if ((i + 1) % 9 == 0) if ((i + 1) % 9 == 0) {
{
x = 8; x = 8;
y += 18; y += 18;
} }
} }
if (isHoveringOverValidSlot(items)) if (isHoveringOverItemInSlot()) {
{ drawTooltip(mouseX, mouseY, items.get(hoveringSlot).toItemStack());
drawTooltip(mouseX, mouseY, items.get(hoveringSlotId).toItemStack());
} }
if (isHoveringOverClear(mouseX, mouseY)) if (isHoveringOverClear(mouseX, mouseY)) {
{
drawTooltip(mouseX, mouseY, t("misc.refinedstorage:clear")); drawTooltip(mouseX, mouseY, t("misc.refinedstorage:clear"));
} }
} }
public List<StorageItem> getItems()
{
List<StorageItem> items = new ArrayList<StorageItem>();
if (!grid.isConnected())
{
return items;
}
items.addAll(grid.getController().getItems());
if (!searchField.getText().trim().isEmpty())
{
Iterator<StorageItem> t = items.iterator();
while (t.hasNext())
{
StorageItem item = t.next();
if (!item.toItemStack().getDisplayName().toLowerCase().contains(searchField.getText().toLowerCase()))
{
t.remove();
}
}
}
items.sort(new Comparator<StorageItem>()
{
@Override @Override
public int compare(StorageItem o1, StorageItem o2) public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException {
{
if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING)
{
return o2.toItemStack().getDisplayName().compareTo(o1.toItemStack().getDisplayName());
}
else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING)
{
return o1.toItemStack().getDisplayName().compareTo(o2.toItemStack().getDisplayName());
}
return 0;
}
});
if (grid.getSortingType() == TileGrid.SORTING_TYPE_QUANTITY)
{
items.sort(new Comparator<StorageItem>()
{
@Override
public int compare(StorageItem o1, StorageItem o2)
{
if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_ASCENDING)
{
return Integer.valueOf(o2.getQuantity()).compareTo(o1.getQuantity());
}
else if (grid.getSortingDirection() == TileGrid.SORTING_DIRECTION_DESCENDING)
{
return Integer.valueOf(o1.getQuantity()).compareTo(o2.getQuantity());
}
return 0;
}
});
}
return items;
}
@Override
public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException
{
super.mouseClicked(mouseX, mouseY, clickedButton); super.mouseClicked(mouseX, mouseY, clickedButton);
boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop); boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop);
if (grid.isConnected()) if (grid.isConnected()) {
{
TileController controller = grid.getController(); TileController controller = grid.getController();
if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null) if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) {
{
RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), -1, clickedButton == 1)); RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), -1, clickedButton == 1));
} } else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) {
else if (isHoveringOverValidSlot(getItems()) && container.getPlayer().inventory.getItemStack() == null)
{
boolean half = clickedButton == 1; boolean half = clickedButton == 1;
boolean shift = GuiScreen.isShiftKeyDown(); boolean shift = GuiScreen.isShiftKeyDown();
boolean one = clickedButton == 2; boolean one = clickedButton == 2;
RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringId, half, one, shift)); RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, half, one, shift));
} } else if (clickedClear) {
else if (clickedClear)
{
RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear(grid)); RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear(grid));
} } else {
else for (Slot slot : container.getPlayerInventorySlots()) {
{ if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) {
for (Slot slot : container.getPlayerInventorySlots()) if (GuiScreen.isShiftKeyDown()) {
{
if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop))
{
if (GuiScreen.isShiftKeyDown())
{
RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), slot.slotNumber, clickedButton == 1)); RefinedStorage.NETWORK.sendToServer(new MessageStoragePush(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), slot.slotNumber, clickedButton == 1));
} }
} }
} }
if (grid.getType() == EnumGridType.CRAFTING) {
for (Slot slot : container.getCraftingSlots()) {
if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop)) {
if (GuiScreen.isShiftKeyDown()) {
RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingPush(grid, slot.getSlotIndex()));
}
}
}
}
} }
} }
if (clickedClear) if (clickedClear) {
{
mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.ui_button_click, 1.0F)); mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.ui_button_click, 1.0F));
} }
} }
@Override @Override
protected void keyTyped(char character, int keyCode) throws IOException protected void keyTyped(char character, int keyCode) throws IOException {
{ if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) {
if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) } else {
{
}
else
{
super.keyTyped(character, keyCode); super.keyTyped(character, keyCode);
} }
} }
public int getVisibleRows() {
return grid.getType() == EnumGridType.CRAFTING ? 4 : 5;
}
} }

32
src/main/java/refinedstorage/gui/GuiHandler.java Normal file → Executable file
View File

@@ -11,18 +11,15 @@ import refinedstorage.container.*;
import refinedstorage.storage.IStorageGui; import refinedstorage.storage.IStorageGui;
import refinedstorage.tile.*; import refinedstorage.tile.*;
public class GuiHandler implements IGuiHandler public class GuiHandler implements IGuiHandler {
{ private Container getContainer(int ID, EntityPlayer player, TileEntity tile) {
private Container getContainer(int ID, EntityPlayer player, TileEntity tile) switch (ID) {
{
switch (ID)
{
case RefinedStorageGui.CONTROLLER: case RefinedStorageGui.CONTROLLER:
return new ContainerController(player); return new ContainerController(player);
case RefinedStorageGui.GRID: case RefinedStorageGui.GRID:
return new ContainerGrid(player, (TileGrid) tile); return new ContainerGrid(player, (TileGrid) tile);
case RefinedStorageGui.DRIVE: case RefinedStorageGui.DISK_DRIVE:
return new ContainerDrive(player, (TileDrive) tile); return new ContainerDiskDrive(player, (TileDiskDrive) tile);
case RefinedStorageGui.IMPORTER: case RefinedStorageGui.IMPORTER:
return new ContainerImporter(player, (TileImporter) tile); return new ContainerImporter(player, (TileImporter) tile);
case RefinedStorageGui.EXPORTER: case RefinedStorageGui.EXPORTER:
@@ -31,10 +28,8 @@ public class GuiHandler implements IGuiHandler
return new ContainerDetector(player, (TileDetector) tile); return new ContainerDetector(player, (TileDetector) tile);
case RefinedStorageGui.SOLDERER: case RefinedStorageGui.SOLDERER:
return new ContainerSolderer(player, (TileSolderer) tile); return new ContainerSolderer(player, (TileSolderer) tile);
case RefinedStorageGui.WIRELESS_TRANSMITTER:
return new ContainerWirelessTransmitter(player, (TileWirelessTransmitter) tile);
case RefinedStorageGui.DESTRUCTOR: case RefinedStorageGui.DESTRUCTOR:
return new ContainerDestructor(player); return new ContainerDestructor(player, (TileDestructor) tile);
case RefinedStorageGui.CONSTRUCTOR: case RefinedStorageGui.CONSTRUCTOR:
return new ContainerConstructor(player, (TileConstructor) tile); return new ContainerConstructor(player, (TileConstructor) tile);
case RefinedStorageGui.STORAGE: case RefinedStorageGui.STORAGE:
@@ -49,24 +44,21 @@ public class GuiHandler implements IGuiHandler
} }
@Override @Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
{
return getContainer(ID, player, world.getTileEntity(new BlockPos(x, y, z))); return getContainer(ID, player, world.getTileEntity(new BlockPos(x, y, z)));
} }
@Override @Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
{
TileEntity tile = world.getTileEntity(new BlockPos(x, y, z)); TileEntity tile = world.getTileEntity(new BlockPos(x, y, z));
switch (ID) switch (ID) {
{
case RefinedStorageGui.CONTROLLER: case RefinedStorageGui.CONTROLLER:
return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile); return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile);
case RefinedStorageGui.GRID: case RefinedStorageGui.GRID:
return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile); return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile);
case RefinedStorageGui.DRIVE: case RefinedStorageGui.DISK_DRIVE:
return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile, "gui/drive.png"); return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png");
case RefinedStorageGui.IMPORTER: case RefinedStorageGui.IMPORTER:
return new GuiImporter((ContainerImporter) getContainer(ID, player, tile), (TileImporter) tile); return new GuiImporter((ContainerImporter) getContainer(ID, player, tile), (TileImporter) tile);
case RefinedStorageGui.EXPORTER: case RefinedStorageGui.EXPORTER:
@@ -75,8 +67,6 @@ public class GuiHandler implements IGuiHandler
return new GuiDetector((ContainerDetector) getContainer(ID, player, tile), (TileDetector) tile); return new GuiDetector((ContainerDetector) getContainer(ID, player, tile), (TileDetector) tile);
case RefinedStorageGui.SOLDERER: case RefinedStorageGui.SOLDERER:
return new GuiSolderer((ContainerSolderer) getContainer(ID, player, tile), (TileSolderer) tile); return new GuiSolderer((ContainerSolderer) getContainer(ID, player, tile), (TileSolderer) tile);
case RefinedStorageGui.WIRELESS_TRANSMITTER:
return new GuiWirelessTransmitter((ContainerWirelessTransmitter) getContainer(ID, player, tile), (TileWirelessTransmitter) tile);
case RefinedStorageGui.DESTRUCTOR: case RefinedStorageGui.DESTRUCTOR:
return new GuiDestructor((ContainerDestructor) getContainer(ID, player, tile), (TileDestructor) tile); return new GuiDestructor((ContainerDestructor) getContainer(ID, player, tile), (TileDestructor) tile);
case RefinedStorageGui.CONSTRUCTOR: case RefinedStorageGui.CONSTRUCTOR:

18
src/main/java/refinedstorage/gui/GuiImporter.java Normal file → Executable file
View File

@@ -7,20 +7,17 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileImporter; import refinedstorage.tile.TileImporter;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiImporter extends GuiBase public class GuiImporter extends GuiBase {
{
private TileImporter importer; private TileImporter importer;
public GuiImporter(ContainerImporter container, TileImporter importer) public GuiImporter(ContainerImporter container, TileImporter importer) {
{
super(container, 176, 137); super(container, 176, 137);
this.importer = importer; this.importer = importer;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(importer)); addSideButton(new SideButtonRedstoneMode(importer));
addSideButton(new SideButtonMode(importer)); addSideButton(new SideButtonMode(importer));
@@ -30,21 +27,18 @@ public class GuiImporter extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/importer.png"); bindTexture("gui/importer.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:importer")); drawString(7, 7, t("gui.refinedstorage:importer"));
drawString(7, 43, t("container.inventory")); drawString(7, 43, t("container.inventory"));
} }

27
src/main/java/refinedstorage/gui/GuiInterface.java Normal file → Executable file
View File

@@ -6,20 +6,17 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileInterface; import refinedstorage.tile.TileInterface;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiInterface extends GuiBase public class GuiInterface extends GuiBase {
{
private TileInterface tile; private TileInterface tile;
public GuiInterface(ContainerInterface container, TileInterface tile) public GuiInterface(ContainerInterface container, TileInterface tile) {
{
super(container, 176, 218); super(container, 176, 218);
this.tile = tile; this.tile = tile;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(tile)); addSideButton(new SideButtonRedstoneMode(tile));
addSideButton(new SideButtonCompare(tile, InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(tile, InventoryUtils.COMPARE_DAMAGE));
@@ -27,32 +24,20 @@ public class GuiInterface extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/interface.png"); bindTexture("gui/interface.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:interface.import")); drawString(7, 7, t("gui.refinedstorage:interface.import"));
drawString(7, 42, t("gui.refinedstorage:interface.export")); drawString(7, 42, t("gui.refinedstorage:interface.export"));
drawString(7, 123, t("container.inventory")); drawString(7, 123, t("container.inventory"));
if (inBounds(162, 42, 7, 7, mouseX, mouseY))
{
String message = t("gui.refinedstorage:interface.export.explanation.0");
message += "\n" + t("gui.refinedstorage:interface.export.explanation.1");
message += "\n" + t("gui.refinedstorage:interface.export.explanation.2");
drawTooltip(mouseX, mouseY, message);
}
} }
} }

18
src/main/java/refinedstorage/gui/GuiRelay.java Normal file → Executable file
View File

@@ -4,39 +4,33 @@ import refinedstorage.container.ContainerRelay;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileRelay; import refinedstorage.tile.TileRelay;
public class GuiRelay extends GuiBase public class GuiRelay extends GuiBase {
{
private TileRelay relay; private TileRelay relay;
public GuiRelay(ContainerRelay container, TileRelay relay) public GuiRelay(ContainerRelay container, TileRelay relay) {
{
super(container, 176, 131); super(container, 176, 131);
this.relay = relay; this.relay = relay;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(relay)); addSideButton(new SideButtonRedstoneMode(relay));
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/relay.png"); bindTexture("gui/relay.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:relay")); drawString(7, 7, t("gui.refinedstorage:relay"));
drawString(7, 39, t("container.inventory")); drawString(7, 39, t("container.inventory"));
} }

23
src/main/java/refinedstorage/gui/GuiSolderer.java Normal file → Executable file
View File

@@ -1,47 +1,40 @@
package refinedstorage.gui; package refinedstorage.gui;
import net.minecraft.inventory.Container; import refinedstorage.container.ContainerSolderer;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileSolderer; import refinedstorage.tile.TileSolderer;
public class GuiSolderer extends GuiBase public class GuiSolderer extends GuiBase {
{
private TileSolderer solderer; private TileSolderer solderer;
public GuiSolderer(Container container, TileSolderer solderer) public GuiSolderer(ContainerSolderer container, TileSolderer solderer) {
{
super(container, 176, 177); super(container, 176, 177);
this.solderer = solderer; this.solderer = solderer;
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{
addSideButton(new SideButtonRedstoneMode(solderer)); addSideButton(new SideButtonRedstoneMode(solderer));
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture("gui/solderer.png"); bindTexture("gui/solderer.png");
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
if (solderer.isWorking()) if (solderer.isWorking()) {
{
drawTexture(x + 83, y + 40 - 1, 177, 0, solderer.getProgressScaled(22), 15); drawTexture(x + 83, y + 40 - 1, 177, 0, solderer.getProgressScaled(22), 15);
} }
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t("gui.refinedstorage:solderer")); drawString(7, 7, t("gui.refinedstorage:solderer"));
drawString(7, 82, t("container.inventory")); drawString(7, 82, t("container.inventory"));
} }

54
src/main/java/refinedstorage/gui/GuiStorage.java Normal file → Executable file
View File

@@ -1,7 +1,6 @@
package refinedstorage.gui; package refinedstorage.gui;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.io.IOException;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import refinedstorage.container.ContainerStorage; import refinedstorage.container.ContainerStorage;
import refinedstorage.gui.sidebutton.SideButtonCompare; import refinedstorage.gui.sidebutton.SideButtonCompare;
@@ -10,8 +9,9 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.storage.IStorageGui; import refinedstorage.storage.IStorageGui;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class GuiStorage extends GuiBase import java.io.IOException;
{
public class GuiStorage extends GuiBase {
private IStorageGui gui; private IStorageGui gui;
private String texture; private String texture;
@@ -22,34 +22,28 @@ public class GuiStorage extends GuiBase
private int barWidth = 16; private int barWidth = 16;
private int barHeight = 58; private int barHeight = 58;
public GuiStorage(ContainerStorage container, IStorageGui gui, String texture) public GuiStorage(ContainerStorage container, IStorageGui gui, String texture) {
{
super(container, 176, 211); super(container, 176, 211);
this.gui = gui; this.gui = gui;
this.texture = texture; this.texture = texture;
} }
public GuiStorage(ContainerStorage container, IStorageGui gui) public GuiStorage(ContainerStorage container, IStorageGui gui) {
{
this(container, gui, "gui/storage.png"); this(container, gui, "gui/storage.png");
} }
@Override @Override
public void init(int x, int y) public void init(int x, int y) {
{ if (gui.getRedstoneModeSetting() != null) {
if (gui.getRedstoneModeSetting() != null)
{
addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeSetting())); addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeSetting()));
} }
if (gui.getModeSetting() != null) if (gui.getModeSetting() != null) {
{
addSideButton(new SideButtonMode(gui.getModeSetting())); addSideButton(new SideButtonMode(gui.getModeSetting()));
} }
if (gui.getCompareSetting() != null) if (gui.getCompareSetting() != null) {
{
addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_DAMAGE)); addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_NBT)); addSideButton(new SideButtonCompare(gui.getCompareSetting(), InventoryUtils.COMPARE_NBT));
} }
@@ -64,38 +58,33 @@ public class GuiStorage extends GuiBase
} }
@Override @Override
public void update(int x, int y) public void update(int x, int y) {
{
} }
@Override @Override
public void drawBackground(int x, int y, int mouseX, int mouseY) public void drawBackground(int x, int y, int mouseX, int mouseY) {
{
bindTexture(texture); bindTexture(texture);
drawTexture(x, y, 0, 0, width, height); drawTexture(x, y, 0, 0, width, height);
int barHeightNew = (int) ((float) gui.getStored() / (float) gui.getCapacity() * (float) barHeight); int barHeightNew = (int) ((float) gui.getStored() / (float) gui.getCapacity() * (float) barHeight);
drawTexture(x + barX, y + barY + barHeight - barHeightNew, 179, 0 + (barHeight - barHeightNew), barWidth, barHeightNew); drawTexture(x + barX, y + barY + barHeight - barHeightNew, 179, barHeight - barHeightNew, barWidth, barHeightNew);
priorityField.drawTextBox(); priorityField.drawTextBox();
} }
@Override @Override
public void drawForeground(int mouseX, int mouseY) public void drawForeground(int mouseX, int mouseY) {
{
drawString(7, 7, t(gui.getName())); drawString(7, 7, t(gui.getName()));
drawString(7, 42, gui.getCapacity() == -1 ? t("misc.refinedstorage:storage.stored_minimal", gui.getStored()) : t("misc.refinedstorage:storage.stored_capacity_minimal", gui.getStored(), gui.getCapacity())); drawString(7, 42, gui.getCapacity() == -1 ? t("misc.refinedstorage:storage.stored_minimal", gui.getStored()) : t("misc.refinedstorage:storage.stored_capacity_minimal", gui.getStored(), gui.getCapacity()));
drawString(97, 42, t("misc.refinedstorage:priority")); drawString(97, 42, t("misc.refinedstorage:priority"));
drawString(7, 117, t("container.inventory")); drawString(7, 117, t("container.inventory"));
if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) {
{
int full = 0; int full = 0;
if (gui.getCapacity() >= 0) if (gui.getCapacity() >= 0) {
{
full = (int) ((float) gui.getStored() / (float) gui.getCapacity() * 100f); full = (int) ((float) gui.getStored() / (float) gui.getCapacity() * 100f);
} }
@@ -104,19 +93,14 @@ public class GuiStorage extends GuiBase
} }
@Override @Override
protected void keyTyped(char character, int keyCode) throws IOException protected void keyTyped(char character, int keyCode) throws IOException {
{ if (!checkHotbarKeys(keyCode) && priorityField.textboxKeyTyped(character, keyCode)) {
if (!checkHotbarKeys(keyCode) && priorityField.textboxKeyTyped(character, keyCode))
{
Integer result = Ints.tryParse(priorityField.getText()); Integer result = Ints.tryParse(priorityField.getText());
if (result != null) if (result != null) {
{
gui.onPriorityChanged(result); gui.onPriorityChanged(result);
} }
} } else {
else
{
super.keyTyped(character, keyCode); super.keyTyped(character, keyCode);
} }
} }

View File

@@ -1,57 +0,0 @@
package refinedstorage.gui;
import net.minecraft.inventory.Container;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileWirelessTransmitter;
public class GuiWirelessTransmitter extends GuiBase
{
private TileWirelessTransmitter wirelessTransmitter;
public GuiWirelessTransmitter(Container container, TileWirelessTransmitter wirelessTransmitter)
{
super(container, 176, 137);
this.wirelessTransmitter = wirelessTransmitter;
}
@Override
public void init(int x, int y)
{
addSideButton(new SideButtonRedstoneMode(wirelessTransmitter));
}
@Override
public void update(int x, int y)
{
}
@Override
public void drawBackground(int x, int y, int mouseX, int mouseY)
{
bindTexture("gui/wireless_transmitter.png");
drawTexture(x, y, 0, 0, width, height);
if (wirelessTransmitter.isWorking())
{
int progress = (int) ((float) wirelessTransmitter.getProgress() / (float) TileWirelessTransmitter.TOTAL_PROGRESS * 14f);
drawTexture(x + 36 - 1, y + 21 - 1 + progress, 178, 0 + progress, 14, 14);
}
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
drawString(7, 7, t("gui.refinedstorage:wireless_transmitter"));
drawString(7, 43, t("container.inventory"));
if (inBounds(36, 21, 14, 14, mouseX, mouseY) && wirelessTransmitter.isWorking())
{
int workRemaining = (int) (((float) (TileWirelessTransmitter.TOTAL_PROGRESS - wirelessTransmitter.getProgress())) / (float) TileWirelessTransmitter.TOTAL_PROGRESS * 100f);
drawTooltip(mouseX, mouseY, workRemaining + "%");
}
}
}

53
src/main/java/refinedstorage/gui/Scrollbar.java Normal file → Executable file
View File

@@ -2,8 +2,7 @@ package refinedstorage.gui;
import org.lwjgl.input.Mouse; import org.lwjgl.input.Mouse;
public class Scrollbar public class Scrollbar {
{
private boolean canScroll = true; private boolean canScroll = true;
private int x; private int x;
@@ -15,33 +14,27 @@ public class Scrollbar
private boolean wasClicking = false; private boolean wasClicking = false;
private boolean isScrolling = false; private boolean isScrolling = false;
public Scrollbar(int x, int y, int scrollbarWidth, int scrollbarHeight) public Scrollbar(int x, int y, int scrollbarWidth, int scrollbarHeight) {
{
this.x = x; this.x = x;
this.y = y; this.y = y;
this.scrollbarWidth = scrollbarWidth; this.scrollbarWidth = scrollbarWidth;
this.scrollbarHeight = scrollbarHeight; this.scrollbarHeight = scrollbarHeight;
} }
public void setCanScroll(boolean canScroll) public void setCanScroll(boolean canScroll) {
{
this.canScroll = canScroll; this.canScroll = canScroll;
} }
public boolean canScroll() public boolean canScroll() {
{
return canScroll; return canScroll;
} }
public float getCurrentScroll() public float getCurrentScroll() {
{
return currentScroll; return currentScroll;
} }
public void setCurrentScroll(float newCurrentScroll) public void setCurrentScroll(float newCurrentScroll) {
{ if (newCurrentScroll < 0) {
if (newCurrentScroll < 0)
{
newCurrentScroll = 0; newCurrentScroll = 0;
} }
@@ -49,61 +42,49 @@ public class Scrollbar
int max = scrollbarHeight - scrollbarItselfHeight - 3; int max = scrollbarHeight - scrollbarItselfHeight - 3;
if (newCurrentScroll > max) if (newCurrentScroll > max) {
{
newCurrentScroll = max; newCurrentScroll = max;
} }
currentScroll = newCurrentScroll; currentScroll = newCurrentScroll;
} }
public void draw(GuiBase gui) public void draw(GuiBase gui) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
gui.drawTexture(gui.guiLeft + x, gui.guiTop + y + (int) currentScroll, canScroll() ? 232 : 244, 0, 12, 15); gui.drawTexture(gui.guiLeft + x, gui.guiTop + y + (int) currentScroll, canScroll() ? 232 : 244, 0, 12, 15);
} }
public void update(GuiBase gui, int mouseX, int mouseY) public void update(GuiBase gui, int mouseX, int mouseY) {
{ if (!canScroll()) {
if (!canScroll())
{
isScrolling = false; isScrolling = false;
wasClicking = false; wasClicking = false;
currentScroll = 0; currentScroll = 0;
} } else {
else
{
int wheel = Mouse.getDWheel(); int wheel = Mouse.getDWheel();
wheel = Math.max(Math.min(-wheel, 1), -1); wheel = Math.max(Math.min(-wheel, 1), -1);
float delta = 15; float delta = 15;
if (wheel == -1) if (wheel == -1) {
{
setCurrentScroll(currentScroll - delta); setCurrentScroll(currentScroll - delta);
} } else if (wheel == 1) {
else if (wheel == 1)
{
setCurrentScroll(currentScroll + delta); setCurrentScroll(currentScroll + delta);
} }
boolean down = Mouse.isButtonDown(0); boolean down = Mouse.isButtonDown(0);
if (!wasClicking && down && gui.inBounds(x, y, scrollbarWidth, scrollbarHeight, mouseX, mouseY)) if (!wasClicking && down && gui.inBounds(x, y, scrollbarWidth, scrollbarHeight, mouseX, mouseY)) {
{
isScrolling = true; isScrolling = true;
} }
if (!down) if (!down) {
{
isScrolling = false; isScrolling = false;
} }
wasClicking = down; wasClicking = down;
if (isScrolling) if (isScrolling) {
{
setCurrentScroll(mouseY - 20); setCurrentScroll(mouseY - 20);
} }
} }

View File

@@ -2,39 +2,32 @@ package refinedstorage.gui.sidebutton;
import refinedstorage.gui.GuiBase; import refinedstorage.gui.GuiBase;
public abstract class SideButton public abstract class SideButton {
{
private int id; private int id;
private int x; private int x;
private int y; private int y;
public int getId() public int getId() {
{
return id; return id;
} }
public void setId(int id) public void setId(int id) {
{
this.id = id; this.id = id;
} }
public int getX() public int getX() {
{
return x; return x;
} }
public void setX(int x) public void setX(int x) {
{
this.x = x; this.x = x;
} }
public int getY() public int getY() {
{
return y; return y;
} }
public void setY(int y) public void setY(int y) {
{
this.y = y; this.y = y;
} }

View File

@@ -7,30 +7,24 @@ import refinedstorage.network.MessageCompareUpdate;
import refinedstorage.tile.settings.ICompareSetting; import refinedstorage.tile.settings.ICompareSetting;
import refinedstorage.util.InventoryUtils; import refinedstorage.util.InventoryUtils;
public class SideButtonCompare extends SideButton public class SideButtonCompare extends SideButton {
{
private ICompareSetting setting; private ICompareSetting setting;
private int mask; private int mask;
public SideButtonCompare(ICompareSetting setting, int mask) public SideButtonCompare(ICompareSetting setting, int mask) {
{
this.setting = setting; this.setting = setting;
this.mask = mask; this.mask = mask;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:compare." + mask)).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:compare." + mask)).append(TextFormatting.RESET).append("\n");
if ((setting.getCompare() & mask) == mask) if ((setting.getCompare() & mask) == mask) {
{
builder.append(gui.t("misc.refinedstorage:yes")); builder.append(gui.t("misc.refinedstorage:yes"));
} } else {
else
{
builder.append(gui.t("misc.refinedstorage:no")); builder.append(gui.t("misc.refinedstorage:no"));
} }
@@ -38,18 +32,14 @@ public class SideButtonCompare extends SideButton
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
int ty = 0; int ty = 0;
if (mask == InventoryUtils.COMPARE_DAMAGE) if (mask == InventoryUtils.COMPARE_DAMAGE) {
{
ty = 80; ty = 80;
} } else if (mask == InventoryUtils.COMPARE_NBT) {
else if (mask == InventoryUtils.COMPARE_NBT)
{
ty = 48; ty = 48;
} }
@@ -59,8 +49,7 @@ public class SideButtonCompare extends SideButton
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
RefinedStorage.NETWORK.sendToServer(new MessageCompareUpdate(setting, setting.getCompare() ^ mask)); RefinedStorage.NETWORK.sendToServer(new MessageCompareUpdate(setting, setting.getCompare() ^ mask));
} }
} }

View File

@@ -8,36 +8,30 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageDetectorModeUpdate; import refinedstorage.network.MessageDetectorModeUpdate;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
public class SideButtonDetectorMode extends SideButton public class SideButtonDetectorMode extends SideButton {
{
private TileDetector detector; private TileDetector detector;
public SideButtonDetectorMode(TileDetector detector) public SideButtonDetectorMode(TileDetector detector) {
{
this.detector = detector; this.detector = detector;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:detector.mode")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:detector.mode")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:detector.mode." + detector.getMode())); builder.append(gui.t("sidebutton.refinedstorage:detector.mode." + detector.getMode()));
return builder.toString(); return builder.toString();
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.drawItem(x, y, new ItemStack(Items.redstone, 1)); gui.drawItem(x, y, new ItemStack(Items.redstone, 1));
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
RefinedStorage.NETWORK.sendToServer(new MessageDetectorModeUpdate(detector)); RefinedStorage.NETWORK.sendToServer(new MessageDetectorModeUpdate(detector));
} }
} }

View File

@@ -6,45 +6,36 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate; import refinedstorage.network.MessageGridSortingUpdate;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingDirection extends SideButton public class SideButtonGridSortingDirection extends SideButton {
{
private TileGrid grid; private TileGrid grid;
public SideButtonGridSortingDirection(TileGrid grid) public SideButtonGridSortingDirection(TileGrid grid) {
{
this.grid = grid; this.grid = grid;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.direction")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.direction")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:sorting.direction." + grid.getSortingDirection())); builder.append(gui.t("sidebutton.refinedstorage:sorting.direction." + grid.getSortingDirection()));
return builder.toString(); return builder.toString();
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
gui.drawTexture(x, y + 2 - 1, grid.getSortingDirection() * 16, 16, 16, 16); gui.drawTexture(x, y + 2 - 1, grid.getSortingDirection() * 16, 16, 16, 16);
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
int dir = grid.getSortingDirection(); int dir = grid.getSortingDirection();
if (dir == TileGrid.SORTING_DIRECTION_ASCENDING) if (dir == TileGrid.SORTING_DIRECTION_ASCENDING) {
{
dir = TileGrid.SORTING_DIRECTION_DESCENDING; dir = TileGrid.SORTING_DIRECTION_DESCENDING;
} } else if (dir == TileGrid.SORTING_DIRECTION_DESCENDING) {
else if (dir == TileGrid.SORTING_DIRECTION_DESCENDING)
{
dir = TileGrid.SORTING_DIRECTION_ASCENDING; dir = TileGrid.SORTING_DIRECTION_ASCENDING;
} }

View File

@@ -6,45 +6,36 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate; import refinedstorage.network.MessageGridSortingUpdate;
import refinedstorage.tile.TileGrid; import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingType extends SideButton public class SideButtonGridSortingType extends SideButton {
{
private TileGrid grid; private TileGrid grid;
public SideButtonGridSortingType(TileGrid grid) public SideButtonGridSortingType(TileGrid grid) {
{
this.grid = grid; this.grid = grid;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.type")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.YELLOW).append(gui.t("sidebutton.refinedstorage:sorting.type")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:sorting.type." + grid.getSortingType())); builder.append(gui.t("sidebutton.refinedstorage:sorting.type." + grid.getSortingType()));
return builder.toString(); return builder.toString();
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
gui.drawTexture(x - 1, y + 2 - 1, grid.getSortingType() * 16, 32, 16, 16); gui.drawTexture(x - 1, y + 2 - 1, grid.getSortingType() * 16, 32, 16, 16);
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
int type = grid.getSortingType(); int type = grid.getSortingType();
if (type == TileGrid.SORTING_TYPE_QUANTITY) if (type == TileGrid.SORTING_TYPE_QUANTITY) {
{
type = TileGrid.SORTING_TYPE_NAME; type = TileGrid.SORTING_TYPE_NAME;
} } else if (type == TileGrid.SORTING_TYPE_NAME) {
else if (type == TileGrid.SORTING_TYPE_NAME)
{
type = TileGrid.SORTING_TYPE_QUANTITY; type = TileGrid.SORTING_TYPE_QUANTITY;
} }

View File

@@ -6,40 +6,32 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageModeToggle; import refinedstorage.network.MessageModeToggle;
import refinedstorage.tile.settings.IModeSetting; import refinedstorage.tile.settings.IModeSetting;
public class SideButtonMode extends SideButton public class SideButtonMode extends SideButton {
{
private IModeSetting mode; private IModeSetting mode;
public SideButtonMode(IModeSetting mode) public SideButtonMode(IModeSetting mode) {
{
this.mode = mode; this.mode = mode;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:mode")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.GREEN).append(gui.t("sidebutton.refinedstorage:mode")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:mode." + (mode.isWhitelist() ? "whitelist" : "blacklist"))); builder.append(gui.t("sidebutton.refinedstorage:mode." + (mode.isWhitelist() ? "whitelist" : "blacklist")));
return builder.toString(); return builder.toString();
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
int tx = 0; int tx = 0;
if (mode.isWhitelist()) if (mode.isWhitelist()) {
{
tx = 0; tx = 0;
} } else if (mode.isBlacklist()) {
else if (mode.isBlacklist())
{
tx = 16; tx = 16;
} }
@@ -47,8 +39,7 @@ public class SideButtonMode extends SideButton
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
RefinedStorage.NETWORK.sendToServer(new MessageModeToggle(mode)); RefinedStorage.NETWORK.sendToServer(new MessageModeToggle(mode));
} }
} }

View File

@@ -6,37 +6,31 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageRedstoneModeUpdate; import refinedstorage.network.MessageRedstoneModeUpdate;
import refinedstorage.tile.settings.IRedstoneModeSetting; import refinedstorage.tile.settings.IRedstoneModeSetting;
public class SideButtonRedstoneMode extends SideButton public class SideButtonRedstoneMode extends SideButton {
{
private IRedstoneModeSetting setting; private IRedstoneModeSetting setting;
public SideButtonRedstoneMode(IRedstoneModeSetting setting) public SideButtonRedstoneMode(IRedstoneModeSetting setting) {
{
this.setting = setting; this.setting = setting;
} }
@Override @Override
public String getTooltip(GuiBase gui) public String getTooltip(GuiBase gui) {
{
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(TextFormatting.RED).append(gui.t("sidebutton.refinedstorage:redstone_mode")).append(TextFormatting.RESET).append("\n"); builder.append(TextFormatting.RED).append(gui.t("sidebutton.refinedstorage:redstone_mode")).append(TextFormatting.RESET).append("\n");
builder.append(gui.t("sidebutton.refinedstorage:redstone_mode." + setting.getRedstoneMode().id)); builder.append(gui.t("sidebutton.refinedstorage:redstone_mode." + setting.getRedstoneMode().id));
return builder.toString(); return builder.toString();
} }
@Override @Override
public void draw(GuiBase gui, int x, int y) public void draw(GuiBase gui, int x, int y) {
{
gui.bindTexture("icons.png"); gui.bindTexture("icons.png");
gui.drawTexture(x, y + 1, setting.getRedstoneMode().id * 16, 0, 16, 16); gui.drawTexture(x, y + 1, setting.getRedstoneMode().id * 16, 0, 16, 16);
} }
@Override @Override
public void actionPerformed() public void actionPerformed() {
{
RefinedStorage.NETWORK.sendToServer(new MessageRedstoneModeUpdate(setting)); RefinedStorage.NETWORK.sendToServer(new MessageRedstoneModeUpdate(setting));
} }
} }

View File

@@ -6,56 +6,45 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.ITextComponent;
public class InventorySimple implements IInventory public class InventorySimple implements IInventory {
{
private TileEntity tile; private TileEntity tile;
private ItemStack[] inventory; private ItemStack[] inventory;
private int size; private int size;
private String name; private String name;
public InventorySimple(String name, int size) public InventorySimple(String name, int size) {
{
this.name = name; this.name = name;
this.size = size; this.size = size;
this.inventory = new ItemStack[size]; this.inventory = new ItemStack[size];
} }
public InventorySimple(String name, int size, TileEntity tile) public InventorySimple(String name, int size, TileEntity tile) {
{
this(name, size); this(name, size);
this.tile = tile; this.tile = tile;
} }
@Override @Override
public int getSizeInventory() public int getSizeInventory() {
{
return size; return size;
} }
@Override @Override
public ItemStack getStackInSlot(int slotIndex) public ItemStack getStackInSlot(int slotIndex) {
{
return inventory[slotIndex]; return inventory[slotIndex];
} }
@Override @Override
public ItemStack decrStackSize(int slot, int amount) public ItemStack decrStackSize(int slot, int amount) {
{
ItemStack stack = getStackInSlot(slot); ItemStack stack = getStackInSlot(slot);
if (stack != null) if (stack != null) {
{ if (stack.stackSize <= amount) {
if (stack.stackSize <= amount)
{
setInventorySlotContents(slot, null); setInventorySlotContents(slot, null);
} } else {
else
{
stack = stack.splitStack(amount); stack = stack.splitStack(amount);
if (stack.stackSize == 0) if (stack.stackSize == 0) {
{
setInventorySlotContents(slot, null); setInventorySlotContents(slot, null);
} }
} }
@@ -65,12 +54,10 @@ public class InventorySimple implements IInventory
} }
@Override @Override
public ItemStack removeStackFromSlot(int slot) public ItemStack removeStackFromSlot(int slot) {
{
ItemStack stack = getStackInSlot(slot); ItemStack stack = getStackInSlot(slot);
if (stack != null) if (stack != null) {
{
setInventorySlotContents(slot, null); setInventorySlotContents(slot, null);
} }
@@ -78,10 +65,8 @@ public class InventorySimple implements IInventory
} }
@Override @Override
public void setInventorySlotContents(int slot, ItemStack stack) public void setInventorySlotContents(int slot, ItemStack stack) {
{ if (stack != null && stack.stackSize > getInventoryStackLimit()) {
if (stack != null && stack.stackSize > getInventoryStackLimit())
{
stack.stackSize = getInventoryStackLimit(); stack.stackSize = getInventoryStackLimit();
} }
@@ -89,79 +74,65 @@ public class InventorySimple implements IInventory
} }
@Override @Override
public String getName() public String getName() {
{
return this.name; return this.name;
} }
@Override @Override
public boolean hasCustomName() public boolean hasCustomName() {
{
return true; return true;
} }
@Override @Override
public int getInventoryStackLimit() public int getInventoryStackLimit() {
{
return 64; return 64;
} }
@Override @Override
public boolean isUseableByPlayer(EntityPlayer player) public boolean isUseableByPlayer(EntityPlayer player) {
{
return true; return true;
} }
@Override @Override
public boolean isItemValidForSlot(int slot, ItemStack stack) public boolean isItemValidForSlot(int slot, ItemStack stack) {
{
return true; return true;
} }
@Override @Override
public void markDirty() public void markDirty() {
{ if (tile != null) {
if (tile != null)
{
tile.markDirty(); tile.markDirty();
} }
} }
@Override @Override
public void openInventory(EntityPlayer playerIn) public void openInventory(EntityPlayer playerIn) {
{
} }
@Override @Override
public void closeInventory(EntityPlayer playerIn) public void closeInventory(EntityPlayer playerIn) {
{
} }
@Override @Override
public int getField(int id) public int getField(int id) {
{
return 0; return 0;
} }
@Override @Override
public void setField(int id, int value) public void setField(int id, int value) {
{
} }
@Override @Override
public int getFieldCount() public int getFieldCount() {
{
return 0; return 0;
} }
@Override @Override
public void clear() public void clear() {
{
} }
@Override @Override
public ITextComponent getDisplayName() public ITextComponent getDisplayName() {
{
return null; return null;
} }
} }

15
src/main/java/refinedstorage/item/ItemBase.java Normal file → Executable file
View File

@@ -4,28 +4,23 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
public abstract class ItemBase extends Item public abstract class ItemBase extends Item {
{
private String name; private String name;
public ItemBase(String name) public ItemBase(String name) {
{
this.name = name; this.name = name;
setCreativeTab(RefinedStorage.TAB); setCreativeTab(RefinedStorage.TAB);
} }
@Override @Override
public String getUnlocalizedName() public String getUnlocalizedName() {
{
return "item." + RefinedStorage.ID + ":" + name; return "item." + RefinedStorage.ID + ":" + name;
} }
@Override @Override
public String getUnlocalizedName(ItemStack stack) public String getUnlocalizedName(ItemStack stack) {
{ if (getHasSubtypes()) {
if (getHasSubtypes())
{
return getUnlocalizedName() + "." + stack.getItemDamage(); return getUnlocalizedName() + "." + stack.getItemDamage();
} }

9
src/main/java/refinedstorage/item/ItemBlockBase.java Normal file → Executable file
View File

@@ -4,16 +4,13 @@ import net.minecraft.block.Block;
import net.minecraft.item.ItemColored; import net.minecraft.item.ItemColored;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public abstract class ItemBlockBase extends ItemColored public abstract class ItemBlockBase extends ItemColored {
{ public ItemBlockBase(Block block) {
public ItemBlockBase(Block block)
{
super(block, true); super(block, true);
} }
@Override @Override
public String getUnlocalizedName(ItemStack stack) public String getUnlocalizedName(ItemStack stack) {
{
return getUnlocalizedName() + "." + stack.getItemDamage(); return getUnlocalizedName() + "." + stack.getItemDamage();
} }
} }

Some files were not shown because too many files have changed in this diff Show More