Remove some utils that were stupid

This commit is contained in:
Ellpeck 2016-07-04 20:15:41 +02:00
parent fad1a1b0c9
commit 0eb64b2659
64 changed files with 251 additions and 341 deletions

View file

@ -141,7 +141,7 @@ public class BlockAtomicReconstructor extends BlockContainerBase implements IHud
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}

View file

@ -17,7 +17,6 @@ import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.items.InitItems;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBookletStand;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -102,16 +101,16 @@ public class BlockBookletStand extends BlockContainerBase implements IHudDisplay
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
TileEntityBookletStand tile = (TileEntityBookletStand)world.getTileEntity(pos);

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBreaker;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityPlacer;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -75,7 +74,7 @@ public class BlockBreaker extends BlockContainerBase{
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCoffeeMachine;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
@ -97,16 +96,16 @@ public class BlockCoffeeMachine extends BlockContainerBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
super.onBlockPlacedBy(world, pos, state, player, stack);

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@ -68,7 +67,7 @@ public class BlockColoredLamp extends BlockBase{
//Turning On
if(player.isSneaking()){
if(!world.isRemote){
PosUtil.setBlock(pos, world, this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn, PosUtil.getMetadata(state), 2);
world.setBlockState(pos, (this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn).getStateFromMeta(this.getMetaFromState(state)), 2);
}
return true;
}
@ -81,9 +80,9 @@ public class BlockColoredLamp extends BlockBase{
String name = OreDictionary.getOreName(oreID);
TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name);
if(color != null){
if(PosUtil.getMetadata(state) != color.ordinal()){
if(this.getMetaFromState(state) != color.ordinal()){
if(!world.isRemote){
PosUtil.setMetadata(pos, world, color.ordinal(), 2);
world.setBlockState(pos, this.getStateFromMeta(color.ordinal()), 2);
if(!player.capabilities.isCreativeMode){
player.inventory.decrStackSize(player.inventory.currentItem, 1);
}

View file

@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityDirectionalBreaker;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -72,7 +71,7 @@ public class BlockDirectionalBreaker extends BlockContainerBase{
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -71,7 +70,7 @@ public class BlockDropper extends BlockContainerBase{
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFluidCollector;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFluidPlacer;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -78,7 +77,7 @@ public class BlockFluidCollector extends BlockContainerBase{
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}

View file

@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFurnaceDouble;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
@ -59,7 +58,7 @@ public class BlockFurnaceDouble extends BlockContainerBase{
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand){
int meta = PosUtil.getMetadata(state);
int meta = this.getMetaFromState(state);
if(meta > 3){
float f = (float)pos.getX()+0.5F;
@ -105,7 +104,7 @@ public class BlockFurnaceDouble extends BlockContainerBase{
@Override
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos){
return PosUtil.getMetadata(state) > 3 ? 12 : 0;
return this.getMetaFromState(state) > 3 ? 12 : 0;
}
@Override
@ -118,16 +117,16 @@ public class BlockFurnaceDouble extends BlockContainerBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
super.onBlockPlacedBy(world, pos, state, player, stack);

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityGrinder;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityGrinderDouble;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
@ -60,7 +59,7 @@ public class BlockGrinder extends BlockContainerBase{
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand){
int meta = PosUtil.getMetadata(state);
int meta = this.getMetaFromState(state);
if(meta == 1){
for(int i = 0; i < 5; i++){
@ -86,7 +85,7 @@ public class BlockGrinder extends BlockContainerBase{
@Override
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos){
return PosUtil.getMetadata(pos, world) == 1 ? 12 : 0;
return this.getMetaFromState(state) == 1 ? 12 : 0;
}
@Override

View file

@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityItemRepairer;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -60,7 +59,7 @@ public class BlockItemRepairer extends BlockContainerBase{
@Override
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos){
return PosUtil.getMetadata(pos, world) == 1 ? 12 : 0;
return this.getMetaFromState(state) == 1 ? 12 : 0;
}
@Override

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPistonBase;
@ -51,23 +50,26 @@ public class BlockLampPowerer extends BlockBase{
@Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.getFacingFromEntity(pos, player).ordinal();
PosUtil.setMetadata(pos, world, rotation, 2);
world.setBlockState(pos, this.getStateFromMeta(rotation), 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
}
private void updateLamp(World world, BlockPos pos){
if(!world.isRemote){
BlockPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(pos, world)), pos, 0);
if(PosUtil.getBlock(coords, world) instanceof BlockColoredLamp){
IBlockState state = world.getBlockState(pos);
BlockPos coords = pos.offset(WorldUtil.getDirectionByPistonRotation(state.getBlock().getMetaFromState(state)));
IBlockState coordsState = world.getBlockState(coords);
if(coordsState.getBlock() instanceof BlockColoredLamp){
int meta = coordsState.getBlock().getMetaFromState(coordsState);
if(world.isBlockIndirectlyGettingPowered(pos) > 0){
if(!((BlockColoredLamp)PosUtil.getBlock(coords, world)).isOn){
PosUtil.setBlock(coords, world, InitBlocks.blockColoredLampOn, PosUtil.getMetadata(coords, world), 2);
if(!((BlockColoredLamp)coordsState.getBlock()).isOn){
world.setBlockState(coords, InitBlocks.blockColoredLampOn.getStateFromMeta(meta), 2);
}
}
else{
if(((BlockColoredLamp)PosUtil.getBlock(coords, world)).isOn){
PosUtil.setBlock(coords, world, InitBlocks.blockColoredLamp, PosUtil.getMetadata(coords, world), 2);
if(((BlockColoredLamp)coordsState.getBlock()).isOn){
world.setBlockState(coords, InitBlocks.blockColoredLamp.getStateFromMeta(meta), 2);
}
}
}

View file

@ -15,8 +15,8 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.tile.*;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -135,8 +135,10 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay{
minecraft.fontRendererObj.drawStringWithShadow(TextFormatting.GOLD+StringUtil.localize("tooltip."+ModUtil.MOD_ID+".blockPhantomRange.desc")+": "+phantom.getRange(), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-40, StringUtil.DECIMAL_COLOR_WHITE);
if(phantom.hasBoundPosition()){
int distance = (int)new Vec3d(posHit.getBlockPos()).distanceTo(new Vec3d(phantom.getBoundPosition()));
Item item = PosUtil.getItemBlock(phantom.getBoundPosition(), minecraft.theWorld);
String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(PosUtil.getBlock(phantom.getBoundPosition(), minecraft.theWorld), 1, PosUtil.getMetadata(phantom.getBoundPosition(), minecraft.theWorld)));
IBlockState state = minecraft.theWorld.getBlockState(phantom.getBoundPosition());
Block block = state.getBlock();
Item item = Item.getItemFromBlock(block);
String name = item == null ? "Absolutely Nothing" : item.getItemStackDisplayName(new ItemStack(block, 1, block.getMetaFromState(state)));
StringUtil.drawSplitString(minecraft.fontRendererObj, StringUtil.localizeFormatted("tooltip."+ModUtil.MOD_ID+".phantom.blockInfo.desc", name, phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ(), distance), resolution.getScaledWidth()/2+5, resolution.getScaledHeight()/2-30, 200, StringUtil.DECIMAL_COLOR_WHITE, true);
if(phantom.isBoundThingInRange()){

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.achievement.TheAchievements;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntitySmileyCloud;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -108,16 +107,16 @@ public class BlockSmileyCloud extends BlockContainerBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
super.onBlockPlacedBy(world, pos, state, player, stack);

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
import de.ellpeck.actuallyadditions.api.recipe.TreasureChestLoot;
import de.ellpeck.actuallyadditions.mod.achievement.TheAchievements;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -83,16 +82,16 @@ public class BlockTreasureChest extends BlockBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
}

View file

@ -11,7 +11,6 @@
package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFenceGate;
import net.minecraft.block.BlockWall;
@ -132,8 +131,8 @@ public class BlockWallAA extends BlockBase{
}
public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos){
Block block = PosUtil.getBlock(pos, worldIn);
IBlockState state = worldIn.getBlockState(pos);
Block block = state.getBlock();
return block != Blocks.BARRIER && (!(block != this && !(block instanceof BlockFenceGate)) || ((block.getMaterial(state).isOpaque() && block.isFullCube(state)) && block.getMaterial(state) != Material.GOURD));
}

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBushBase;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant;
import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
@ -50,15 +49,17 @@ public class BlockWildPlant extends BlockBushBase{
@Override
public boolean canBlockStay(World world, BlockPos pos, IBlockState state){
BlockPos offset = PosUtil.offset(pos, 0, -1, 0);
return PosUtil.getMetadata(state) == TheWildPlants.RICE.ordinal() ? PosUtil.getMaterial(offset, world) == Material.WATER : PosUtil.getBlock(offset, world).canSustainPlant(world.getBlockState(offset), world, offset, EnumFacing.UP, this);
BlockPos offset = pos.down();
IBlockState offsetState = world.getBlockState(offset);
Block offsetBlock = offsetState.getBlock();
return offsetBlock.getMetaFromState(offsetState) == TheWildPlants.RICE.ordinal() ? offsetBlock.getMaterial(offsetState) == Material.WATER : offsetBlock.canSustainPlant(world.getBlockState(offset), world, offset, EnumFacing.UP, this);
}
@Override
@SideOnly(Side.CLIENT)
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player){
int metadata = PosUtil.getMetadata(pos, world);
int metadata = this.getMetaFromState(state);
return metadata >= ALL_WILD_PLANTS.length ? null : new ItemStack(((BlockPlant)ALL_WILD_PLANTS[metadata].wildVersionOf).seedItem);
}
@ -72,7 +73,7 @@ public class BlockWildPlant extends BlockBushBase{
@Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune){
int metadata = PosUtil.getMetadata(state);
int metadata = this.getMetaFromState(state);
return metadata >= ALL_WILD_PLANTS.length ? null : ALL_WILD_PLANTS[metadata].wildVersionOf.getDrops(world, pos, ALL_WILD_PLANTS[metadata].wildVersionOf.getStateFromMeta(7), fortune);
}

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.items.InitItems;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@ -74,16 +73,16 @@ public class BlockXPSolidifier extends BlockContainerBase{
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
if(rotation == 0){
PosUtil.setMetadata(pos, world, 0, 2);
world.setBlockState(pos, this.getStateFromMeta(0), 2);
}
if(rotation == 1){
PosUtil.setMetadata(pos, world, 3, 2);
world.setBlockState(pos, this.getStateFromMeta(3), 2);
}
if(rotation == 2){
PosUtil.setMetadata(pos, world, 1, 2);
world.setBlockState(pos, this.getStateFromMeta(1), 2);
}
if(rotation == 3){
PosUtil.setMetadata(pos, world, 2, 2);
world.setBlockState(pos, this.getStateFromMeta(2), 2);
}
super.onBlockPlacedBy(world, pos, state, player, stack);

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.blocks.base;
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.material.Material;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
@ -52,12 +51,12 @@ public class BlockFluidFlowing extends BlockFluidClassic implements ItemBlockBas
@Override
public boolean canDisplace(IBlockAccess world, BlockPos pos){
return !PosUtil.getMaterial(pos, world).isLiquid() && super.canDisplace(world, pos);
return !world.getBlockState(pos).getMaterial().isLiquid() && super.canDisplace(world, pos);
}
@Override
public boolean displaceIfPossible(World world, BlockPos pos){
return !PosUtil.getMaterial(pos, world).isLiquid() && super.displaceIfPossible(world, pos);
return !world.getBlockState(pos).getMaterial().isLiquid() && super.displaceIfPossible(world, pos);
}
@Override

View file

@ -14,7 +14,7 @@ package de.ellpeck.actuallyadditions.mod.blocks.render;
import de.ellpeck.actuallyadditions.api.lens.ILensItem;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityAtomicReconstructor;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
@ -34,7 +34,8 @@ public class RenderReconstructorLens extends TileEntitySpecialRenderer{
GlStateManager.translate((float)x+0.5F, (float)y-0.5F, (float)z+0.5F);
GlStateManager.rotate(180F, 0.0F, 0.0F, 1.0F);
int meta = PosUtil.getMetadata(tile.getPos(), tile.getWorld());
IBlockState state = tile.getWorld().getBlockState(tile.getPos());
int meta = state.getBlock().getMetaFromState(state);
if(meta == 0){
GlStateManager.translate(0F, -0.5F, 0F);
GlStateManager.rotate(90F, 1F, 0F, 0F);

View file

@ -15,7 +15,7 @@ import de.ellpeck.actuallyadditions.mod.misc.cloud.SmileyCloudEasterEggs;
import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy;
import de.ellpeck.actuallyadditions.mod.tile.TileEntitySmileyCloud;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
@ -42,7 +42,8 @@ public class RenderSmileyCloud extends TileEntitySpecialRenderer{
if(triggerName != null && theCloud.name != null){
if(triggerName.equalsIgnoreCase(theCloud.name)){
GlStateManager.pushMatrix();
switch(PosUtil.getMetadata(theCloud.getPos(), theCloud.getWorld())){
IBlockState state = theCloud.getWorld().getBlockState(theCloud.getPos());
switch(state.getBlock().getMetaFromState(state)){
case 1:
GlStateManager.rotate(180, 0, 1, 0);
break;

View file

@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.tile.IEnergyDisplay;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockRedstoneTorch;
@ -143,7 +142,7 @@ public class ClientEvents{
}
if(posHit != null && posHit.getBlockPos() != null){
Block blockHit = PosUtil.getBlock(posHit.getBlockPos(), minecraft.theWorld);
Block blockHit = minecraft.theWorld.getBlockState(posHit.getBlockPos()).getBlock();
TileEntity tileHit = minecraft.theWorld.getTileEntity(posHit.getBlockPos());
if(blockHit instanceof IHudDisplay){

View file

@ -17,7 +17,6 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntListValues;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
@ -38,6 +37,7 @@ import net.minecraftforge.fml.common.IWorldGenerator;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import org.apache.commons.lang3.ArrayUtils;
import java.util.ArrayList;
import java.util.Random;
@ -59,7 +59,7 @@ public class OreGen implements IWorldGenerator{
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider){
int dimension = world.provider.getDimension();
if(dimension != -1 && dimension != 1){
if(world.getWorldType() != WorldType.FLAT && Util.arrayContains(ConfigIntListValues.ORE_GEN_DIMENSION_BLACKLIST.getValue(), world.provider.getDimension()) < 0){
if(world.getWorldType() != WorldType.FLAT && Util.arrayContains(ArrayUtils.toObject(ConfigIntListValues.ORE_GEN_DIMENSION_BLACKLIST.getValue()), world.provider.getDimension()) < 0){
this.generateDefault(world, random, chunkX*16, chunkZ*16);
}
}
@ -94,7 +94,7 @@ public class OreGen implements IWorldGenerator{
@SubscribeEvent
public void onWorldDecoration(DecorateBiomeEvent.Decorate event){
if((event.getResult() == Event.Result.ALLOW || event.getResult() == Event.Result.DEFAULT)){
if(Util.arrayContains(ConfigIntListValues.PLANT_DIMENSION_BLACKLIST.getValue(), event.getWorld().provider.getDimension()) < 0){
if(Util.arrayContains(ArrayUtils.toObject(ConfigIntListValues.PLANT_DIMENSION_BLACKLIST.getValue()), event.getWorld().provider.getDimension()) < 0){
this.generateRice(event);
this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.CANOLA.ordinal(), ConfigIntValues.CANOLA_AMOUNT.getValue(), ConfigBoolValues.DO_CANOLA_GEN.isEnabled(), Material.GRASS, event);
this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.FLAX.ordinal(), ConfigIntValues.FLAX_AMOUNT.getValue(), ConfigBoolValues.DO_FLAX_GEN.isEnabled(), Material.GRASS, event);
@ -111,8 +111,8 @@ public class OreGen implements IWorldGenerator{
if(event.getWorld().getBiomeGenForCoords(randomPos) instanceof BiomeOcean){
if(randomPos.getY() >= 25 && randomPos.getY() <= 45){
if(event.getWorld().getBlockState(randomPos).getMaterial() == Material.WATER){
if(PosUtil.getMaterial(PosUtil.offset(randomPos, 0, -1, 0), event.getWorld()).isSolid()){
PosUtil.setBlock(randomPos, event.getWorld(), InitBlocks.blockTreasureChest, event.getRand().nextInt(4), 2);
if(event.getWorld().getBlockState(randomPos.down()).getMaterial().isSolid()){
event.getWorld().setBlockState(randomPos, InitBlocks.blockTreasureChest.getStateFromMeta(event.getRand().nextInt(4)), 2);
}
}
}
@ -128,13 +128,13 @@ public class OreGen implements IWorldGenerator{
if(event.getRand().nextInt(50) == 0){
BlockPos randomPos = new BlockPos(event.getPos().getX()+event.getRand().nextInt(16)+8, 0, event.getPos().getZ()+event.getRand().nextInt(16)+8);
randomPos = event.getWorld().getTopSolidOrLiquidBlock(randomPos);
if(PosUtil.getMaterial(randomPos, event.getWorld()) == Material.WATER){
if(event.getWorld().getBlockState(randomPos).getMaterial() == Material.WATER){
ArrayList<Material> blocksAroundBottom = WorldUtil.getMaterialsAround(event.getWorld(), randomPos);
BlockPos posToGenAt = PosUtil.offset(randomPos, 0, 1, 0);
BlockPos posToGenAt = randomPos.up();
ArrayList<Material> blocksAroundTop = WorldUtil.getMaterialsAround(event.getWorld(), posToGenAt);
if(blocksAroundBottom.contains(Material.GRASS) || blocksAroundBottom.contains(Material.GROUND) || blocksAroundBottom.contains(Material.ROCK) || blocksAroundBottom.contains(Material.SAND)){
if(!blocksAroundTop.contains(Material.WATER) && PosUtil.getMaterial(posToGenAt, event.getWorld()) == Material.AIR){
PosUtil.setBlock(posToGenAt, event.getWorld(), InitBlocks.blockWildPlant, TheWildPlants.RICE.ordinal(), 2);
if(!blocksAroundTop.contains(Material.WATER) && event.getWorld().getBlockState(posToGenAt).getMaterial() == Material.AIR){
event.getWorld().setBlockState(posToGenAt, InitBlocks.blockWildPlant.getStateFromMeta(TheWildPlants.RICE.ordinal()), 2);
}
}
}
@ -150,9 +150,9 @@ public class OreGen implements IWorldGenerator{
BlockPos randomPos = new BlockPos(event.getPos().getX()+event.getRand().nextInt(16)+8, 0, event.getPos().getZ()+event.getRand().nextInt(16)+8);
randomPos = event.getWorld().getTopSolidOrLiquidBlock(randomPos);
if(PosUtil.getMaterial(PosUtil.offset(randomPos, 0, -1, 0), event.getWorld()) == blockBelow){
if(event.getWorld().getBlockState(randomPos.down()).getMaterial() == blockBelow){
if(plant.canPlaceBlockAt(event.getWorld(), randomPos) && event.getWorld().isAirBlock(randomPos)){
PosUtil.setBlock(randomPos, event.getWorld(), plant, meta, 2);
event.getWorld().setBlockState(randomPos, plant.getStateFromMeta(meta), 2);
}
}
}

View file

@ -22,9 +22,9 @@ import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.entity.player.EntityPlayer;
@ -59,8 +59,9 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{
@Override
public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing face, float hitX, float hitY, float hitZ){
if(player.isSneaking()){
Block block = PosUtil.getBlock(pos, world);
ItemStack blockStack = new ItemStack(block, 1, PosUtil.getMetadata(pos, world));
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
ItemStack blockStack = new ItemStack(block, 1, block.getMetaFromState(state));
BookletPage page = BookletUtils.getFirstPageForStack(blockStack);
if(page != null){
if(world.isRemote){
@ -98,9 +99,10 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{
@Override
public void displayHud(Minecraft minecraft, EntityPlayer player, ItemStack stack, RayTraceResult posHit, Profiler profiler, ScaledResolution resolution){
if(posHit != null){
Block block = PosUtil.getBlock(posHit.getBlockPos(), minecraft.theWorld);
IBlockState state = minecraft.theWorld.getBlockState(posHit.getBlockPos());
Block block = state.getBlock();
if(block != null && !block.isAir(minecraft.theWorld.getBlockState(posHit.getBlockPos()), minecraft.theWorld, posHit.getBlockPos())){
ItemStack blockStack = new ItemStack(block, 1, PosUtil.getMetadata(posHit.getBlockPos(), minecraft.theWorld));
ItemStack blockStack = new ItemStack(block, 1, block.getMetaFromState(state));
int height = resolution.getScaledHeight()/5*3;
if(player.isSneaking()){
BookletPage page = BookletUtils.getFirstPageForStack(blockStack);

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityGiantChest;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockChest;
import net.minecraft.entity.player.EntityPlayer;
@ -39,7 +38,7 @@ public class ItemChestToCrateUpgrade extends ItemBase{
public EnumActionResult onItemUse(ItemStack heldStack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float par8, float par9, float par10){
if(player.isSneaking()){
TileEntity tileHit = world.getTileEntity(pos);
Block block = PosUtil.getBlock(pos, world);
Block block = world.getBlockState(pos).getBlock();
if(block instanceof BlockChest && tileHit instanceof TileEntityChest){
if(!world.isRemote){
TileEntityChest chest = (TileEntityChest)tileHit;
@ -58,7 +57,7 @@ public class ItemChestToCrateUpgrade extends ItemBase{
if(!ConfigBoolValues.LESS_BLOCK_BREAKING_EFFECTS.isEnabled()){
world.playEvent(2001, pos, Block.getStateId(world.getBlockState(pos)));
}
PosUtil.setBlock(pos, world, InitBlocks.blockGiantChest, 0, 2);
world.setBlockState(pos, InitBlocks.blockGiantChest.getDefaultState(), 2);
//Copy Items into new Chest
TileEntity newTileHit = world.getTileEntity(pos);

View file

@ -21,7 +21,6 @@ import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityInventoryBase;
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@ -430,7 +429,8 @@ public class ItemDrill extends ItemEnergy{
}
//Not defined later because main Block is getting broken below
float mainHardness = PosUtil.getBlock(aPos, world).getBlockHardness(world.getBlockState(aPos), world, aPos);
IBlockState state = world.getBlockState(aPos);
float mainHardness = state.getBlockHardness(world, aPos);
//Break Middle Block first
int use = this.getEnergyUsePerBlock(stack);
@ -452,7 +452,8 @@ public class ItemDrill extends ItemEnergy{
if(this.getEnergyStored(stack) >= use){
//Only break Blocks around that are (about) as hard or softer
BlockPos thePos = new BlockPos(xPos, yPos, zPos);
if(PosUtil.getBlock(thePos, world).getBlockHardness(world.getBlockState(thePos), world, thePos) <= mainHardness+5.0F){
IBlockState theState = world.getBlockState(thePos);
if(theState.getBlockHardness(world, thePos) <= mainHardness+5.0F){
this.tryHarvestBlock(world, thePos, true, stack, player, use);
}
}
@ -479,8 +480,8 @@ public class ItemDrill extends ItemEnergy{
* @param use The Energy that should be extracted per Block
*/
private boolean tryHarvestBlock(World world, BlockPos pos, boolean isExtra, ItemStack stack, EntityPlayer player, int use){
Block block = PosUtil.getBlock(pos, world);
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
float hardness = block.getBlockHardness(state, world, pos);
boolean canHarvest = (ForgeHooks.canHarvestBlock(block, player, world, pos) || this.canHarvestBlock(state, stack)) && (!isExtra || this.getStrVsBlock(stack, world.getBlockState(pos)) > 1.0F);
if(hardness >= 0.0F && (!isExtra || (canHarvest && !block.hasTileEntity(world.getBlockState(pos))))){

View file

@ -11,11 +11,11 @@
package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.BlockGrass;
import net.minecraft.block.IGrowable;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
@ -57,7 +57,7 @@ public class ItemGrowthRing extends ItemEnergy{
int theY = MathHelper.floor_double(player.posY+y);
int theZ = MathHelper.floor_double(player.posZ+z);
BlockPos posInQuestion = new BlockPos(theX, theY, theZ);
Block theBlock = PosUtil.getBlock(posInQuestion, world);
Block theBlock = world.getBlockState(posInQuestion).getBlock();
if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){
blocks.add(posInQuestion);
}
@ -71,11 +71,14 @@ public class ItemGrowthRing extends ItemEnergy{
if(this.getEnergyStored(stack) >= energyUse){
BlockPos pos = blocks.get(Util.RANDOM.nextInt(blocks.size()));
int metaBefore = PosUtil.getMetadata(pos, world);
PosUtil.getBlock(pos, world).updateTick(world, pos, world.getBlockState(pos), Util.RANDOM);
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
int metaBefore = block.getMetaFromState(state);
block.updateTick(world, pos, world.getBlockState(pos), Util.RANDOM);
//Show Particles if Metadata changed
if(PosUtil.getMetadata(pos, world) != metaBefore){
IBlockState newState = world.getBlockState(pos);
if(newState.getBlock().getMetaFromState(newState) != metaBefore){
world.playEvent(2005, pos, 0);
}

View file

@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.api.misc.IDisplayStandItem;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockBush;
import net.minecraft.entity.EntityLivingBase;
@ -108,7 +107,7 @@ public class ItemLeafBlower extends ItemBase implements IDisplayStandItem{
for(int reachY = (this.isAdvanced ? -rangeSides : -rangeUp); reachY < (this.isAdvanced ? rangeSides : rangeUp)+1; reachY++){
//The current Block to break
BlockPos pos = new BlockPos(x+reachX, y+reachY, z+reachZ);
Block block = PosUtil.getBlock(pos, world);
Block block = world.getBlockState(pos).getBlock();
if(block != null && (block instanceof BlockBush || (this.isAdvanced && block.isLeaves(world.getBlockState(pos), world, pos)))){
breakPositions.add(pos);
}
@ -120,7 +119,7 @@ public class ItemLeafBlower extends ItemBase implements IDisplayStandItem{
Collections.shuffle(breakPositions);
BlockPos theCoord = breakPositions.get(0);
Block theBlock = PosUtil.getBlock(theCoord, world);
Block theBlock = world.getBlockState(theCoord).getBlock();
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
//Gets all of the Drops the Block should have

View file

@ -12,8 +12,6 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.BlockLiquid;
import net.minecraft.block.material.Material;
@ -97,7 +95,7 @@ public class ItemWaterBowl extends ItemBase{
return new ActionResult(EnumActionResult.FAIL, stack);
}
else{
BlockPos pos1 = PosUtil.getBlock(pos, world).isReplaceable(world, pos) && trace.sideHit == EnumFacing.UP ? pos : pos.offset(trace.sideHit);
BlockPos pos1 = world.getBlockState(pos).getBlock().isReplaceable(world, pos) && trace.sideHit == EnumFacing.UP ? pos : pos.offset(trace.sideHit);
if(!player.canPlayerEdit(pos1, trace.sideHit, stack)){
return new ActionResult(EnumActionResult.FAIL, stack);

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
@ -52,7 +51,7 @@ public class ItemWaterRemovalRing extends ItemEnergy{
//Remove Water
BlockPos pos = new BlockPos(theX, theY, theZ);
Block block = PosUtil.getBlock(pos, world);
Block block = world.getBlockState(pos).getBlock();
if((block == Blocks.WATER || block == Blocks.FLOWING_WATER) && this.getEnergyStored(stack) >= energyUse){
world.setBlockToAir(pos);

View file

@ -15,7 +15,6 @@ import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
import de.ellpeck.actuallyadditions.api.lens.Lens;
import de.ellpeck.actuallyadditions.api.recipe.IColorLensChanger;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@ -53,10 +52,12 @@ public class LensColor extends Lens{
public boolean invoke(IBlockState hitState, BlockPos hitBlock, IAtomicReconstructor tile){
if(hitBlock != null){
if(tile.getEnergy() >= ENERGY_USE){
int meta = PosUtil.getMetadata(hitBlock, tile.getWorldObject());
ItemStack returnStack = this.tryConvert(new ItemStack(PosUtil.getBlock(hitBlock, tile.getWorldObject()), 1, meta), hitState, hitBlock, tile);
IBlockState state = tile.getWorldObject().getBlockState(hitBlock);
Block block = state.getBlock();
int meta = block.getMetaFromState(state);
ItemStack returnStack = this.tryConvert(new ItemStack(block, 1, meta), hitState, hitBlock, tile);
if(returnStack != null && returnStack.getItem() instanceof ItemBlock){
PosUtil.setBlock(hitBlock, tile.getWorldObject(), Block.getBlockFromItem(returnStack.getItem()), returnStack.getItemDamage(), 2);
tile.getWorldObject().setBlockState(hitBlock, Block.getBlockFromItem(returnStack.getItem()).getStateFromMeta(returnStack.getItemDamage()), 2);
tile.extractEnergy(ENERGY_USE);
}

View file

@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.items.lens;
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
import de.ellpeck.actuallyadditions.api.lens.Lens;
import de.ellpeck.actuallyadditions.mod.misc.DamageSources;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.math.AxisAlignedBB;
@ -35,7 +34,7 @@ public class LensDeath extends Lens{
}
}
return hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(hitState, tile.getWorldObject(), hitBlock);
return hitBlock != null && !hitState.getBlock().isAir(hitState, tile.getWorldObject(), hitBlock);
}
@Override

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.items.lens;
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
import de.ellpeck.actuallyadditions.api.lens.Lens;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
@ -20,7 +19,7 @@ public class LensDetonation extends Lens{
@Override
public boolean invoke(IBlockState state, BlockPos hitBlock, IAtomicReconstructor tile){
if(hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(state, tile.getWorldObject(), hitBlock)){
if(hitBlock != null && !state.getBlock().isAir(state, tile.getWorldObject(), hitBlock)){
int use = 250000;
if(tile.getEnergy() >= use){
tile.getWorldObject().newExplosion(null, hitBlock.getX()+0.5, hitBlock.getY()+0.5, hitBlock.getZ()+0.5, 10F, true, true);

View file

@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.items.lens;
import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor;
import de.ellpeck.actuallyadditions.api.lens.Lens;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@ -31,7 +30,7 @@ public class LensDisruption extends Lens{
@Override
public boolean invoke(IBlockState hitState, BlockPos hitBlock, IAtomicReconstructor tile){
int energyUse = 150000;
if(tile.getEnergy() >= energyUse && hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(hitState, tile.getWorldObject(), hitBlock)){
if(tile.getEnergy() >= energyUse && hitBlock != null && !hitState.getBlock().isAir(hitState, tile.getWorldObject(), hitBlock)){
int range = 2;
ArrayList<EntityItem> items = (ArrayList<EntityItem>)tile.getWorldObject().getEntitiesWithinAABB(EntityItem.class, new AxisAlignedBB(hitBlock.getX()-range, hitBlock.getY()-range, hitBlock.getZ()-range, hitBlock.getX()+range, hitBlock.getY()+range, hitBlock.getZ()+range));
for(EntityItem item : items){

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.misc;
import de.ellpeck.actuallyadditions.mod.data.WorldData;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLaserRelay;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import io.netty.util.internal.ConcurrentSet;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@ -91,8 +90,8 @@ public final class LaserRelayConnectionHandler{
* (Puts it into the correct network!)
*/
public static boolean addConnection(BlockPos firstRelay, BlockPos secondRelay, World world){
int distance = (int)PosUtil.toVec(firstRelay).distanceTo(PosUtil.toVec(secondRelay));
if(distance > TileEntityLaserRelay.MAX_DISTANCE || PosUtil.areSamePos(firstRelay, secondRelay)){
int distanceSq = (int)firstRelay.distanceSq(secondRelay);
if(distanceSq > TileEntityLaserRelay.MAX_DISTANCE*TileEntityLaserRelay.MAX_DISTANCE || firstRelay.equals(secondRelay)){
return false;
}
@ -165,7 +164,7 @@ public final class LaserRelayConnectionHandler{
public boolean contains(BlockPos relay){
for(BlockPos position : this.positions){
if(position != null && PosUtil.areSamePos(position, relay)){
if(position != null && position.equals(relay)){
return true;
}
}

View file

@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.api.recipe.CoffeeIngredient;
import de.ellpeck.actuallyadditions.api.recipe.LensConversionRecipe;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.items.lens.LensRecipeHandler;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.item.EntityItem;
@ -120,7 +119,7 @@ public class MethodHandler implements IMethodHandler{
@Override
public boolean invokeConversionLens(IBlockState hitState, BlockPos hitBlock, IAtomicReconstructor tile){
if(hitBlock != null && !PosUtil.getBlock(hitBlock, tile.getWorldObject()).isAir(hitState, tile.getWorldObject(), hitBlock)){
if(hitBlock != null && !hitState.getBlock().isAir(hitState, tile.getWorldObject(), hitBlock)){
int range = 2;
//Converting the Blocks
@ -128,7 +127,7 @@ public class MethodHandler implements IMethodHandler{
for(int reachZ = -range; reachZ < range+1; reachZ++){
for(int reachY = -range; reachY < range+1; reachY++){
BlockPos pos = new BlockPos(hitBlock.getX()+reachX, hitBlock.getY()+reachY, hitBlock.getZ()+reachZ);
List<LensConversionRecipe> recipes = LensRecipeHandler.getRecipesFor(new ItemStack(PosUtil.getBlock(pos, tile.getWorldObject()), 1, PosUtil.getMetadata(pos, tile.getWorldObject())));
List<LensConversionRecipe> recipes = LensRecipeHandler.getRecipesFor(new ItemStack(hitState.getBlock(), 1, hitState.getBlock().getMetaFromState(hitState)));
for(LensConversionRecipe recipe : recipes){
if(recipe != null && recipe.type == tile.getLens() && tile.getEnergy() >= recipe.energyUse){
List<ItemStack> outputs = recipe.getOutputs();
@ -138,7 +137,7 @@ public class MethodHandler implements IMethodHandler{
if(!ConfigBoolValues.LESS_BLOCK_BREAKING_EFFECTS.isEnabled()){
tile.getWorldObject().playEvent(2001, pos, Block.getStateId(tile.getWorldObject().getBlockState(pos)));
}
PosUtil.setBlock(pos, tile.getWorldObject(), Block.getBlockFromItem(output.getItem()), output.getItemDamage(), 2);
tile.getWorldObject().setBlockState(pos, Block.getBlockFromItem(output.getItem()).getStateFromMeta(output.getItemDamage()), 2);
}
else{
EntityItem item = new EntityItem(tile.getWorldObject(), pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, output.copy());

View file

@ -24,6 +24,7 @@ import org.apache.commons.lang3.tuple.Pair;
import java.util.HashMap;
//TODO Make this less hideous
public class FuelHandler implements IFuelHandler{
private static final HashMap<Pair<Item, Integer>, Integer> FUEL_LIST = new HashMap<Pair<Item, Integer>, Integer>();

View file

@ -19,8 +19,8 @@ import de.ellpeck.actuallyadditions.api.lens.Lens;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.misc.SoundHandler;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -99,7 +99,8 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple
private void doWork(){
if(this.storage.getEnergyStored() >= ENERGY_USE){
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, this.worldObj));
IBlockState state = this.worldObj.getBlockState(this.pos);
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(state.getBlock().getMetaFromState(state));
//Extract energy for shooting the laser itself too!
this.storage.extractEnergy(ENERGY_USE, false);
@ -107,7 +108,7 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple
Lens currentLens = this.getLens();
int distance = currentLens.getDistance();
for(int i = 0; i < distance; i++){
BlockPos hitBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, i);
BlockPos hitBlock = this.pos.offset(sideToManipulate, i);
if(currentLens.invoke(this.worldObj.getBlockState(hitBlock), hitBlock, this)){
shootLaser(this.worldObj, this.getX(), this.getY(), this.getZ(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ(), currentLens);

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
@ -80,11 +79,12 @@ public class TileEntityBreaker extends TileEntityInventoryBase{
}
private void doWork(){
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, this.worldObj));
IBlockState state = this.worldObj.getBlockState(this.pos);
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(state.getBlock().getMetaFromState(state));
BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, 0);
Block blockToBreak = PosUtil.getBlock(coordsBlock, this.worldObj);
BlockPos coordsBlock = this.pos.offset(sideToManipulate, 0);
IBlockState stateToBreak = this.worldObj.getBlockState(coordsBlock);
Block blockToBreak = stateToBreak.getBlock();
if(!this.isPlacer && blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(stateToBreak, this.worldObj, coordsBlock) > -1.0F){
List<ItemStack> drops = blockToBreak.getDrops(this.worldObj, coordsBlock, stateToBreak, 0);
float chance = ForgeEventFactory.fireBlockHarvesting(drops, this.worldObj, coordsBlock, this.worldObj.getBlockState(coordsBlock), 0, 1, false, null);
@ -94,7 +94,7 @@ public class TileEntityBreaker extends TileEntityInventoryBase{
if(!ConfigBoolValues.LESS_BLOCK_BREAKING_EFFECTS.isEnabled()){
this.worldObj.playEvent(2001, coordsBlock, Block.getStateId(stateToBreak));
}
WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos);
this.worldObj.setBlockToAir(coordsBlock);
WorldUtil.addToInventory(this, drops, true, true);
this.markDirty();
}

View file

@ -13,11 +13,11 @@ package de.ellpeck.actuallyadditions.mod.tile;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyReceiver;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAir;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -82,11 +82,12 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem
private void doWork(){
if(this.storage.getEnergyStored() >= ENERGY_USE*RANGE){
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, this.worldObj));
IBlockState state = this.worldObj.getBlockState(this.pos);
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(state.getBlock().getMetaFromState(state));
for(int i = 0; i < RANGE; i++){
BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, i);
Block blockToBreak = PosUtil.getBlock(coordsBlock, this.worldObj);
BlockPos coordsBlock = this.pos.offset(sideToManipulate, i);
Block blockToBreak = this.worldObj.getBlockState(coordsBlock).getBlock();
if(blockToBreak != null && !(blockToBreak instanceof BlockAir) && blockToBreak.getBlockHardness(this.worldObj.getBlockState(coordsBlock), this.worldObj, this.pos) > -1.0F){
List<ItemStack> drops = blockToBreak.getDrops(this.worldObj, coordsBlock, this.worldObj.getBlockState(coordsBlock), 0);
float chance = ForgeEventFactory.fireBlockHarvesting(drops, this.worldObj, coordsBlock, this.worldObj.getBlockState(coordsBlock), 0, 1, false, null);
@ -96,7 +97,7 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem
if(!ConfigBoolValues.LESS_BLOCK_BREAKING_EFFECTS.isEnabled()){
this.worldObj.playEvent(2001, coordsBlock, Block.getStateId(this.worldObj.getBlockState(coordsBlock)));
}
WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.getPos(), i);
this.worldObj.setBlockToAir(coordsBlock);
WorldUtil.addToInventory(this, drops, true, true);
this.storage.extractEnergy(ENERGY_USE, false);
this.markDirty();

View file

@ -10,8 +10,8 @@
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -67,7 +67,8 @@ public class TileEntityDropper extends TileEntityInventoryBase{
if(this.removeFromInventory(false) != null){
ItemStack stack = this.removeFromInventory(true);
stack.stackSize = 1;
WorldUtil.dropItemAtSide(WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, this.worldObj)), this.worldObj, this.pos, stack);
IBlockState state = this.worldObj.getBlockState(this.pos);
WorldUtil.dropItemAtSide(WorldUtil.getDirectionByPistonRotation(state.getBlock().getMetaFromState(state)), this.worldObj, this.pos, stack);
}
}

View file

@ -10,11 +10,10 @@
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
@ -57,14 +56,14 @@ public class TileEntityFishingNet extends TileEntityBase{
super.updateEntity();
if(!this.worldObj.isRemote){
if(!this.isRedstonePowered){
if(PosUtil.getMaterial(PosUtil.offset(this.pos, 0, -1, 0), this.worldObj) == Material.WATER){
if(this.worldObj.getBlockState(this.pos.down()).getMaterial() == Material.WATER){
if(this.timeUntilNextDrop > 0){
this.timeUntilNextDrop--;
if(this.timeUntilNextDrop <= 0){
LootContext.Builder builder = new LootContext.Builder((WorldServer)this.worldObj);
List<ItemStack> fishables = this.worldObj.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING).generateLootForPools(Util.RANDOM, builder.build());
for(ItemStack fishable : fishables){
TileEntity tile = this.worldObj.getTileEntity(PosUtil.offset(this.pos, 0, 1, 0));
TileEntity tile = this.worldObj.getTileEntity(this.pos.up());
if(tile != null && tile instanceof IInventory){
ArrayList<ItemStack> list = new ArrayList<ItemStack>();
list.add(fishable);

View file

@ -10,12 +10,11 @@
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -63,39 +62,41 @@ public class TileEntityFluidCollector extends TileEntityBase implements net.mine
}
private void doWork(){
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(PosUtil.getMetadata(this.pos, this.worldObj));
BlockPos coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, this.pos, 0);
IBlockState state = this.worldObj.getBlockState(this.pos);
Block block = state.getBlock();
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(block.getMetaFromState(state));
BlockPos coordsBlock = this.pos.offset(sideToManipulate, 0);
Block blockToBreak = PosUtil.getBlock(coordsBlock, this.worldObj);
if(!this.isPlacer && blockToBreak != null && PosUtil.getMetadata(coordsBlock, this.worldObj) == 0 && Util.BUCKET <= this.tank.getCapacity()-this.tank.getFluidAmount()){
IBlockState stateToBreak = this.worldObj.getBlockState(coordsBlock);
Block blockToBreak = stateToBreak.getBlock();
if(!this.isPlacer && blockToBreak != null && blockToBreak.getMetaFromState(stateToBreak) == 0 && Util.BUCKET <= this.tank.getCapacity()-this.tank.getFluidAmount()){
if(blockToBreak instanceof IFluidBlock && ((IFluidBlock)blockToBreak).getFluid() != null){
if(this.tank.fillInternal(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), Util.BUCKET), false) >= Util.BUCKET){
this.tank.fillInternal(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), Util.BUCKET), true);
WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos);
this.worldObj.setBlockToAir(coordsBlock);
}
}
else if(blockToBreak == Blocks.LAVA || blockToBreak == Blocks.FLOWING_LAVA){
if(this.tank.fillInternal(new FluidStack(FluidRegistry.LAVA, Util.BUCKET), false) >= Util.BUCKET){
this.tank.fillInternal(new FluidStack(FluidRegistry.LAVA, Util.BUCKET), true);
WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos);
this.worldObj.setBlockToAir(coordsBlock);
}
}
else if(blockToBreak == Blocks.WATER || blockToBreak == Blocks.FLOWING_WATER){
if(this.tank.fillInternal(new FluidStack(FluidRegistry.WATER, Util.BUCKET), false) >= Util.BUCKET){
this.tank.fillInternal(new FluidStack(FluidRegistry.WATER, Util.BUCKET), true);
WorldUtil.breakBlockAtSide(sideToManipulate, this.worldObj, this.pos);
this.worldObj.setBlockToAir(coordsBlock);
}
}
}
else if(this.isPlacer && PosUtil.getBlock(coordsBlock, this.worldObj).isReplaceable(this.worldObj, coordsBlock)){
else if(this.isPlacer && blockToBreak.isReplaceable(this.worldObj, coordsBlock)){
if(this.tank.getFluidAmount() >= Util.BUCKET){
Block block = this.tank.getFluid().getFluid().getBlock();
if(block != null){
Block fluid = this.tank.getFluid().getFluid().getBlock();
if(fluid != null){
BlockPos offsetPos = this.pos.offset(sideToManipulate);
Block blockPresent = PosUtil.getBlock(offsetPos, this.worldObj);
boolean placeable = !(blockPresent instanceof BlockLiquid) && !(blockPresent instanceof IFluidBlock) && blockPresent.isReplaceable(this.worldObj, offsetPos);
boolean placeable = !(blockToBreak instanceof BlockLiquid) && !(blockToBreak instanceof IFluidBlock) && blockToBreak.isReplaceable(this.worldObj, offsetPos);
if(placeable){
PosUtil.setBlock(offsetPos, this.worldObj, block, 0, 3);
this.worldObj.setBlockState(offsetPos, fluid.getDefaultState(), 3);
this.tank.drainInternal(Util.BUCKET, true);
}
}

View file

@ -12,7 +12,8 @@ package de.ellpeck.actuallyadditions.mod.tile;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyReceiver;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
@ -98,14 +99,16 @@ public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements
if(flag != (this.firstSmeltTime > 0 || this.secondSmeltTime > 0)){
this.markDirty();
int meta = PosUtil.getMetadata(this.pos, this.worldObj);
IBlockState state = this.worldObj.getBlockState(this.pos);
Block block = state.getBlock();
int meta = block.getMetaFromState(state);
if(meta > 3){
if(!this.canSmeltOn(SLOT_INPUT_1, SLOT_OUTPUT_1) && !this.canSmeltOn(SLOT_INPUT_2, SLOT_OUTPUT_2)){
PosUtil.setMetadata(this.pos, this.worldObj, meta-4, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(meta-4), 2);
}
}
else{
PosUtil.setMetadata(this.pos, this.worldObj, meta+4, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(meta+4), 2);
}
}

View file

@ -12,7 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyProvider;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
@ -80,8 +80,9 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro
public boolean hasBlockAbove(){
for(int y = 1; y <= this.worldObj.getHeight(); y++){
BlockPos offset = PosUtil.offset(this.pos, 0, y, 0);
if(!PosUtil.getBlock(offset, this.worldObj).isAir(this.worldObj.getBlockState(offset), this.worldObj, offset)){
BlockPos offset = this.pos.down(y);
IBlockState state = this.worldObj.getBlockState(offset);
if(!state.getBlock().isAir(state, this.worldObj, offset)){
return true;
}
}

View file

@ -10,12 +10,11 @@
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.BlockGrass;
import net.minecraft.block.IGrowable;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.IPlantable;
@ -54,10 +53,13 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
if(this.timeUntilNextFert <= 0){
BlockPos blockToFert = this.blockToFertilize();
if(blockToFert != null){
int metaBefore = PosUtil.getMetadata(blockToFert, this.worldObj);
PosUtil.getBlock(blockToFert, this.worldObj).updateTick(this.worldObj, blockToFert, this.worldObj.getBlockState(blockToFert), Util.RANDOM);
IBlockState state = this.worldObj.getBlockState(blockToFert);
Block block = state.getBlock();
int metaBefore = block.getMetaFromState(state);
block.updateTick(this.worldObj, blockToFert, this.worldObj.getBlockState(blockToFert), Util.RANDOM);
if(PosUtil.getMetadata(blockToFert, this.worldObj) != metaBefore){
IBlockState newState = this.worldObj.getBlockState(blockToFert);
if(newState.getBlock().getMetaFromState(newState) != metaBefore){
this.worldObj.playEvent(2005, blockToFert, 0);
}
}
@ -74,7 +76,7 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
public BlockPos blockToFertilize(){
for(int i = this.pos.getY()-1; i > 0; i--){
BlockPos offset = new BlockPos(this.pos.getX(), i, this.pos.getZ());
Block block = PosUtil.getBlock(this.pos, this.worldObj);
Block block = this.worldObj.getBlockState(this.pos).getBlock();
if(block != null && !(this.worldObj.isAirBlock(offset))){
if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){
return offset;

View file

@ -16,8 +16,9 @@ import cofh.api.energy.IEnergyReceiver;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.misc.SoundHandler;
import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -145,14 +146,16 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg
if(flag != (this.firstCrushTime > 0 || this.secondCrushTime > 0)){
this.markDirty();
int meta = PosUtil.getMetadata(this.pos, this.worldObj);
IBlockState state = this.worldObj.getBlockState(this.pos);
Block block = state.getBlock();
int meta = block.getMetaFromState(state);
if(meta == 1){
if(!this.canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2) && (!this.isDouble || !this.canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2))){
PosUtil.setMetadata(this.pos, this.worldObj, 0, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(0), 2);
}
}
else{
PosUtil.setMetadata(this.pos, this.worldObj, 1, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(1), 2);
}
}

View file

@ -12,11 +12,11 @@ package de.ellpeck.actuallyadditions.mod.tile;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyProvider;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
@ -55,9 +55,10 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr
ArrayList<Integer> blocksAround = new ArrayList<Integer>();
if(ENERGY_PRODUCE <= this.storage.getMaxEnergyStored()-this.storage.getEnergyStored()){
for(int i = 1; i <= 5; i++){
BlockPos coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionBySidesInOrder(i), this.pos, 0);
Block block = PosUtil.getBlock(coords, this.worldObj);
if(block != null && block.getMaterial(this.worldObj.getBlockState(coords)) == Material.LAVA && PosUtil.getMetadata(coords, this.worldObj) == 0){
BlockPos coords = this.pos.offset(WorldUtil.getDirectionBySidesInOrder(i));
IBlockState state = this.worldObj.getBlockState(coords);
Block block = state.getBlock();
if(block != null && block.getMaterial(this.worldObj.getBlockState(coords)) == Material.LAVA && block.getMetaFromState(state) == 0){
blocksAround.add(i);
}
}
@ -68,7 +69,7 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr
if(Util.RANDOM.nextInt(10000) == 0){
int randomSide = blocksAround.get(Util.RANDOM.nextInt(blocksAround.size()));
WorldUtil.breakBlockAtSide(WorldUtil.getDirectionBySidesInOrder(randomSide), this.worldObj, this.pos);
this.worldObj.setBlockToAir(this.pos.offset(WorldUtil.getDirectionBySidesInOrder(randomSide)));
}
}
}

View file

@ -281,7 +281,7 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
*/
public void initVars(){
if(this.sideToPull != -1){
this.placeToPull = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPull), this.worldObj, this.pos);
this.placeToPull = this.worldObj.getTileEntity(this.pos.offset(WorldUtil.getDirectionBySidesInOrder(this.sideToPull)));
if(this.placeToPull instanceof IInventory){
if(this.slotToPullEnd <= 0){
@ -291,7 +291,7 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt
}
if(this.sideToPut != -1){
this.placeToPut = WorldUtil.getTileEntityFromSide(WorldUtil.getDirectionBySidesInOrder(this.sideToPut), this.worldObj, this.pos);
this.placeToPut = this.worldObj.getTileEntity(this.pos.offset(WorldUtil.getDirectionBySidesInOrder(this.sideToPut)));
if(this.placeToPut instanceof IInventory){
if(this.slotToPutEnd <= 0){

View file

@ -79,7 +79,7 @@ public class TileEntityItemViewer extends TileEntityInventoryBase{
if(this.worldObj != null){ //Why is that even possible..?
for(int i = 0; i <= 5; i++){
EnumFacing side = WorldUtil.getDirectionBySidesInOrder(i);
BlockPos pos = WorldUtil.getCoordsFromSide(side, this.getPos(), 0);
BlockPos pos = this.getPos().offset(side);
TileEntity tile = this.worldObj.getTileEntity(pos);
if(tile instanceof TileEntityLaserRelayItem){

View file

@ -17,7 +17,6 @@ import de.ellpeck.actuallyadditions.mod.items.ItemLaserWrench.WrenchMode;
import de.ellpeck.actuallyadditions.mod.misc.LaserRelayConnectionHandler;
import de.ellpeck.actuallyadditions.mod.misc.LaserRelayConnectionHandler.ConnectionPair;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import io.netty.util.internal.ConcurrentSet;
import net.minecraft.client.Minecraft;
@ -108,7 +107,7 @@ public abstract class TileEntityLaserRelay extends TileEntityBase{
LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getNetworkFor(this.pos, this.worldObj);
if(network != null){
for(ConnectionPair aPair : network.connections){
if(aPair.contains(this.pos) && PosUtil.areSamePos(this.pos, aPair.positions[0])){
if(aPair.contains(this.pos) && this.pos.equals(aPair.positions[0])){
AssetUtil.renderParticlesFromAToB(aPair.positions[0].getX(), aPair.positions[0].getY(), aPair.positions[0].getZ(), aPair.positions[1].getX(), aPair.positions[1].getY(), aPair.positions[1].getZ(), ConfigBoolValues.LESS_PARTICLES.isEnabled() ? 1 : Util.RANDOM.nextInt(3)+1, 0.8F, this.isItem ? COLOR_ITEM : COLOR, 1F);
}
}

View file

@ -67,7 +67,7 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements
this.receiversAround.clear();
for(EnumFacing side : EnumFacing.values()){
BlockPos pos = WorldUtil.getCoordsFromSide(side, this.getPos(), 0);
BlockPos pos = this.getPos().offset(side);
TileEntity tile = this.worldObj.getTileEntity(pos);
if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){
this.receiversAround.put(side, (IEnergyReceiver)tile);

View file

@ -46,7 +46,7 @@ public class TileEntityLaserRelayItem extends TileEntityLaserRelay{
for(int i = 0; i <= 5; i++){
EnumFacing side = WorldUtil.getDirectionBySidesInOrder(i);
BlockPos pos = WorldUtil.getCoordsFromSide(side, this.getPos(), 0);
BlockPos pos = this.getPos().offset(side);
TileEntity tile = this.worldObj.getTileEntity(pos);
if(tile != null && !(tile instanceof TileEntityItemViewer)){
IItemHandler handler = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite());

View file

@ -14,8 +14,9 @@ import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyReceiver;
import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -63,7 +64,7 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I
this.currentWorkTime++;
if(this.currentWorkTime >= 200){
this.currentWorkTime = 0;
PosUtil.setBlock(PosUtil.offset(this.pos, 0, 1, 0), this.worldObj, Blocks.LAVA, 0, 2);
this.worldObj.setBlockState(this.pos.up(), Blocks.LAVA.getDefaultState(), 2);
this.storage.extractEnergy(ENERGY_USE, false);
}
}
@ -80,18 +81,20 @@ public class TileEntityLavaFactoryController extends TileEntityBase implements I
public int isMultiblock(){
BlockPos thisPos = this.pos;
BlockPos[] positions = new BlockPos[]{
PosUtil.offset(thisPos, 1, 1, 0),
PosUtil.offset(thisPos, -1, 1, 0),
PosUtil.offset(thisPos, 0, 1, 1),
PosUtil.offset(thisPos, 0, 1, -1)
thisPos.add(1, 1, 0),
thisPos.add(-1, 1, 0),
thisPos.add(0, 1, 1),
thisPos.add(0, 1, -1)
};
if(WorldUtil.hasBlocksInPlacesGiven(positions, InitBlocks.blockMisc, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal(), this.worldObj)){
BlockPos pos = PosUtil.offset(thisPos, 0, 1, 0);
if(PosUtil.getBlock(pos, this.worldObj) == Blocks.LAVA || PosUtil.getBlock(pos, this.worldObj) == Blocks.FLOWING_LAVA){
BlockPos pos = thisPos.up();
IBlockState state = this.worldObj.getBlockState(pos);
Block block = state.getBlock();
if(block == Blocks.LAVA || block == Blocks.FLOWING_LAVA){
return HAS_LAVA;
}
if(PosUtil.getBlock(pos, this.worldObj) == null || this.worldObj.isAirBlock(pos)){
if(block == null || this.worldObj.isAirBlock(pos)){
return HAS_AIR;
}
}

View file

@ -14,7 +14,6 @@ import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyProvider;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
@ -65,8 +64,8 @@ public class TileEntityLeafGenerator extends TileEntityBase implements IEnergyPr
for(int reachX = -RANGE; reachX < RANGE+1; reachX++){
for(int reachZ = -RANGE; reachZ < RANGE+1; reachZ++){
for(int reachY = -RANGE; reachY < RANGE+1; reachY++){
BlockPos pos = PosUtil.offset(this.pos, reachX, reachY, reachZ);
Block block = PosUtil.getBlock(pos, this.worldObj);
BlockPos pos = this.pos.add(reachX, reachY, reachZ);
Block block = this.worldObj.getBlockState(pos).getBlock();
if(block != null && block.isLeaves(this.worldObj.getBlockState(pos), this.worldObj, pos)){
breakPositions.add(pos);
}

View file

@ -17,7 +17,6 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigStringListValues;
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
import de.ellpeck.actuallyadditions.mod.network.gui.IButtonReactor;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
@ -105,7 +104,7 @@ public class TileEntityMiner extends TileEntityInventoryBase implements IEnergyR
IBlockState state = this.worldObj.getBlockState(pos);
Block block = state.getBlock();
int meta = PosUtil.getMetadata(pos, this.worldObj);
int meta = block.getMetaFromState(state);
if(!block.isAir(this.worldObj.getBlockState(pos), this.worldObj, pos)){
if(block.getHarvestLevel(this.worldObj.getBlockState(pos)) <= ItemDrill.HARVEST_LEVEL && state.getBlockHardness(this.worldObj, pos) >= 0F && !(block instanceof BlockLiquid) && !(block instanceof IFluidBlock) && this.isMinable(block, meta)){
List<ItemStack> drops = block.getDrops(this.worldObj, pos, this.worldObj.getBlockState(pos), 0);

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.api.tile.IPhantomTile;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block;
@ -126,7 +125,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements
private void doWork(){
if(this.isBreaker){
Block blockToBreak = PosUtil.getBlock(this.boundPosition, this.worldObj);
Block blockToBreak = this.worldObj.getBlockState(this.boundPosition).getBlock();
if(blockToBreak != null && blockToBreak.getBlockHardness(this.worldObj.getBlockState(this.boundPosition), this.worldObj, this.boundPosition) > -1.0F){
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
drops.addAll(blockToBreak.getDrops(this.worldObj, this.boundPosition, this.worldObj.getBlockState(this.boundPosition), 0));
@ -171,7 +170,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements
@Override
public boolean isBoundThingInRange(){
return this.hasBoundPosition() && PosUtil.toVec(this.boundPosition).distanceTo(new Vec3d(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ())) <= this.range;
return this.hasBoundPosition() && this.boundPosition.distanceSq(this.pos) <= this.range*this.range;
}
@Override
@ -181,7 +180,7 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements
@Override
public void setBoundPosition(BlockPos pos){
this.boundPosition = pos == null ? null : PosUtil.copyPos(pos);
this.boundPosition = pos;
}
@Override

View file

@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.api.tile.IPhantomTile;
import de.ellpeck.actuallyadditions.mod.blocks.BlockPhantom;
import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@ -45,7 +44,7 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
public static int upgradeRange(int defaultRange, World world, BlockPos pos){
int newRange = defaultRange;
for(int i = 0; i < 3; i++){
Block block = PosUtil.getBlock(PosUtil.offset(pos, 0, 1+i, 0), world);
Block block = world.getBlockState(pos.up(1+i)).getBlock();
if(block == InitBlocks.blockPhantomBooster){
newRange = newRange*2;
}
@ -106,15 +105,15 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
}
protected boolean doesNeedUpdateSend(){
return this.boundPosition != this.boundPosBefore || (this.boundPosition != null && PosUtil.getBlock(this.boundPosition, this.worldObj) != this.boundBlockBefore) || this.rangeBefore != this.range;
return this.boundPosition != this.boundPosBefore || (this.boundPosition != null && this.worldObj.getBlockState(this.boundPosition).getBlock() != this.boundBlockBefore) || this.rangeBefore != this.range;
}
protected void onUpdateSent(){
this.rangeBefore = this.range;
this.boundPosBefore = this.boundPosition;
this.boundBlockBefore = this.boundPosition == null ? null : PosUtil.getBlock(this.boundPosition, this.worldObj);
this.boundBlockBefore = this.boundPosition == null ? null : this.worldObj.getBlockState(this.boundPosition).getBlock();
this.worldObj.notifyNeighborsOfStateChange(this.pos, PosUtil.getBlock(this.pos, this.worldObj));
this.worldObj.notifyNeighborsOfStateChange(this.pos, this.worldObj.getBlockState(this.boundPosition).getBlock());
this.sendUpdate();
this.markDirty();
@ -158,7 +157,7 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
@Override
public boolean isBoundThingInRange(){
return this.hasBoundPosition() && PosUtil.toVec(this.boundPosition).distanceTo(PosUtil.toVec(this.getPos())) <= this.range;
return this.hasBoundPosition() && this.boundPosition.distanceSq(this.getPos()) <= this.range*this.range;
}
@Override
@ -168,7 +167,7 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP
@Override
public void setBoundPosition(BlockPos pos){
this.boundPosition = pos == null ? null : PosUtil.copyPos(pos);
this.boundPosition = pos;
}
@Override

View file

@ -11,7 +11,8 @@
package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.network.gui.IStringReactor;
import de.ellpeck.actuallyadditions.mod.util.PosUtil;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
@ -58,15 +59,17 @@ public class TileEntitySmileyCloud extends TileEntityBase implements IStringReac
}
public void setStatus(boolean pinkAndFluffy){
int meta = PosUtil.getMetadata(this.pos, this.worldObj);
IBlockState state = this.worldObj.getBlockState(this.pos);
Block block = state.getBlock();
int meta = block.getMetaFromState(state);
if(pinkAndFluffy){
if(meta <= 3){
PosUtil.setMetadata(this.pos, this.worldObj, meta+4, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(meta+4), 2);
}
}
else{
if(meta >= 4){
PosUtil.setMetadata(this.pos, this.worldObj, meta-4, 2);
this.worldObj.setBlockState(this.pos, block.getStateFromMeta(meta-4), 2);
}
}
}

View file

@ -35,20 +35,25 @@ import org.lwjgl.opengl.GL11;
public final class AssetUtil{
@SideOnly(Side.CLIENT)
public static final ResourceLocation GUI_INVENTORY_LOCATION = getGuiLocation("guiInventory");
@SideOnly(Side.CLIENT)
public static ResourceLocation getGuiLocation(String file){
return new ResourceLocation(ModUtil.MOD_ID, "textures/gui/"+file+".png");
}
@SideOnly(Side.CLIENT)
public static ResourceLocation getBookletGuiLocation(String file){
return new ResourceLocation(ModUtil.MOD_ID, "textures/gui/booklet/"+file+".png");
}
@SideOnly(Side.CLIENT)
public static void displayNameString(FontRenderer font, int xSize, int yPositionOfMachineText, String text){
font.drawString(text, xSize/2-font.getStringWidth(text)/2, yPositionOfMachineText, StringUtil.DECIMAL_COLOR_WHITE);
}
@SideOnly(Side.CLIENT)
public static void displayNameString(FontRenderer font, int xSize, int yPositionOfMachineText, TileEntity tile){
displayNameString(font, xSize, yPositionOfMachineText, tile.getDisplayName().getFormattedText());
}
@ -94,6 +99,7 @@ public final class AssetUtil{
}
//Copied from Gui.class and changed
@SideOnly(Side.CLIENT)
public static void drawHorizontalGradientRect(int left, int top, int right, int bottom, int startColor, int endColor, float zLevel){
float f = (float)(startColor >> 24 & 255)/255.0F;
float f1 = (float)(startColor >> 16 & 255)/255.0F;
@ -122,6 +128,7 @@ public final class AssetUtil{
GlStateManager.enableTexture2D();
}
@SideOnly(Side.CLIENT)
public static void renderNameTag(String tag, double x, double y, double z){
FontRenderer fontrenderer = Minecraft.getMinecraft().fontRendererObj;
float f = 1.6F;

View file

@ -1,80 +0,0 @@
/*
* This file ("PosUtil.java") is part of the Actually Additions mod for Minecraft.
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
* http://ellpeck.de/actaddlicense
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
* © 2015-2016 Ellpeck
*/
package de.ellpeck.actuallyadditions.mod.util;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public final class PosUtil{
public static Material getMaterial(BlockPos pos, IBlockAccess world){
return getBlock(pos, world).getMaterial(world.getBlockState(pos));
}
public static Block getBlock(BlockPos pos, IBlockAccess world){
if(pos != null){
IBlockState state = world.getBlockState(pos);
if(state != null){
return state.getBlock();
}
}
return null;
}
public static int getMetadata(BlockPos pos, IBlockAccess world){
Block block = getBlock(pos, world);
return block != null ? block.getMetaFromState(world.getBlockState(pos)) : 0;
}
public static int getMetadata(IBlockState state){
Block block = state.getBlock();
return block != null ? block.getMetaFromState(state) : 0;
}
public static BlockPos offset(BlockPos pos, int x, int y, int z){
return new BlockPos(pos.getX()+x, pos.getY()+y, pos.getZ()+z);
}
public static boolean setBlock(BlockPos pos, World world, Block block, int meta, int flag){
return world.setBlockState(pos, block.getStateFromMeta(meta), flag);
}
public static Vec3d toVec(BlockPos pos){
return new Vec3d(pos.getX(), pos.getY(), pos.getZ());
}
public static BlockPos copyPos(BlockPos pos){
return new BlockPos(pos.getX(), pos.getY(), pos.getZ());
}
public static ItemBlock getItemBlock(BlockPos pos, IBlockAccess world){
Item item = Item.getItemFromBlock(getBlock(pos, world));
if(item instanceof ItemBlock){
return (ItemBlock)item;
}
return null;
}
public static void setMetadata(BlockPos pos, World world, int meta, int flag){
world.setBlockState(pos, getBlock(pos, world).getStateFromMeta(meta), flag);
}
public static boolean areSamePos(BlockPos first, BlockPos second){
return first.getX() == second.getX() && first.getY() == second.getY() && first.getZ() == second.getZ();
}
}

View file

@ -13,6 +13,8 @@ package de.ellpeck.actuallyadditions.mod.util;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.util.text.translation.I18n;
import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.List;
@ -37,6 +39,7 @@ public final class StringUtil{
return I18n.translateToLocalFormatted(text, replace);
}
@SideOnly(Side.CLIENT)
public static void drawSplitString(FontRenderer renderer, String strg, int x, int y, int width, int color, boolean shadow){
List list = renderer.listFormattedStringToWidth(strg, width);
for(int i = 0; i < list.size(); i++){
@ -45,6 +48,7 @@ public final class StringUtil{
}
}
@SideOnly(Side.CLIENT)
public static String getFluidInfo(FluidTank tank){
return tank.getFluid() == null || tank.getFluid().getFluid() == null ? "0/"+tank.getCapacity()+" mB" : tank.getFluidAmount()+"/"+tank.getCapacity()+" mB "+tank.getFluid().getLocalizedName();
}

View file

@ -53,14 +53,4 @@ public final class Util{
}
return -1;
}
public static int arrayContains(int[] array, int num){
for(int i = 0; i < array.length; i++){
if(num == array[i]){
return i;
}
}
return -1;
}
}

View file

@ -55,21 +55,9 @@ import java.util.List;
public final class WorldUtil{
public static void breakBlockAtSide(EnumFacing side, World world, BlockPos pos){
breakBlockAtSide(side, world, pos, 0);
}
public static void breakBlockAtSide(EnumFacing side, World world, BlockPos pos, int offset){
world.setBlockToAir(getCoordsFromSide(side, pos, offset));
}
public static BlockPos getCoordsFromSide(EnumFacing side, BlockPos pos, int offset){
return new BlockPos(pos.getX()+side.getFrontOffsetX()*(offset+1), pos.getY()+side.getFrontOffsetY()*(offset+1), pos.getZ()+side.getFrontOffsetZ()*(offset+1));
}
public static void doEnergyInteraction(TileEntity tile){
for(EnumFacing side : EnumFacing.values()){
TileEntity otherTile = getTileEntityFromSide(side, tile.getWorld(), tile.getPos());
TileEntity otherTile = tile.getWorld().getTileEntity(tile.getPos().offset(side));
if(otherTile != null){
IEnergyReceiver handlerTo = null;
IEnergyProvider handlerFrom = null;
@ -103,7 +91,7 @@ public final class WorldUtil{
public static void doFluidInteraction(TileEntity tile){
for(EnumFacing side : EnumFacing.values()){
TileEntity otherTile = getTileEntityFromSide(side, tile.getWorld(), tile.getPos());
TileEntity otherTile = tile.getWorld().getTileEntity(tile.getPos().offset(side));
if(otherTile != null){
for(int i = 0; i < 2; i++){
//Push and pull with old fluid system
@ -137,11 +125,6 @@ public final class WorldUtil{
}
}
public static TileEntity getTileEntityFromSide(EnumFacing side, World world, BlockPos pos){
BlockPos c = getCoordsFromSide(side, pos, 0);
return world.getTileEntity(c);
}
/**
* Checks if a given Block with a given Meta is present in given Positions
*
@ -153,7 +136,8 @@ public final class WorldUtil{
*/
public static boolean hasBlocksInPlacesGiven(BlockPos[] positions, Block block, int meta, World world){
for(BlockPos pos : positions){
if(!(PosUtil.getBlock(pos, world) == block && PosUtil.getMetadata(pos, world) == meta)){
IBlockState state = world.getBlockState(pos);
if(!(state.getBlock() == block && block.getMetaFromState(state) == meta)){
return false;
}
}
@ -163,7 +147,8 @@ public final class WorldUtil{
public static ItemStack useItemAtSide(EnumFacing side, World world, BlockPos pos, ItemStack stack){
if(world instanceof WorldServer && stack != null && stack.getItem() != null){
BlockPos offsetPos = pos.offset(side);
Block block = PosUtil.getBlock(offsetPos, world);
IBlockState state = world.getBlockState(offsetPos);
Block block = state.getBlock();
boolean replaceable = block.isReplaceable(world, offsetPos);
//Fluids
@ -177,7 +162,7 @@ public final class WorldUtil{
}
if(fluid != null && fluid.amount >= Util.BUCKET && fluid.getFluid().getBlock() != null && fluid.getFluid().getBlock().canPlaceBlockAt(world, offsetPos)){
if(PosUtil.setBlock(offsetPos, world, fluid.getFluid().getBlock(), 0, 2)){
if(world.setBlockState(offsetPos, fluid.getFluid().getBlock().getDefaultState(), 2)){
return stack.getItem().getContainerItem(stack);
}
}
@ -185,7 +170,7 @@ public final class WorldUtil{
//Redstone
if(replaceable && stack.getItem() == Items.REDSTONE){
PosUtil.setBlock(offsetPos, world, Blocks.REDSTONE_WIRE, 0, 2);
world.setBlockState(offsetPos, Blocks.REDSTONE_WIRE.getDefaultState(), 2);
stack.stackSize--;
return stack;
}
@ -216,7 +201,7 @@ public final class WorldUtil{
}
public static void dropItemAtSide(EnumFacing side, World world, BlockPos pos, ItemStack stack){
BlockPos coords = getCoordsFromSide(side, pos, 0);
BlockPos coords = pos.offset(side);
EntityItem item = new EntityItem(world, coords.getX()+0.5, coords.getY()+0.5, coords.getZ()+0.5, stack);
item.motionX = 0;
item.motionY = 0;
@ -247,10 +232,10 @@ public final class WorldUtil{
public static ArrayList<Material> getMaterialsAround(World world, BlockPos pos){
ArrayList<Material> blocks = new ArrayList<Material>();
blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.NORTH), world));
blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.EAST), world));
blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.SOUTH), world));
blocks.add(PosUtil.getMaterial(pos.offset(EnumFacing.WEST), world));
blocks.add(world.getBlockState(pos.offset(EnumFacing.NORTH)).getMaterial());
blocks.add(world.getBlockState(pos.offset(EnumFacing.EAST)).getMaterial());
blocks.add(world.getBlockState(pos.offset(EnumFacing.SOUTH)).getMaterial());
blocks.add(world.getBlockState(pos.offset(EnumFacing.WEST)).getMaterial());
return blocks;
}
@ -262,6 +247,7 @@ public final class WorldUtil{
return addToInventory(inventory, 0, inventory.getSizeInventory(), stacks, side, actuallyDo, shouldAlwaysWork);
}
//TODO This is disgusting and has to be updated to the capability system
/**
* Add an ArrayList of ItemStacks to an Array of slots
*