1
.gitignore
vendored
Normal file → Executable file
@@ -13,3 +13,4 @@ run/
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
out/
|
||||
50
CHANGELOG.md
Executable 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
@@ -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
@@ -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
@@ -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.bat
vendored
Normal file → Executable file
BIN
logo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.3 KiB |
0
screenshots/crafting_grid.png
Normal file → Executable file
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
0
screenshots/interface.png
Normal file → Executable file
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
screenshots/overview.png
Normal file → Executable file
|
Before Width: | Height: | Size: 558 KiB After Width: | Height: | Size: 558 KiB |
0
screenshots/relays.png
Normal file → Executable file
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
0
screenshots/storage_block.png
Normal file → Executable 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
1
src/main/java/cofh/api/energy/EnergyStorage.java
Normal file → Executable 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
25
src/main/java/powercrystals/minefactoryreloaded/api/IDeepStorageUnit.java
Executable 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
16
src/main/java/refinedstorage/block/BlockConstructor.java
Normal file → Executable 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
@@ -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
@@ -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
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
33
src/main/java/refinedstorage/block/BlockDiskDrive.java
Executable 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;
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
16
src/main/java/refinedstorage/block/BlockExternalStorage.java
Normal file → Executable 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
@@ -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
@@ -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
@@ -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
@@ -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());
|
||||
}
|
||||
|
||||
6
src/main/java/refinedstorage/block/BlockMachineCasing.java
Normal file → Executable 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
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
15
src/main/java/refinedstorage/block/EnumControllerType.java
Normal file → Executable 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
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
26
src/main/java/refinedstorage/container/ContainerConstructor.java
Normal file → Executable 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);
|
||||
}
|
||||
|
||||
6
src/main/java/refinedstorage/container/ContainerController.java
Normal file → Executable 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);
|
||||
|
||||
14
src/main/java/refinedstorage/container/ContainerDestructor.java
Normal file → Executable 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);
|
||||
}
|
||||
}
|
||||
|
||||
6
src/main/java/refinedstorage/container/ContainerDetector.java
Normal file → Executable 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));
|
||||
|
||||
52
src/main/java/refinedstorage/container/ContainerDiskDrive.java
Executable 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;
|
||||
}
|
||||
}
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
9
src/main/java/refinedstorage/container/ContainerExporter.java
Normal file → Executable 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));
|
||||
}
|
||||
|
||||
|
||||
60
src/main/java/refinedstorage/container/ContainerGrid.java
Normal file → Executable 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
src/main/java/refinedstorage/container/ContainerImporter.java
Normal file → Executable 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));
|
||||
}
|
||||
|
||||
|
||||
38
src/main/java/refinedstorage/container/ContainerInterface.java
Normal file → Executable 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();
|
||||
}
|
||||
}
|
||||
|
||||
6
src/main/java/refinedstorage/container/ContainerRelay.java
Normal file → Executable 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);
|
||||
|
||||
32
src/main/java/refinedstorage/container/ContainerSolderer.java
Normal file → Executable 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();
|
||||
}
|
||||
}
|
||||
|
||||
17
src/main/java/refinedstorage/container/ContainerStorage.java
Normal file → Executable 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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
9
src/main/java/refinedstorage/container/slot/BasicItemValidator.java
Normal file → Executable 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();
|
||||
}
|
||||
}
|
||||
|
||||
5
src/main/java/refinedstorage/container/slot/IItemValidator.java
Normal file → Executable 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);
|
||||
}
|
||||
|
||||
9
src/main/java/refinedstorage/container/slot/SlotDisabled.java
Normal file → Executable 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;
|
||||
}
|
||||
}
|
||||
|
||||
9
src/main/java/refinedstorage/container/slot/SlotFiltered.java
Normal file → Executable 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);
|
||||
}
|
||||
}
|
||||
|
||||
29
src/main/java/refinedstorage/container/slot/SlotGridCraftingResult.java
Normal file → Executable 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);
|
||||
}
|
||||
}
|
||||
|
||||
9
src/main/java/refinedstorage/container/slot/SlotOutput.java
Normal file → Executable 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;
|
||||
}
|
||||
}
|
||||
|
||||
21
src/main/java/refinedstorage/container/slot/SlotSpecimen.java
Normal file → Executable 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;
|
||||
}
|
||||
}
|
||||
|
||||
16
src/main/java/refinedstorage/container/slot/SlotSpecimenItemBlock.java
Executable 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
21
src/main/java/refinedstorage/gui/sidebutton/SideButton.java
Normal file → Executable 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;
|
||||
}
|
||||
|
||||
|
||||
29
src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java
Normal file → Executable 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));
|
||||
}
|
||||
}
|
||||
|
||||
16
src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java
Normal file → Executable 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));
|
||||
}
|
||||
}
|
||||
|
||||
23
src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java
Normal file → Executable 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;
|
||||
}
|
||||
|
||||
|
||||
23
src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java
Normal file → Executable 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;
|
||||
}
|
||||
|
||||
|
||||
23
src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java
Normal file → Executable 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));
|
||||
}
|
||||
}
|
||||
|
||||
16
src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java
Normal file → Executable 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));
|
||||
}
|
||||
}
|
||||
|
||||
85
src/main/java/refinedstorage/inventory/InventorySimple.java
Normal file → Executable 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
@@ -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
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||