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
*.iws
.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)
Copyright © 2015 - 2016 Raoul Van den Berge
Copyright © 2015 - 2016 Refined Storage contributors
Permission is hereby granted, free of charge, to any person
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.
[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"
minecraft {
version = "1.9-12.16.0.1770-1.9"
version = "1.9-12.16.0.1811-1.9"
runDir = "run"
useDepAts = true
mappings = "snapshot_20160312"
@@ -30,7 +30,7 @@ repositories {
}
dependencies {
deobfCompile "mezz.jei:jei_1.9:3.0.+"
deobfCompile "mezz.jei:jei_1.9:3.1.+"
}
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.
*
* @author King Lemming
*
*/
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.
*
* @author King Lemming
*
*/
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}.
*
* @author King Lemming
*
*/
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.
*
* @param container
* ItemStack to be charged.
* @param maxReceive
* Maximum amount of energy to be sent into the item.
* @param simulate
* If TRUE, the charge will only be simulated.
* @param container ItemStack to be charged.
* @param maxReceive 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.
*/
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
* discharged.
*
* @param container
* ItemStack to be discharged.
* @param maxExtract
* Maximum amount of energy to be extracted from the item.
* @param simulate
* If TRUE, the discharge will only be simulated.
* @param container ItemStack to be discharged.
* @param maxExtract 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.
*/
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.
*
* @author King Lemming
*
*/
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}.
*
* @author King Lemming
*
*/
public interface IEnergyProvider extends IEnergyHandler {
/**
* Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider.
*
* @param from
* Orientation the energy is extracted from.
* @param maxExtract
* Maximum amount of energy to extract.
* @param simulate
* If TRUE, the extraction will only be simulated.
* @param from Orientation the energy is extracted from.
* @param maxExtract 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.
*/
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}.
*
* @author King Lemming
*
*/
public interface IEnergyReceiver extends IEnergyHandler {
/**
* Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
*
* @param from
* Orientation the energy is received from.
* @param maxReceive
* Maximum amount of energy to receive.
* @param simulate
* If TRUE, the charge will only be simulated.
* @param from Orientation the energy is received from.
* @param maxReceive 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.
*/
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}.
*
* @author King Lemming
*
*/
public interface IEnergyStorage {
/**
* Adds energy to the storage. Returns quantity of energy that was accepted.
*
* @param maxReceive
* Maximum amount of energy to be inserted.
* @param simulate
* If TRUE, the insertion will only be simulated.
* @param maxReceive Maximum amount of energy to be inserted.
* @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.
*/
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.
*
* @param maxExtract
* Maximum amount of energy to be extracted.
* @param simulate
* If TRUE, the extraction will only be simulated.
* @param maxExtract Maximum amount of energy to be extracted.
* @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.
*/
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.
*
* @author King Lemming
*
*/
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.
*
* <p>
* This class is really meant to summarize how each interface is properly used.
*
* @author King Lemming
*
*/
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")
package cofh.api.energy;
import net.minecraftforge.fml.common.API;
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.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import refinedstorage.item.ItemStorageCell;
import refinedstorage.item.ItemStorageDisk;
import refinedstorage.proxy.CommonProxy;
@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 VERSION = "0.5";
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
public ItemStack getIconItemStack()
{
return new ItemStack(RefinedStorageItems.STORAGE_CELL, 1, ItemStorageCell.TYPE_1K);
public ItemStack getIconItemStack() {
return new ItemStack(RefinedStorageItems.STORAGE_DISK, 1, ItemStorageDisk.TYPE_1K);
}
@Override
public Item getTabIconItem()
{
public Item getTabIconItem() {
return null;
}
};
@@ -45,20 +41,17 @@ public final class RefinedStorage
public static RefinedStorage INSTANCE;
@EventHandler
public void preInit(FMLPreInitializationEvent e)
{
public void preInit(FMLPreInitializationEvent e) {
PROXY.preInit(e);
}
@EventHandler
public void init(FMLInitializationEvent e)
{
public void init(FMLInitializationEvent e) {
PROXY.init(e);
}
@EventHandler
public void postInit(FMLPostInitializationEvent e)
{
public void postInit(FMLPostInitializationEvent 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.*;
public final class RefinedStorageBlocks
{
public final class RefinedStorageBlocks {
public static final BlockController CONTROLLER = new BlockController();
public static final BlockCable CABLE = new BlockCable();
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 BlockImporter IMPORTER = new BlockImporter();
public static final BlockExporter EXPORTER = new BlockExporter();
public static final BlockDetector DETECTOR = new BlockDetector();
public static final BlockMachineCasing MACHINE_CASING = new BlockMachineCasing();
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 BlockConstructor CONSTRUCTOR = new BlockConstructor();
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;
public final class RefinedStorageGui
{
public final class RefinedStorageGui {
public static final int CONTROLLER = 0;
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 EXPORTER = 5;
public static final int DETECTOR = 6;
public static final int SOLDERER = 7;
public static final int WIRELESS_TRANSMITTER = 8;
public static final int DESTRUCTOR = 9;
public static final int CONSTRUCTOR = 10;
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.*;
public final class RefinedStorageItems
{
public static final ItemStorageCell STORAGE_CELL = new ItemStorageCell();
public final class RefinedStorageItems {
public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk();
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 ItemCore CORE = new ItemCore();
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.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks;
import refinedstorage.tile.TileBase;
import refinedstorage.util.InventoryUtils;
public abstract class BlockBase extends Block
{
public abstract class BlockBase extends Block {
public static final PropertyDirection DIRECTION = PropertyDirection.create("direction");
private String name;
public BlockBase(String name)
{
public BlockBase(String name) {
super(Material.rock);
this.name = name;
@@ -35,14 +34,12 @@ public abstract class BlockBase extends Block
}
@Override
public String getUnlocalizedName()
{
public String getUnlocalizedName() {
return "block." + RefinedStorage.ID + ":" + name;
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -50,24 +47,20 @@ public abstract class BlockBase extends Block
}
@Override
public IBlockState getStateFromMeta(int meta)
{
public IBlockState getStateFromMeta(int meta) {
return getDefaultState();
}
@Override
public int getMetaFromState(IBlockState state)
{
public int getMetaFromState(IBlockState state) {
return 0;
}
@Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
{
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase)
{
if (tile instanceof TileBase) {
return state.withProperty(DIRECTION, ((TileBase) tile).getDirection());
}
@@ -75,24 +68,20 @@ public abstract class BlockBase extends Block
}
@Override
public int damageDropped(IBlockState state)
{
public int damageDropped(IBlockState state) {
return getMetaFromState(state);
}
@Override
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
{
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis) {
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase)
{
if (tile instanceof TileBase) {
EnumFacing dir = ((TileBase) tile).getDirection();
int newDir = dir.ordinal() + 1;
if (newDir > EnumFacing.VALUES.length - 1)
{
if (newDir > EnumFacing.VALUES.length - 1) {
newDir = 0;
}
@@ -107,25 +96,29 @@ public abstract class BlockBase extends Block
}
@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);
Block blockPlaced = state.getBlock();
TileEntity tile = world.getTileEntity(pos);
if (tile instanceof TileBase)
{
((TileBase) tile).setDirection(BlockPistonBase.getFacingFromEntity(pos, player));
if (tile instanceof TileBase) {
EnumFacing facing = 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
public void breakBlock(World world, BlockPos pos, IBlockState state)
{
public void breakBlock(World world, BlockPos pos, IBlockState state) {
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());
}

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

@@ -1,5 +1,6 @@
package refinedstorage.block;
import net.minecraft.block.Block;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
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.world.IBlockAccess;
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 EAST = PropertyBool.create("east");
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 DOWN = PropertyBool.create("down");
public BlockCable()
{
public BlockCable() {
super("cable");
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -41,52 +40,47 @@ public class BlockCable extends BlockBase
}
@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)
.withProperty(NORTH, TileCable.hasConnectionWith(world, pos.north()))
.withProperty(EAST, TileCable.hasConnectionWith(world, pos.east()))
.withProperty(SOUTH, TileCable.hasConnectionWith(world, pos.south()))
.withProperty(WEST, TileCable.hasConnectionWith(world, pos.west()))
.withProperty(UP, TileCable.hasConnectionWith(world, pos.up()))
.withProperty(DOWN, TileCable.hasConnectionWith(world, pos.down()));
.withProperty(NORTH, hasConnectionWith(world, pos.north()))
.withProperty(EAST, hasConnectionWith(world, pos.east()))
.withProperty(SOUTH, hasConnectionWith(world, pos.south()))
.withProperty(WEST, hasConnectionWith(world, pos.west()))
.withProperty(UP, hasConnectionWith(world, pos.up()))
.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
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
{
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) {
float pixel = 1F / 16F;
return new AxisAlignedBB(4 * pixel, 4 * pixel, 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel, 1 - 4 * pixel);
}
@Override
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos)
{
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, World world, BlockPos pos) {
return getBoundingBox(state, world, pos);
}
@Override
public boolean hasTileEntity(IBlockState state)
{
return true;
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
return new TileCable();
}
@Override
public boolean isOpaqueCube(IBlockState state)
{
public boolean isOpaqueCube(IBlockState state) {
return false;
}
@Override
public boolean isFullCube(IBlockState state)
{
public boolean isFullCube(IBlockState state) {
return false;
}
}

View File

@@ -6,29 +6,25 @@ 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.TileConstructor;
public class BlockConstructor extends BlockMachine
{
public BlockConstructor()
{
public class BlockConstructor extends BlockMachine {
public BlockConstructor() {
super("constructor");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileConstructor();
}
@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)
{
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.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;
import java.util.List;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.properties.PropertyInteger;
@@ -20,28 +19,25 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
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 PropertyInteger ENERGY = PropertyInteger.create("energy", 0, 8);
public BlockController()
{
public BlockController() {
super("controller");
}
@Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems)
{
for (int i = 0; i <= 1; i++)
{
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
for (int i = 0; i <= 1; i++) {
subItems.add(new ItemStack(item, 1, i));
}
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -51,41 +47,34 @@ public class BlockController extends BlockBase
}
@Override
public IBlockState getStateFromMeta(int meta)
{
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumControllerType.NORMAL : EnumControllerType.CREATIVE);
}
@Override
public int getMetaFromState(IBlockState state)
{
public int getMetaFromState(IBlockState state) {
return state.getValue(TYPE) == EnumControllerType.NORMAL ? 0 : 1;
}
@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)
.withProperty(ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyScaled(8));
}
@Override
public boolean hasTileEntity(IBlockState state)
{
public boolean hasTileEntity(IBlockState state) {
return true;
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileController();
}
@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)
{
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.CONTROLLER, world, pos.getX(), pos.getY(), pos.getZ());
}
@@ -93,22 +82,19 @@ public class BlockController extends BlockBase
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state)
{
public void breakBlock(World world, BlockPos pos, IBlockState state) {
((TileController) world.getTileEntity(pos)).onDestroyed();
super.breakBlock(world, pos, state);
}
@Override
public boolean hasComparatorInputOverride(IBlockState state)
{
public boolean hasComparatorInputOverride(IBlockState state) {
return true;
}
@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);
}
}

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.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.TileDestructor;
public class BlockDestructor extends BlockMachine
{
public BlockDestructor()
{
public class BlockDestructor extends BlockMachine {
public BlockDestructor() {
super("destructor");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileDestructor();
}
@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)
{
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.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.tile.TileDetector;
public class BlockDetector extends BlockMachine
{
public class BlockDetector extends BlockMachine {
public static final PropertyBool POWERED = PropertyBool.create("powered");
public BlockDetector()
{
public BlockDetector() {
super("detector");
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -37,25 +34,21 @@ public class BlockDetector extends BlockMachine
}
@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)
.withProperty(POWERED, ((TileDetector) world.getTileEntity(pos)).isPowered());
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileDetector();
}
@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);
if (detector.getDirection() == side.getOpposite())
{
if (detector.getDirection() == side.getOpposite()) {
return detector.isPowered() ? 15 : 0;
}
@@ -63,22 +56,18 @@ public class BlockDetector extends BlockMachine
}
@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);
}
@Override
public boolean canProvidePower(IBlockState state)
{
public boolean canProvidePower(IBlockState state) {
return true;
}
@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)
{
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.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.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.TileExporter;
public class BlockExporter extends BlockMachine
{
public BlockExporter()
{
public class BlockExporter extends BlockMachine {
public BlockExporter() {
super("exporter");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileExporter();
}
@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)
{
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.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.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.TileExternalStorage;
public class BlockExternalStorage extends BlockMachine
{
public BlockExternalStorage()
{
public class BlockExternalStorage extends BlockMachine {
public BlockExternalStorage() {
super("external_storage");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileExternalStorage();
}
@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)
{
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.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;
import java.util.List;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
@@ -18,33 +17,29 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
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 BlockGrid()
{
public BlockGrid() {
super("grid");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileGrid();
}
@Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems)
{
for (int i = 0; i <= 1; i++)
{
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
for (int i = 0; i <= 1; i++) {
subItems.add(new ItemStack(item, 1, i));
}
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -54,22 +49,18 @@ public class BlockGrid extends BlockMachine
}
@Override
public IBlockState getStateFromMeta(int meta)
{
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumGridType.NORMAL : EnumGridType.CRAFTING);
}
@Override
public int getMetaFromState(IBlockState state)
{
public int getMetaFromState(IBlockState state) {
return state.getValue(TYPE) == EnumGridType.NORMAL ? 0 : 1;
}
@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)
{
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.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.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.TileImporter;
public class BlockImporter extends BlockMachine
{
public BlockImporter()
{
public class BlockImporter extends BlockMachine {
public BlockImporter() {
super("importer");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileImporter();
}
@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)
{
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.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.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.TileInterface;
public class BlockInterface extends BlockMachine
{
public BlockInterface()
{
public class BlockInterface extends BlockMachine {
public BlockInterface() {
super("interface");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileInterface();
}
@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)
{
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.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 refinedstorage.tile.TileMachine;
public abstract class BlockMachine extends BlockBase
{
public abstract class BlockMachine extends BlockBase {
public static final PropertyBool CONNECTED = PropertyBool.create("connected");
public BlockMachine(String name)
{
public BlockMachine(String name) {
super(name);
}
@Override
public boolean hasTileEntity(IBlockState state)
{
public boolean hasTileEntity(IBlockState state) {
return true;
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -34,8 +30,7 @@ public abstract class BlockMachine extends BlockBase
}
@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)
.withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected());
}

View File

@@ -1,9 +1,7 @@
package refinedstorage.block;
public class BlockMachineCasing extends BlockBase
{
public BlockMachineCasing()
{
public class BlockMachineCasing extends BlockBase {
public BlockMachineCasing() {
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.tile.TileRelay;
public class BlockRelay extends BlockMachine
{
public BlockRelay()
{
public class BlockRelay extends BlockMachine {
public BlockRelay() {
super("relay");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileRelay();
}
@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)
{
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.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.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.TileSolderer;
public class BlockSolderer extends BlockMachine
{
public BlockSolderer()
{
public class BlockSolderer extends BlockMachine {
public BlockSolderer() {
super("solderer");
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileSolderer();
}
@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)
{
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.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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
@@ -24,27 +22,25 @@ import refinedstorage.RefinedStorageGui;
import refinedstorage.item.ItemBlockStorage;
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 BlockStorage()
{
public BlockStorage() {
super("storage");
}
@Override
public void getSubBlocks(Item item, CreativeTabs tab, List subItems)
{
for (int i = 0; i <= 4; i++)
{
public void getSubBlocks(Item item, CreativeTabs tab, List subItems) {
for (int i = 0; i <= 4; i++) {
subItems.add(ItemBlockStorage.initNBT(new ItemStack(item, 1, i)));
}
}
@Override
protected BlockStateContainer createBlockState()
{
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[]
{
DIRECTION,
@@ -54,28 +50,23 @@ public class BlockStorage extends BlockMachine
}
@Override
public IBlockState getStateFromMeta(int meta)
{
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(TYPE, EnumStorageType.getById(meta));
}
@Override
public int getMetaFromState(IBlockState state)
{
public int getMetaFromState(IBlockState state) {
return ((EnumStorageType) state.getValue(TYPE)).getId();
}
@Override
public TileEntity createTileEntity(World world, IBlockState state)
{
public TileEntity createTileEntity(World world, IBlockState state) {
return new TileStorage();
}
@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)
{
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.STORAGE, world, pos.getX(), pos.getY(), pos.getZ());
}
@@ -83,21 +74,18 @@ public class BlockStorage extends BlockMachine
}
@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);
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));
}
}
@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>();
ItemStack stack = new ItemStack(RefinedStorageBlocks.STORAGE, 1, RefinedStorageBlocks.STORAGE.getMetaFromState(state));
@@ -114,10 +102,8 @@ public class BlockStorage extends BlockMachine
}
@Override
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
{
if (willHarvest)
{
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) {
if (willHarvest) {
return true;
}
@@ -125,8 +111,7 @@ public class BlockStorage extends BlockMachine
}
@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);
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;
public enum EnumControllerType implements IStringSerializable
{
public enum EnumControllerType implements IStringSerializable {
NORMAL(0, "normal"),
CREATIVE(1, "creative");
private int id;
private String name;
EnumControllerType(int id, String name)
{
EnumControllerType(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String getName()
{
public String getName() {
return name;
}
public int getId()
{
public int getId() {
return id;
}
@Override
public String toString()
{
public String toString() {
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;
public enum EnumGridType implements IStringSerializable
{
public enum EnumGridType implements IStringSerializable {
NORMAL(0, "normal"),
CRAFTING(1, "crafting");
private int id;
private String name;
EnumGridType(int id, String name)
{
EnumGridType(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String getName()
{
public String getName() {
return name;
}
public int getId()
{
public int getId() {
return id;
}
@Override
public String toString()
{
public String toString() {
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;
public enum EnumStorageType implements IStringSerializable
{
public enum EnumStorageType implements IStringSerializable {
TYPE_1K(0, 1000, "1k"),
TYPE_4K(1, 4000, "4k"),
TYPE_16K(2, 16000, "16k"),
@@ -14,41 +13,33 @@ public enum EnumStorageType implements IStringSerializable
private int capacity;
private String name;
EnumStorageType(int id, int capacity, String name)
{
EnumStorageType(int id, int capacity, String name) {
this.id = id;
this.capacity = capacity;
this.name = name;
}
@Override
public String getName()
{
public String getName() {
return name;
}
public int getId()
{
public int getId() {
return id;
}
public int getCapacity()
{
public int getCapacity() {
return capacity;
}
@Override
public String toString()
{
public String toString() {
return name;
}
public static EnumStorageType getById(int id)
{
for (EnumStorageType type : EnumStorageType.values())
{
if (type.getId() == id)
{
public static EnumStorageType getById(int id) {
for (EnumStorageType type : EnumStorageType.values()) {
if (type.getId() == id) {
return type;
}
}

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

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

View File

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

View File

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

View File

@@ -1,13 +1,17 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
import refinedstorage.container.slot.SlotSpecimenItemBlock;
import refinedstorage.tile.TileDestructor;
public class ContainerDestructor extends ContainerBase
{
public ContainerDestructor(EntityPlayer player)
{
public class ContainerDestructor extends ContainerBase {
public ContainerDestructor(EntityPlayer player, TileDestructor destructor) {
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.tile.TileDetector;
public class ContainerDetector extends ContainerBase
{
public ContainerDetector(EntityPlayer player, TileDetector detector)
{
public class ContainerDetector extends ContainerBase {
public ContainerDetector(EntityPlayer player, TileDetector detector) {
super(player);
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.tile.TileExporter;
public class ContainerExporter extends ContainerBase
{
public ContainerExporter(EntityPlayer player, TileExporter exporter)
{
public class ContainerExporter extends ContainerBase {
public ContainerExporter(EntityPlayer player, TileExporter exporter) {
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));
}

View File

@@ -1,42 +1,76 @@
package refinedstorage.container;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import refinedstorage.block.EnumGridType;
import refinedstorage.container.slot.SlotGridCraftingResult;
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;
public ContainerGrid(EntityPlayer player, TileGrid grid)
{
public ContainerGrid(EntityPlayer player, TileGrid grid) {
super(player);
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 y = 106;
for (int i = 0; i < 9; ++i)
{
addSlotToContainer(new Slot(grid.getCraftingInventory(), i, x, y));
for (int i = 0; i < 9; ++i) {
Slot slot = new Slot(grid.getCraftingInventory(), i, x, y);
craftingSlots.add(slot);
addSlotToContainer(slot);
x += 18;
if ((i + 1) % 3 == 0)
{
if ((i + 1) % 3 == 0) {
y += 18;
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.tile.TileImporter;
public class ContainerImporter extends ContainerBase
{
public ContainerImporter(EntityPlayer player, TileImporter importer)
{
public class ContainerImporter extends ContainerBase {
public ContainerImporter(EntityPlayer player, TileImporter importer) {
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));
}

View File

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

View File

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

View File

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

View File

@@ -4,14 +4,19 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import refinedstorage.container.slot.SlotSpecimen;
public class ContainerStorage extends ContainerBase
{
public ContainerStorage(EntityPlayer player, IInventory inventory)
{
public class ContainerStorage extends ContainerBase {
public ContainerStorage(EntityPlayer 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));
}

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.ItemStack;
public class BasicItemValidator implements IItemValidator
{
public class BasicItemValidator implements IItemValidator {
private Item item;
public BasicItemValidator(Item item)
{
public BasicItemValidator(Item item) {
this.item = item;
}
@Override
public boolean isValid(ItemStack stack)
{
public boolean isValid(ItemStack stack) {
return item == stack.getItem();
}
}

View File

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

View File

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

View File

@@ -4,20 +4,17 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class SlotFiltered extends Slot
{
public class SlotFiltered extends Slot {
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);
this.validator = validator;
}
@Override
public boolean isItemValid(ItemStack item)
{
public boolean isItemValid(ItemStack 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.SlotCrafting;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.FMLCommonHandler;
import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.TileGrid;
public class SlotGridCraftingResult extends SlotCrafting
{
public class SlotGridCraftingResult extends SlotCrafting {
private ContainerGrid container;
private IInventory craftingMatrix;
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);
this.container = container;
this.craftingMatrix = craftingMatrix;
this.grid = grid;
}
@Override
public void onPickupFromSlot(EntityPlayer player, ItemStack stack)
{
ItemStack[] matrixSlots = new ItemStack[craftingMatrix.getSizeInventory()];
public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
FMLCommonHandler.instance().firePlayerCraftingEvent(player, stack, craftingMatrix);
for (int i = 0; i < craftingMatrix.getSizeInventory(); ++i)
{
if (craftingMatrix.getStackInSlot(i) != null)
{
matrixSlots[i] = craftingMatrix.getStackInSlot(i).copy();
}
onCrafting(stack);
grid.onCrafted(container);
}
super.onPickupFromSlot(player, stack);
grid.onCrafted(matrixSlots);
public void onShiftClick(EntityPlayer player) {
grid.onCraftedShift(container, player);
}
}

View File

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

View File

@@ -5,42 +5,35 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class SlotSpecimen extends Slot
{
public class SlotSpecimen extends Slot {
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);
this.sizeAllowed = allowSize;
}
@Override
public boolean canTakeStack(EntityPlayer player)
{
public boolean canTakeStack(EntityPlayer player) {
return false;
}
@Override
public boolean isItemValid(ItemStack stack)
{
public boolean isItemValid(ItemStack stack) {
return true;
}
@Override
public void putStack(ItemStack stack)
{
if (stack != null && !sizeAllowed)
{
public void putStack(ItemStack stack) {
if (stack != null && !sizeAllowed) {
stack.stackSize = 1;
}
super.putStack(stack);
}
public boolean isSizeAllowed()
{
public boolean isSizeAllowed() {
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;
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.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
@@ -15,8 +11,12 @@ import org.lwjgl.opengl.GL11;
import refinedstorage.RefinedStorage;
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_HEIGHT = 20;
@@ -28,8 +28,7 @@ public abstract class GuiBase extends GuiContainer
protected int width;
protected int height;
public GuiBase(Container container, int width, int height)
{
public GuiBase(Container container, int width, int height) {
super(container);
this.width = width;
@@ -39,10 +38,8 @@ public abstract class GuiBase extends GuiContainer
}
@Override
public void initGui()
{
if (sideButtons.size() > 0)
{
public void initGui() {
if (sideButtons.size() > 0) {
xSize -= SIDE_BUTTON_WIDTH;
}
@@ -55,44 +52,38 @@ public abstract class GuiBase extends GuiContainer
init(guiLeft, guiTop);
if (sideButtons.size() > 0)
{
if (sideButtons.size() > 0) {
xSize += SIDE_BUTTON_WIDTH;
}
}
@Override
public void updateScreen()
{
public void updateScreen() {
super.updateScreen();
update(guiLeft, guiTop);
}
@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);
drawBackground(guiLeft, guiTop, mouseX, mouseY);
}
@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);
mouseX -= guiLeft;
mouseY -= guiTop;
for (SideButton sideButton : sideButtons)
{
for (SideButton sideButton : sideButtons) {
GL11.glDisable(GL11.GL_LIGHTING);
sideButton.draw(this, sideButton.getX() + 2, sideButton.getY() + 1);
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));
}
}
@@ -101,26 +92,21 @@ public abstract class GuiBase extends GuiContainer
}
@Override
protected void actionPerformed(GuiButton button) throws IOException
{
protected void actionPerformed(GuiButton button) throws IOException {
super.actionPerformed(button);
for (SideButton sideButton : sideButtons)
{
if (sideButton.getId() == button.id)
{
for (SideButton sideButton : sideButtons) {
if (sideButton.getId() == button.id) {
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, "");
}
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);
buttonList.add(button);
@@ -128,8 +114,7 @@ public abstract class GuiBase extends GuiContainer
return button;
}
public void addSideButton(SideButton button)
{
public void addSideButton(SideButton button) {
button.setX(xSize - 1);
button.setY(lastSideButtonY);
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);
}
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;
}
public void bindTexture(String file)
{
public void bindTexture(String 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));
}
public void drawItem(int x, int y, ItemStack stack)
{
drawItem(x, y, stack, false, null);
public void drawItem(int x, int y, ItemStack stack) {
drawItem(x, y, stack, false);
}
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);
}
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;
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);
if (withOverlay)
{
itemRender.renderItemOverlayIntoGUI(font, stack, x, y, message);
if (withOverlay) {
drawItemOverlay(stack, message, x, y);
}
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);
}
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);
fontRendererObj.drawString(message, x, y, color);
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);
drawHoveringText(Arrays.asList(message.split("\n")), x, y);
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);
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);
}
public String t(String name, Object... format)
{
public String t(String name, Object... 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.util.InventoryUtils;
public class GuiConstructor extends GuiBase
{
public class GuiConstructor extends GuiBase {
private TileConstructor constructor;
public GuiConstructor(ContainerConstructor container, TileConstructor constructor)
{
public GuiConstructor(ContainerConstructor container, TileConstructor constructor) {
super(container, 176, 137);
this.constructor = constructor;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(constructor));
addSideButton(new SideButtonCompare(constructor, InventoryUtils.COMPARE_DAMAGE));
@@ -27,21 +24,18 @@ public class GuiConstructor extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:constructor"));
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.state.IBlockState;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.translation.I18n;
import refinedstorage.container.ContainerController;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileController;
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 int barX = 8;
@@ -20,42 +26,42 @@ public class GuiController extends GuiBase
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);
this.controller = controller;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(controller));
}
@Override
public void update(int x, int y)
{
scrollbar.setCanScroll(getRows() > getVisibleRows());
public void update(int x, int y) {
scrollbar.setCanScroll(getRows() > VISIBLE_ROWS);
}
@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");
drawTexture(x, y, 0, 0, width, height);
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);
}
private int calculateOffsetOnScale(int pos, float scale) {
float multiplier = (pos / scale);
return (int) multiplier;
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
scrollbar.update(this, mouseX, mouseY);
drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId()));
@@ -68,53 +74,62 @@ public class GuiController extends GuiBase
RenderHelper.enableGUIStandardItemLighting();
for (int i = 0; i < 4; ++i)
{
if (slot < controller.getMachines().size())
{
TileMachine machine = controller.getMachines().get(slot);
List<TileMachine> machines = new ArrayList<TileMachine>(controller.getMachines());
TileMachine machineHovering = null;
for (int i = 0; i < 4; ++i) {
if (slot < machines.size()) {
TileMachine machine = machines.get(slot);
IBlockState machineState = machine.getWorld().getBlockState(machine.getPos());
Block machineBlock = machineState.getBlock();
ItemStack machineStack = new ItemStack(machineBlock, 1, machineBlock.getMetaFromState(machineState));
drawItem(x, y, machineStack);
drawString(x + 21, y + 5, t("misc.refinedstorage:energy_usage_minimal", machine.getEnergyUsage()));
drawItem(x, y + 5, machineStack);
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;
y += 30;
}
else
{
} else {
x += 60;
}
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)));
}
}
public int getOffset()
{
public int getOffset() {
return (int) (scrollbar.getCurrentScroll() / 59f * (float) getRows());
}
private int getRows()
{
private int getRows() {
int max = (int) Math.ceil((float) controller.getMachines().size() / (float) 2);
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;
import refinedstorage.container.ContainerDestructor;
import refinedstorage.gui.sidebutton.SideButtonCompare;
import refinedstorage.gui.sidebutton.SideButtonMode;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileDestructor;
import refinedstorage.util.InventoryUtils;
public class GuiDestructor extends GuiBase
{
public class GuiDestructor extends GuiBase {
private TileDestructor destructor;
public GuiDestructor(ContainerDestructor container, TileDestructor destructor)
{
super(container, 176, 131);
public GuiDestructor(ContainerDestructor container, TileDestructor destructor) {
super(container, 176, 137);
this.destructor = destructor;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(destructor));
addSideButton(new SideButtonMode(destructor));
addSideButton(new SideButtonCompare(destructor, InventoryUtils.COMPARE_DAMAGE));
addSideButton(new SideButtonCompare(destructor, InventoryUtils.COMPARE_NBT));
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
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;
import com.google.common.primitives.Ints;
import java.io.IOException;
import net.minecraft.client.gui.GuiTextField;
import refinedstorage.RefinedStorage;
import refinedstorage.container.ContainerDetector;
@@ -11,22 +10,21 @@ import refinedstorage.network.MessageDetectorAmountUpdate;
import refinedstorage.tile.TileDetector;
import refinedstorage.util.InventoryUtils;
public class GuiDetector extends GuiBase
{
import java.io.IOException;
public class GuiDetector extends GuiBase {
private TileDetector detector;
private GuiTextField amountField;
public GuiDetector(ContainerDetector container, TileDetector detector)
{
public GuiDetector(ContainerDetector container, TileDetector detector) {
super(container, 176, 137);
this.detector = detector;
}
@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_NBT));
@@ -42,13 +40,11 @@ public class GuiDetector extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
@@ -57,26 +53,20 @@ public class GuiDetector extends GuiBase
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:detector"));
drawString(7, 43, t("container.inventory"));
}
@Override
protected void keyTyped(char character, int keyCode) throws IOException
{
if (!checkHotbarKeys(keyCode) && amountField.textboxKeyTyped(character, keyCode))
{
protected void keyTyped(char character, int keyCode) throws IOException {
if (!checkHotbarKeys(keyCode) && amountField.textboxKeyTyped(character, keyCode)) {
Integer result = Ints.tryParse(amountField.getText());
if (result != null)
{
if (result != null) {
RefinedStorage.NETWORK.sendToServer(new MessageDetectorAmountUpdate(detector, result));
}
}
else
{
} else {
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.util.InventoryUtils;
public class GuiExporter extends GuiBase
{
public class GuiExporter extends GuiBase {
private TileExporter exporter;
public GuiExporter(ContainerExporter container, TileExporter exporter)
{
public GuiExporter(ContainerExporter container, TileExporter exporter) {
super(container, 176, 137);
this.exporter = exporter;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(exporter));
addSideButton(new SideButtonCompare(exporter, InventoryUtils.COMPARE_DAMAGE));
@@ -27,21 +24,18 @@ public class GuiExporter extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:exporter"));
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;
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.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
@@ -19,35 +14,39 @@ import refinedstorage.gui.sidebutton.SideButtonGridSortingDirection;
import refinedstorage.gui.sidebutton.SideButtonGridSortingType;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.network.MessageGridCraftingClear;
import refinedstorage.network.MessageGridCraftingPush;
import refinedstorage.network.MessageStoragePull;
import refinedstorage.network.MessageStoragePush;
import refinedstorage.storage.StorageItem;
import refinedstorage.tile.TileController;
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 TileGrid grid;
private List<StorageItem> items = new ArrayList<StorageItem>();
private GuiTextField searchField;
private int hoveringSlotId;
private int hoveringId;
private int hoveringSlot;
private int hoveringItemId;
private Scrollbar scrollbar = new Scrollbar(174, 20, 12, 70);
private Scrollbar scrollbar;
public GuiGrid(ContainerGrid container, TileGrid grid)
{
super(container, 193, grid.getType() == EnumGridType.CRAFTING ? 256 : 190);
public GuiGrid(ContainerGrid container, TileGrid grid) {
super(container, 193, grid.getType() == EnumGridType.CRAFTING ? 256 : 208);
this.container = container;
this.grid = grid;
this.scrollbar = new Scrollbar(174, 20, 12, grid.getType() == EnumGridType.CRAFTING ? 70 : 88);
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(grid));
addSideButton(new SideButtonGridSortingDirection(grid));
@@ -62,47 +61,76 @@ public class GuiGrid extends GuiBase
}
@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());
}
public int getOffset()
{
public int getOffset() {
return (int) (scrollbar.getCurrentScroll() / 70f * (float) getRows());
}
public int getVisibleRows()
{
return 4;
}
public int getRows()
{
if (!grid.isConnected())
{
return 0;
}
int max = (int) Math.ceil((float) getItems().size() / (float) 9);
public int getRows() {
int max = (int) Math.ceil((float) items.size() / (float) 9);
return max < 0 ? 0 : max;
}
private boolean isHoveringOverValidSlot(List<StorageItem> items)
{
return grid.isConnected() && isHoveringOverSlot() && hoveringSlotId < items.size();
private boolean isHoveringOverItemInSlot() {
return grid.isConnected() && isHoveringOverSlot() && hoveringSlot < items.size();
}
private boolean isHoveringOverSlot()
{
return hoveringSlotId >= 0;
private boolean isHoveringOverSlot() {
return hoveringSlot >= 0;
}
public boolean isHoveringOverClear(int mouseX, int mouseY)
{
if (grid.getType() == EnumGridType.CRAFTING)
{
public boolean isHoveringOverClear(int mouseX, int mouseY) {
if (grid.getType() == EnumGridType.CRAFTING) {
return inBounds(81, 105, 7, 7, mouseX, mouseY);
}
@@ -110,14 +138,10 @@ public class GuiGrid extends GuiBase
}
@Override
public void drawBackground(int x, int y, int mouseX, int mouseY)
{
if (grid.getType() == EnumGridType.CRAFTING)
{
public void drawBackground(int x, int y, int mouseX, int mouseY) {
if (grid.getType() == EnumGridType.CRAFTING) {
bindTexture("gui/crafting_grid.png");
}
else
{
} else {
bindTexture("gui/grid.png");
}
@@ -129,69 +153,60 @@ public class GuiGrid extends GuiBase
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
scrollbar.update(this, mouseX, mouseY);
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, grid.getType() == EnumGridType.CRAFTING ? 163 : 96, t("container.inventory"));
drawString(7, grid.getType() == EnumGridType.CRAFTING ? 163 : 113, t("container.inventory"));
int x = 8;
int y = 20;
List<StorageItem> items = getItems();
hoveringSlotId = -1;
hoveringSlot = -1;
int slot = getOffset() * 9;
RenderHelper.enableGUIStandardItemLighting();
for (int i = 0; i < 9 * getVisibleRows(); ++i)
{
if (slot < items.size())
{
for (int i = 0; i < 9 * getVisibleRows(); ++i) {
if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) {
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();
String text;
if (qty >= 1000000)
{
text = String.valueOf((int) Math.floor(qty / 1000000)) + "M";
}
else if (qty >= 1000)
{
text = String.valueOf((int) Math.floor(qty / 1000)) + "K";
}
else if (qty == 1)
{
if (qty >= 1000000) {
text = String.format("%.1f", (float) qty / 1000000).replace(",", ".").replace(".0", "") + "M";
} else if (qty >= 1000) {
text = String.format("%.1f", (float) qty / 1000).replace(",", ".").replace(".0", "") + "K";
} else if (qty == 1) {
text = null;
} else {
text = String.valueOf(qty);
}
else
{
if (hoveringSlot == slot && GuiScreen.isShiftKeyDown() && qty > 1) {
text = String.valueOf(qty);
}
drawItem(x, y, items.get(slot).toItemStack(), true, text);
}
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();
}
if (inBounds(x, y, 16, 16, mouseX, mouseY) || !grid.isConnected()) {
int color = grid.isConnected() ? -2130706433 : 0xFF5B5B5B;
GlStateManager.disableLighting();
@@ -209,149 +224,75 @@ public class GuiGrid extends GuiBase
x += 18;
if ((i + 1) % 9 == 0)
{
if ((i + 1) % 9 == 0) {
x = 8;
y += 18;
}
}
if (isHoveringOverValidSlot(items))
{
drawTooltip(mouseX, mouseY, items.get(hoveringSlotId).toItemStack());
if (isHoveringOverItemInSlot()) {
drawTooltip(mouseX, mouseY, items.get(hoveringSlot).toItemStack());
}
if (isHoveringOverClear(mouseX, mouseY))
{
if (isHoveringOverClear(mouseX, mouseY)) {
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
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)
{
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
{
public void mouseClicked(int mouseX, int mouseY, int clickedButton) throws IOException {
super.mouseClicked(mouseX, mouseY, clickedButton);
boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop);
if (grid.isConnected())
{
if (grid.isConnected()) {
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));
}
else if (isHoveringOverValidSlot(getItems()) && container.getPlayer().inventory.getItemStack() == null)
{
} else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) {
boolean half = clickedButton == 1;
boolean shift = GuiScreen.isShiftKeyDown();
boolean one = clickedButton == 2;
RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringId, half, one, shift));
}
else if (clickedClear)
{
RefinedStorage.NETWORK.sendToServer(new MessageStoragePull(controller.getPos().getX(), controller.getPos().getY(), controller.getPos().getZ(), hoveringItemId, half, one, shift));
} else if (clickedClear) {
RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingClear(grid));
}
else
{
for (Slot slot : container.getPlayerInventorySlots())
{
if (inBounds(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX - guiLeft, mouseY - guiTop))
{
if (GuiScreen.isShiftKeyDown())
{
} else {
for (Slot slot : container.getPlayerInventorySlots()) {
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));
}
}
}
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));
}
}
@Override
protected void keyTyped(char character, int keyCode) throws IOException
{
if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode))
{
}
else
{
protected void keyTyped(char character, int keyCode) throws IOException {
if (!checkHotbarKeys(keyCode) && searchField.textboxKeyTyped(character, keyCode)) {
} else {
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.tile.*;
public class GuiHandler implements IGuiHandler
{
private Container getContainer(int ID, EntityPlayer player, TileEntity tile)
{
switch (ID)
{
public class GuiHandler implements IGuiHandler {
private Container getContainer(int ID, EntityPlayer player, TileEntity tile) {
switch (ID) {
case RefinedStorageGui.CONTROLLER:
return new ContainerController(player);
case RefinedStorageGui.GRID:
return new ContainerGrid(player, (TileGrid) tile);
case RefinedStorageGui.DRIVE:
return new ContainerDrive(player, (TileDrive) tile);
case RefinedStorageGui.DISK_DRIVE:
return new ContainerDiskDrive(player, (TileDiskDrive) tile);
case RefinedStorageGui.IMPORTER:
return new ContainerImporter(player, (TileImporter) tile);
case RefinedStorageGui.EXPORTER:
@@ -31,10 +28,8 @@ public class GuiHandler implements IGuiHandler
return new ContainerDetector(player, (TileDetector) tile);
case RefinedStorageGui.SOLDERER:
return new ContainerSolderer(player, (TileSolderer) tile);
case RefinedStorageGui.WIRELESS_TRANSMITTER:
return new ContainerWirelessTransmitter(player, (TileWirelessTransmitter) tile);
case RefinedStorageGui.DESTRUCTOR:
return new ContainerDestructor(player);
return new ContainerDestructor(player, (TileDestructor) tile);
case RefinedStorageGui.CONSTRUCTOR:
return new ContainerConstructor(player, (TileConstructor) tile);
case RefinedStorageGui.STORAGE:
@@ -49,24 +44,21 @@ public class GuiHandler implements IGuiHandler
}
@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)));
}
@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));
switch (ID)
{
switch (ID) {
case RefinedStorageGui.CONTROLLER:
return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile);
case RefinedStorageGui.GRID:
return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile);
case RefinedStorageGui.DRIVE:
return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile, "gui/drive.png");
case RefinedStorageGui.DISK_DRIVE:
return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile, "gui/disk_drive.png");
case RefinedStorageGui.IMPORTER:
return new GuiImporter((ContainerImporter) getContainer(ID, player, tile), (TileImporter) tile);
case RefinedStorageGui.EXPORTER:
@@ -75,8 +67,6 @@ public class GuiHandler implements IGuiHandler
return new GuiDetector((ContainerDetector) getContainer(ID, player, tile), (TileDetector) tile);
case RefinedStorageGui.SOLDERER:
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:
return new GuiDestructor((ContainerDestructor) getContainer(ID, player, tile), (TileDestructor) tile);
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.util.InventoryUtils;
public class GuiImporter extends GuiBase
{
public class GuiImporter extends GuiBase {
private TileImporter importer;
public GuiImporter(ContainerImporter container, TileImporter importer)
{
public GuiImporter(ContainerImporter container, TileImporter importer) {
super(container, 176, 137);
this.importer = importer;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(importer));
addSideButton(new SideButtonMode(importer));
@@ -30,21 +27,18 @@ public class GuiImporter extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:importer"));
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.util.InventoryUtils;
public class GuiInterface extends GuiBase
{
public class GuiInterface extends GuiBase {
private TileInterface tile;
public GuiInterface(ContainerInterface container, TileInterface tile)
{
public GuiInterface(ContainerInterface container, TileInterface tile) {
super(container, 176, 218);
this.tile = tile;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(tile));
addSideButton(new SideButtonCompare(tile, InventoryUtils.COMPARE_DAMAGE));
@@ -27,32 +24,20 @@ public class GuiInterface extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@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, 42, t("gui.refinedstorage:interface.export"));
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.tile.TileRelay;
public class GuiRelay extends GuiBase
{
public class GuiRelay extends GuiBase {
private TileRelay relay;
public GuiRelay(ContainerRelay container, TileRelay relay)
{
public GuiRelay(ContainerRelay container, TileRelay relay) {
super(container, 176, 131);
this.relay = relay;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(relay));
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
drawTexture(x, y, 0, 0, width, height);
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:relay"));
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;
import net.minecraft.inventory.Container;
import refinedstorage.container.ContainerSolderer;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.TileSolderer;
public class GuiSolderer extends GuiBase
{
public class GuiSolderer extends GuiBase {
private TileSolderer solderer;
public GuiSolderer(Container container, TileSolderer solderer)
{
public GuiSolderer(ContainerSolderer container, TileSolderer solderer) {
super(container, 176, 177);
this.solderer = solderer;
}
@Override
public void init(int x, int y)
{
public void init(int x, int y) {
addSideButton(new SideButtonRedstoneMode(solderer));
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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");
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);
}
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:solderer"));
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;
import com.google.common.primitives.Ints;
import java.io.IOException;
import net.minecraft.client.gui.GuiTextField;
import refinedstorage.container.ContainerStorage;
import refinedstorage.gui.sidebutton.SideButtonCompare;
@@ -10,8 +9,9 @@ import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.storage.IStorageGui;
import refinedstorage.util.InventoryUtils;
public class GuiStorage extends GuiBase
{
import java.io.IOException;
public class GuiStorage extends GuiBase {
private IStorageGui gui;
private String texture;
@@ -22,34 +22,28 @@ public class GuiStorage extends GuiBase
private int barWidth = 16;
private int barHeight = 58;
public GuiStorage(ContainerStorage container, IStorageGui gui, String texture)
{
public GuiStorage(ContainerStorage container, IStorageGui gui, String texture) {
super(container, 176, 211);
this.gui = gui;
this.texture = texture;
}
public GuiStorage(ContainerStorage container, IStorageGui gui)
{
public GuiStorage(ContainerStorage container, IStorageGui gui) {
this(container, gui, "gui/storage.png");
}
@Override
public void init(int x, int y)
{
if (gui.getRedstoneModeSetting() != null)
{
public void init(int x, int y) {
if (gui.getRedstoneModeSetting() != null) {
addSideButton(new SideButtonRedstoneMode(gui.getRedstoneModeSetting()));
}
if (gui.getModeSetting() != null)
{
if (gui.getModeSetting() != null) {
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_NBT));
}
@@ -64,38 +58,33 @@ public class GuiStorage extends GuiBase
}
@Override
public void update(int x, int y)
{
public void update(int x, int y) {
}
@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);
drawTexture(x, y, 0, 0, width, height);
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();
}
@Override
public void drawForeground(int mouseX, int mouseY)
{
public void drawForeground(int mouseX, int mouseY) {
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(97, 42, t("misc.refinedstorage:priority"));
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;
if (gui.getCapacity() >= 0)
{
if (gui.getCapacity() >= 0) {
full = (int) ((float) gui.getStored() / (float) gui.getCapacity() * 100f);
}
@@ -104,19 +93,14 @@ public class GuiStorage extends GuiBase
}
@Override
protected void keyTyped(char character, int keyCode) throws IOException
{
if (!checkHotbarKeys(keyCode) && priorityField.textboxKeyTyped(character, keyCode))
{
protected void keyTyped(char character, int keyCode) throws IOException {
if (!checkHotbarKeys(keyCode) && priorityField.textboxKeyTyped(character, keyCode)) {
Integer result = Ints.tryParse(priorityField.getText());
if (result != null)
{
if (result != null) {
gui.onPriorityChanged(result);
}
}
else
{
} else {
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;
public class Scrollbar
{
public class Scrollbar {
private boolean canScroll = true;
private int x;
@@ -15,33 +14,27 @@ public class Scrollbar
private boolean wasClicking = 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.y = y;
this.scrollbarWidth = scrollbarWidth;
this.scrollbarHeight = scrollbarHeight;
}
public void setCanScroll(boolean canScroll)
{
public void setCanScroll(boolean canScroll) {
this.canScroll = canScroll;
}
public boolean canScroll()
{
public boolean canScroll() {
return canScroll;
}
public float getCurrentScroll()
{
public float getCurrentScroll() {
return currentScroll;
}
public void setCurrentScroll(float newCurrentScroll)
{
if (newCurrentScroll < 0)
{
public void setCurrentScroll(float newCurrentScroll) {
if (newCurrentScroll < 0) {
newCurrentScroll = 0;
}
@@ -49,61 +42,49 @@ public class Scrollbar
int max = scrollbarHeight - scrollbarItselfHeight - 3;
if (newCurrentScroll > max)
{
if (newCurrentScroll > max) {
newCurrentScroll = max;
}
currentScroll = newCurrentScroll;
}
public void draw(GuiBase gui)
{
public void draw(GuiBase gui) {
gui.bindTexture("icons.png");
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)
{
if (!canScroll())
{
public void update(GuiBase gui, int mouseX, int mouseY) {
if (!canScroll()) {
isScrolling = false;
wasClicking = false;
currentScroll = 0;
}
else
{
} else {
int wheel = Mouse.getDWheel();
wheel = Math.max(Math.min(-wheel, 1), -1);
float delta = 15;
if (wheel == -1)
{
if (wheel == -1) {
setCurrentScroll(currentScroll - delta);
}
else if (wheel == 1)
{
} else if (wheel == 1) {
setCurrentScroll(currentScroll + delta);
}
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;
}
if (!down)
{
if (!down) {
isScrolling = false;
}
wasClicking = down;
if (isScrolling)
{
if (isScrolling) {
setCurrentScroll(mouseY - 20);
}
}

View File

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

View File

@@ -7,30 +7,24 @@ import refinedstorage.network.MessageCompareUpdate;
import refinedstorage.tile.settings.ICompareSetting;
import refinedstorage.util.InventoryUtils;
public class SideButtonCompare extends SideButton
{
public class SideButtonCompare extends SideButton {
private ICompareSetting setting;
private int mask;
public SideButtonCompare(ICompareSetting setting, int mask)
{
public SideButtonCompare(ICompareSetting setting, int mask) {
this.setting = setting;
this.mask = mask;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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"));
}
else
{
} else {
builder.append(gui.t("misc.refinedstorage:no"));
}
@@ -38,18 +32,14 @@ public class SideButtonCompare extends SideButton
}
@Override
public void draw(GuiBase gui, int x, int y)
{
public void draw(GuiBase gui, int x, int y) {
gui.bindTexture("icons.png");
int ty = 0;
if (mask == InventoryUtils.COMPARE_DAMAGE)
{
if (mask == InventoryUtils.COMPARE_DAMAGE) {
ty = 80;
}
else if (mask == InventoryUtils.COMPARE_NBT)
{
} else if (mask == InventoryUtils.COMPARE_NBT) {
ty = 48;
}
@@ -59,8 +49,7 @@ public class SideButtonCompare extends SideButton
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
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.tile.TileDetector;
public class SideButtonDetectorMode extends SideButton
{
public class SideButtonDetectorMode extends SideButton {
private TileDetector detector;
public SideButtonDetectorMode(TileDetector detector)
{
public SideButtonDetectorMode(TileDetector detector) {
this.detector = detector;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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()));
return builder.toString();
}
@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));
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
RefinedStorage.NETWORK.sendToServer(new MessageDetectorModeUpdate(detector));
}
}

View File

@@ -6,45 +6,36 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate;
import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingDirection extends SideButton
{
public class SideButtonGridSortingDirection extends SideButton {
private TileGrid grid;
public SideButtonGridSortingDirection(TileGrid grid)
{
public SideButtonGridSortingDirection(TileGrid grid) {
this.grid = grid;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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()));
return builder.toString();
}
@Override
public void draw(GuiBase gui, int x, int y)
{
public void draw(GuiBase gui, int x, int y) {
gui.bindTexture("icons.png");
gui.drawTexture(x, y + 2 - 1, grid.getSortingDirection() * 16, 16, 16, 16);
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
int dir = grid.getSortingDirection();
if (dir == TileGrid.SORTING_DIRECTION_ASCENDING)
{
if (dir == TileGrid.SORTING_DIRECTION_ASCENDING) {
dir = TileGrid.SORTING_DIRECTION_DESCENDING;
}
else if (dir == TileGrid.SORTING_DIRECTION_DESCENDING)
{
} else if (dir == TileGrid.SORTING_DIRECTION_DESCENDING) {
dir = TileGrid.SORTING_DIRECTION_ASCENDING;
}

View File

@@ -6,45 +6,36 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageGridSortingUpdate;
import refinedstorage.tile.TileGrid;
public class SideButtonGridSortingType extends SideButton
{
public class SideButtonGridSortingType extends SideButton {
private TileGrid grid;
public SideButtonGridSortingType(TileGrid grid)
{
public SideButtonGridSortingType(TileGrid grid) {
this.grid = grid;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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()));
return builder.toString();
}
@Override
public void draw(GuiBase gui, int x, int y)
{
public void draw(GuiBase gui, int x, int y) {
gui.bindTexture("icons.png");
gui.drawTexture(x - 1, y + 2 - 1, grid.getSortingType() * 16, 32, 16, 16);
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
int type = grid.getSortingType();
if (type == TileGrid.SORTING_TYPE_QUANTITY)
{
if (type == TileGrid.SORTING_TYPE_QUANTITY) {
type = TileGrid.SORTING_TYPE_NAME;
}
else if (type == TileGrid.SORTING_TYPE_NAME)
{
} else if (type == TileGrid.SORTING_TYPE_NAME) {
type = TileGrid.SORTING_TYPE_QUANTITY;
}

View File

@@ -6,40 +6,32 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageModeToggle;
import refinedstorage.tile.settings.IModeSetting;
public class SideButtonMode extends SideButton
{
public class SideButtonMode extends SideButton {
private IModeSetting mode;
public SideButtonMode(IModeSetting mode)
{
public SideButtonMode(IModeSetting mode) {
this.mode = mode;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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")));
return builder.toString();
}
@Override
public void draw(GuiBase gui, int x, int y)
{
public void draw(GuiBase gui, int x, int y) {
gui.bindTexture("icons.png");
int tx = 0;
if (mode.isWhitelist())
{
if (mode.isWhitelist()) {
tx = 0;
}
else if (mode.isBlacklist())
{
} else if (mode.isBlacklist()) {
tx = 16;
}
@@ -47,8 +39,7 @@ public class SideButtonMode extends SideButton
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
RefinedStorage.NETWORK.sendToServer(new MessageModeToggle(mode));
}
}

View File

@@ -6,37 +6,31 @@ import refinedstorage.gui.GuiBase;
import refinedstorage.network.MessageRedstoneModeUpdate;
import refinedstorage.tile.settings.IRedstoneModeSetting;
public class SideButtonRedstoneMode extends SideButton
{
public class SideButtonRedstoneMode extends SideButton {
private IRedstoneModeSetting setting;
public SideButtonRedstoneMode(IRedstoneModeSetting setting)
{
public SideButtonRedstoneMode(IRedstoneModeSetting setting) {
this.setting = setting;
}
@Override
public String getTooltip(GuiBase gui)
{
public String getTooltip(GuiBase gui) {
StringBuilder builder = new StringBuilder();
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));
return builder.toString();
}
@Override
public void draw(GuiBase gui, int x, int y)
{
public void draw(GuiBase gui, int x, int y) {
gui.bindTexture("icons.png");
gui.drawTexture(x, y + 1, setting.getRedstoneMode().id * 16, 0, 16, 16);
}
@Override
public void actionPerformed()
{
public void actionPerformed() {
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.util.text.ITextComponent;
public class InventorySimple implements IInventory
{
public class InventorySimple implements IInventory {
private TileEntity tile;
private ItemStack[] inventory;
private int size;
private String name;
public InventorySimple(String name, int size)
{
public InventorySimple(String name, int size) {
this.name = name;
this.size = 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.tile = tile;
}
@Override
public int getSizeInventory()
{
public int getSizeInventory() {
return size;
}
@Override
public ItemStack getStackInSlot(int slotIndex)
{
public ItemStack getStackInSlot(int slotIndex) {
return inventory[slotIndex];
}
@Override
public ItemStack decrStackSize(int slot, int amount)
{
public ItemStack decrStackSize(int slot, int amount) {
ItemStack stack = getStackInSlot(slot);
if (stack != null)
{
if (stack.stackSize <= amount)
{
if (stack != null) {
if (stack.stackSize <= amount) {
setInventorySlotContents(slot, null);
}
else
{
} else {
stack = stack.splitStack(amount);
if (stack.stackSize == 0)
{
if (stack.stackSize == 0) {
setInventorySlotContents(slot, null);
}
}
@@ -65,12 +54,10 @@ public class InventorySimple implements IInventory
}
@Override
public ItemStack removeStackFromSlot(int slot)
{
public ItemStack removeStackFromSlot(int slot) {
ItemStack stack = getStackInSlot(slot);
if (stack != null)
{
if (stack != null) {
setInventorySlotContents(slot, null);
}
@@ -78,10 +65,8 @@ public class InventorySimple implements IInventory
}
@Override
public void setInventorySlotContents(int slot, ItemStack stack)
{
if (stack != null && stack.stackSize > getInventoryStackLimit())
{
public void setInventorySlotContents(int slot, ItemStack stack) {
if (stack != null && stack.stackSize > getInventoryStackLimit()) {
stack.stackSize = getInventoryStackLimit();
}
@@ -89,79 +74,65 @@ public class InventorySimple implements IInventory
}
@Override
public String getName()
{
public String getName() {
return this.name;
}
@Override
public boolean hasCustomName()
{
public boolean hasCustomName() {
return true;
}
@Override
public int getInventoryStackLimit()
{
public int getInventoryStackLimit() {
return 64;
}
@Override
public boolean isUseableByPlayer(EntityPlayer player)
{
public boolean isUseableByPlayer(EntityPlayer player) {
return true;
}
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack)
{
public boolean isItemValidForSlot(int slot, ItemStack stack) {
return true;
}
@Override
public void markDirty()
{
if (tile != null)
{
public void markDirty() {
if (tile != null) {
tile.markDirty();
}
}
@Override
public void openInventory(EntityPlayer playerIn)
{
public void openInventory(EntityPlayer playerIn) {
}
@Override
public void closeInventory(EntityPlayer playerIn)
{
public void closeInventory(EntityPlayer playerIn) {
}
@Override
public int getField(int id)
{
public int getField(int id) {
return 0;
}
@Override
public void setField(int id, int value)
{
public void setField(int id, int value) {
}
@Override
public int getFieldCount()
{
public int getFieldCount() {
return 0;
}
@Override
public void clear()
{
public void clear() {
}
@Override
public ITextComponent getDisplayName()
{
public ITextComponent getDisplayName() {
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 refinedstorage.RefinedStorage;
public abstract class ItemBase extends Item
{
public abstract class ItemBase extends Item {
private String name;
public ItemBase(String name)
{
public ItemBase(String name) {
this.name = name;
setCreativeTab(RefinedStorage.TAB);
}
@Override
public String getUnlocalizedName()
{
public String getUnlocalizedName() {
return "item." + RefinedStorage.ID + ":" + name;
}
@Override
public String getUnlocalizedName(ItemStack stack)
{
if (getHasSubtypes())
{
public String getUnlocalizedName(ItemStack stack) {
if (getHasSubtypes()) {
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.ItemStack;
public abstract class ItemBlockBase extends ItemColored
{
public ItemBlockBase(Block block)
{
public abstract class ItemBlockBase extends ItemColored {
public ItemBlockBase(Block block) {
super(block, true);
}
@Override
public String getUnlocalizedName(ItemStack stack)
{
public String getUnlocalizedName(ItemStack stack) {
return getUnlocalizedName() + "." + stack.getItemDamage();
}
}

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