use getActualState()!
This commit is contained in:
@@ -33,6 +33,12 @@ public abstract class BlockBase extends Block
|
|||||||
return "block." + StorageCraft.ID + ":" + name;
|
return "block." + StorageCraft.ID + ":" + name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int damageDropped(IBlockState state)
|
||||||
|
{
|
||||||
|
return getMetaFromState(state);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
||||||
{
|
{
|
||||||
|
@@ -9,6 +9,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import storagecraft.StorageCraft;
|
import storagecraft.StorageCraft;
|
||||||
import storagecraft.StorageCraftGUI;
|
import storagecraft.StorageCraftGUI;
|
||||||
@@ -35,13 +36,19 @@ public class BlockController extends BlockBase implements ITileEntityProvider
|
|||||||
@Override
|
@Override
|
||||||
public IBlockState getStateFromMeta(int meta)
|
public IBlockState getStateFromMeta(int meta)
|
||||||
{
|
{
|
||||||
return getDefaultState().withProperty(ENERGY, meta);
|
return getDefaultState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetaFromState(IBlockState state)
|
public int getMetaFromState(IBlockState state)
|
||||||
{
|
{
|
||||||
return ((Integer) state.getValue(ENERGY));
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{
|
||||||
|
return state.withProperty(ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyScaled(15));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -78,6 +85,6 @@ public class BlockController extends BlockBase implements ITileEntityProvider
|
|||||||
@Override
|
@Override
|
||||||
public int getComparatorInputOverride(World world, BlockPos pos)
|
public int getComparatorInputOverride(World world, BlockPos pos)
|
||||||
{
|
{
|
||||||
return (Integer) world.getBlockState(pos).getValue(ENERGY);
|
return ((TileController) world.getTileEntity(pos)).getEnergyScaled(15);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -55,29 +55,12 @@ public class BlockGrid extends BlockMachine
|
|||||||
@Override
|
@Override
|
||||||
public IBlockState getStateFromMeta(int meta)
|
public IBlockState getStateFromMeta(int meta)
|
||||||
{
|
{
|
||||||
switch (meta)
|
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumGridType.NORMAL : EnumGridType.CRAFTING);
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
return getDefaultState().withProperty(CONNECTED, false).withProperty(TYPE, EnumGridType.NORMAL);
|
|
||||||
case 1:
|
|
||||||
return getDefaultState().withProperty(CONNECTED, false).withProperty(TYPE, EnumGridType.CRAFTING);
|
|
||||||
case 2:
|
|
||||||
return getDefaultState().withProperty(CONNECTED, true).withProperty(TYPE, EnumGridType.NORMAL);
|
|
||||||
case 3:
|
|
||||||
return getDefaultState().withProperty(CONNECTED, true).withProperty(TYPE, EnumGridType.CRAFTING);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetaFromState(IBlockState state)
|
public int getMetaFromState(IBlockState state)
|
||||||
{
|
{
|
||||||
if ((Boolean) state.getValue(CONNECTED))
|
|
||||||
{
|
|
||||||
return state.getValue(TYPE) == EnumGridType.NORMAL ? 2 : 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
return state.getValue(TYPE) == EnumGridType.NORMAL ? 0 : 1;
|
return state.getValue(TYPE) == EnumGridType.NORMAL ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -5,6 +5,9 @@ import net.minecraft.block.properties.IProperty;
|
|||||||
import net.minecraft.block.properties.PropertyBool;
|
import net.minecraft.block.properties.PropertyBool;
|
||||||
import net.minecraft.block.state.BlockState;
|
import net.minecraft.block.state.BlockState;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import storagecraft.tile.TileMachine;
|
||||||
|
|
||||||
public abstract class BlockMachine extends BlockBase implements ITileEntityProvider
|
public abstract class BlockMachine extends BlockBase implements ITileEntityProvider
|
||||||
{
|
{
|
||||||
@@ -13,8 +16,6 @@ public abstract class BlockMachine extends BlockBase implements ITileEntityProvi
|
|||||||
public BlockMachine(String name)
|
public BlockMachine(String name)
|
||||||
{
|
{
|
||||||
super(name);
|
super(name);
|
||||||
|
|
||||||
setDefaultState(blockState.getBaseState().withProperty(CONNECTED, false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -29,12 +30,18 @@ public abstract class BlockMachine extends BlockBase implements ITileEntityProvi
|
|||||||
@Override
|
@Override
|
||||||
public IBlockState getStateFromMeta(int meta)
|
public IBlockState getStateFromMeta(int meta)
|
||||||
{
|
{
|
||||||
return getDefaultState().withProperty(CONNECTED, meta == 1);
|
return getDefaultState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetaFromState(IBlockState state)
|
public int getMetaFromState(IBlockState state)
|
||||||
{
|
{
|
||||||
return ((Boolean) state.getValue(CONNECTED)) ? 1 : 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||||
|
{
|
||||||
|
return state.withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,8 +10,6 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import storagecraft.StorageCraftBlocks;
|
|
||||||
import storagecraft.block.BlockController;
|
|
||||||
import storagecraft.storage.IStorage;
|
import storagecraft.storage.IStorage;
|
||||||
import storagecraft.storage.IStorageProvider;
|
import storagecraft.storage.IStorageProvider;
|
||||||
import storagecraft.storage.StorageItem;
|
import storagecraft.storage.StorageItem;
|
||||||
@@ -45,8 +43,6 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
|
|
||||||
if (!worldObj.isRemote)
|
if (!worldObj.isRemote)
|
||||||
{
|
{
|
||||||
int lastEnergy = energy.getEnergyStored();
|
|
||||||
|
|
||||||
if (ticks % 40 == 0)
|
if (ticks % 40 == 0)
|
||||||
{
|
{
|
||||||
if (!isActive())
|
if (!isActive())
|
||||||
@@ -114,14 +110,6 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
}
|
}
|
||||||
|
|
||||||
energy.extractEnergy(energyUsage, false);
|
energy.extractEnergy(energyUsage, false);
|
||||||
|
|
||||||
if (lastEnergy != energy.getEnergyStored())
|
|
||||||
{
|
|
||||||
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockController.ENERGY, getEnergyScaled(15)));
|
|
||||||
// @TODO: Is this needed?
|
|
||||||
worldObj.markBlockForUpdate(pos);
|
|
||||||
worldObj.notifyNeighborsOfStateChange(pos, StorageCraftBlocks.CONTROLLER);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user