Sooo.. yea, I'm still at it.

And still not compilable.
Oh god.
This commit is contained in:
Ellpeck 2016-01-07 23:42:42 +01:00
parent 020745a813
commit b2a00d2c8d
112 changed files with 665 additions and 1126 deletions

View file

@ -2,7 +2,7 @@ package cofh.api.energy;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraft.util.EnumFacing;
/** /**
* Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your own. * Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your own.
@ -30,34 +30,34 @@ public class TileEnergyHandler extends TileEntity implements IEnergyHandler {
/* IEnergyConnection */ /* IEnergyConnection */
@Override @Override
public boolean canConnectEnergy(ForgeDirection from) { public boolean canConnectEnergy(EnumFacing from) {
return true; return true;
} }
/* IEnergyReceiver */ /* IEnergyReceiver */
@Override @Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate) {
return storage.receiveEnergy(maxReceive, simulate); return storage.receiveEnergy(maxReceive, simulate);
} }
/* IEnergyProvider */ /* IEnergyProvider */
@Override @Override
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate) {
return storage.extractEnergy(maxExtract, simulate); return storage.extractEnergy(maxExtract, simulate);
} }
/* IEnergyReceiver and IEnergyProvider */ /* IEnergyReceiver and IEnergyProvider */
@Override @Override
public int getEnergyStored(ForgeDirection from) { public int getEnergyStored(EnumFacing from) {
return storage.getEnergyStored(); return storage.getEnergyStored();
} }
@Override @Override
public int getMaxEnergyStored(ForgeDirection from) { public int getMaxEnergyStored(EnumFacing from) {
return storage.getMaxEnergyStored(); return storage.getMaxEnergyStored();
} }

View file

@ -6,5 +6,5 @@
package cofh.api.energy; package cofh.api.energy;
import cofh.api.CoFHAPIProps; import cofh.api.CoFHAPIProps;
import cpw.mods.fml.common.API; import net.minecraftforge.fml.common.API;

View file

@ -5,5 +5,4 @@
@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHLib", provides = "CoFHAPI") @API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHLib", provides = "CoFHAPI")
package cofh.api; package cofh.api;
import cpw.mods.fml.common.API; import net.minecraftforge.fml.common.API;

View file

@ -60,7 +60,7 @@ public class CrusherRecipe{
return null; return null;
} }
List<ItemStack> stacks = OreDictionary.getOres(this.outputOne, false); List<ItemStack> stacks = OreDictionary.getOres(this.outputOne);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
List<ItemStack> stacksCopy = new ArrayList<ItemStack>(); List<ItemStack> stacksCopy = new ArrayList<ItemStack>();
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
@ -84,7 +84,7 @@ public class CrusherRecipe{
return null; return null;
} }
List<ItemStack> stacks = OreDictionary.getOres(this.outputTwo, false); List<ItemStack> stacks = OreDictionary.getOres(this.outputTwo);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
List<ItemStack> stacksCopy = new ArrayList<ItemStack>(); List<ItemStack> stacksCopy = new ArrayList<ItemStack>();
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
@ -108,7 +108,7 @@ public class CrusherRecipe{
return null; return null;
} }
List<ItemStack> stacks = OreDictionary.getOres(this.input, false); List<ItemStack> stacks = OreDictionary.getOres(this.input);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
List<ItemStack> stacksCopy = new ArrayList<ItemStack>(); List<ItemStack> stacksCopy = new ArrayList<ItemStack>();
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){

View file

@ -46,7 +46,7 @@ public class LensNoneRecipe{
return null; return null;
} }
List<ItemStack> stacks = OreDictionary.getOres(this.output, false); List<ItemStack> stacks = OreDictionary.getOres(this.output);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
List<ItemStack> stacksCopy = new ArrayList<ItemStack>(); List<ItemStack> stacksCopy = new ArrayList<ItemStack>();
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){
@ -70,7 +70,7 @@ public class LensNoneRecipe{
return null; return null;
} }
List<ItemStack> stacks = OreDictionary.getOres(this.input, false); List<ItemStack> stacks = OreDictionary.getOres(this.input);
if(stacks != null && !stacks.isEmpty()){ if(stacks != null && !stacks.isEmpty()){
List<ItemStack> stacksCopy = new ArrayList<ItemStack>(); List<ItemStack> stacksCopy = new ArrayList<ItemStack>();
for(ItemStack stack : stacks){ for(ItemStack stack : stacks){

View file

@ -70,21 +70,21 @@ public class BlockBookletStand extends BlockContainerBase implements IHudDisplay
} }
@Override @Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
Position pos = new Position(x, y, z); Position thePos = Position.fromBlockPos(pos);
if(rotation == 0){ if(rotation == 0){
pos.setMetadata(world, 2, 2); thePos.setMetadata(world, 2, 2);
} }
if(rotation == 1){ if(rotation == 1){
pos.setMetadata(world, 1, 2); thePos.setMetadata(world, 1, 2);
} }
if(rotation == 2){ if(rotation == 2){
pos.setMetadata(world, 0, 2); thePos.setMetadata(world, 0, 2);
} }
if(rotation == 3){ if(rotation == 3){
pos.setMetadata(world, 3, 2); thePos.setMetadata(world, 3, 2);
} }
TileEntityBookletStand tile = (TileEntityBookletStand)world.getTileEntity(pos); TileEntityBookletStand tile = (TileEntityBookletStand)world.getTileEntity(pos);
@ -97,7 +97,7 @@ public class BlockBookletStand extends BlockContainerBase implements IHudDisplay
} }
} }
super.onBlockPlacedBy(world, x, y, z, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
} }
@Override @Override

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors;
@ -17,13 +18,14 @@ import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -37,8 +39,6 @@ public class BlockColoredLamp extends BlockBase{
public static TheColoredLampColors[] allLampTypes = TheColoredLampColors.values(); public static TheColoredLampColors[] allLampTypes = TheColoredLampColors.values();
public boolean isOn; public boolean isOn;
@SideOnly(Side.CLIENT)
private IIcon[] textures;
public BlockColoredLamp(boolean isOn, String name){ public BlockColoredLamp(boolean isOn, String name){
super(Material.redstoneLight, name); super(Material.redstoneLight, name);
@ -49,27 +49,21 @@ public class BlockColoredLamp extends BlockBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public Item getItemDropped(IBlockState state, Random rand, int par3){
public IIcon getIcon(int side, int meta){
return meta >= allLampTypes.length ? null : textures[meta];
}
@Override
public Item getItemDropped(int par1, Random rand, int par3){
return Item.getItemFromBlock(InitBlocks.blockColoredLamp); return Item.getItemFromBlock(InitBlocks.blockColoredLamp);
} }
@Override @Override
public int damageDropped(int meta){ public int damageDropped(IBlockState state){
return meta; return this.getMetaFromState(state);
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ){
//Turning On //Turning On
if(player.isSneaking()){ if(player.isSneaking()){
if(!world.isRemote){ if(!world.isRemote){
world.setBlock(x, y, z, this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn, world.getBlockMetadata(x, y, z), 2); Position.fromBlockPos(pos).setBlock(world, this.isOn ? InitBlocks.blockColoredLamp : InitBlocks.blockColoredLampOn, Position.fromBlockPos(pos).getMetadata(world), 2);
} }
return true; return true;
} }
@ -81,9 +75,9 @@ public class BlockColoredLamp extends BlockBase{
String name = OreDictionary.getOreName(oreID); String name = OreDictionary.getOreName(oreID);
TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name); TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name);
if(color != null){ if(color != null){
if(world.getBlockMetadata(x, y, z) != color.ordinal()){ if(Position.fromBlockPos(pos).getMetadata(world) != color.ordinal()){
if(!world.isRemote){ if(!world.isRemote){
world.setBlockMetadataWithNotify(x, y, z, color.ordinal(), 2); Position.fromBlockPos(pos).setMetadata(world, color.ordinal(), 2);
if(!player.capabilities.isCreativeMode){ if(!player.capabilities.isCreativeMode){
player.inventory.decrStackSize(player.inventory.currentItem, 1); player.inventory.decrStackSize(player.inventory.currentItem, 1);
} }
@ -98,13 +92,13 @@ public class BlockColoredLamp extends BlockBase{
} }
@Override @Override
public ItemStack createStackedBlock(int meta){ public ItemStack createStackedBlock(IBlockState state){
return new ItemStack(InitBlocks.blockColoredLamp, 1, meta); return new ItemStack(InitBlocks.blockColoredLamp, 1, this.getMetaFromState(state));
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z){ public Item getItem(World world, BlockPos pos){
return Item.getItemFromBlock(InitBlocks.blockColoredLamp); return Item.getItemFromBlock(InitBlocks.blockColoredLamp);
} }
@ -117,16 +111,7 @@ public class BlockColoredLamp extends BlockBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public int getLightValue(IBlockAccess world, BlockPos pos){
public void registerBlockIcons(IIconRegister iconReg){
this.textures = new IIcon[allLampTypes.length];
for(int i = 0; i < allLampTypes.length; i++){
this.textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+allLampTypes[i].name);
}
}
@Override
public int getLightValue(IBlockAccess world, int x, int y, int z){
return this.isOn ? 15 : 0; return this.isOn ? 15 : 0;
} }
@ -137,7 +122,7 @@ public class BlockColoredLamp extends BlockBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
public static class TheItemBlock extends ItemBlockBase{ public static class TheItemBlock extends ItemBlockBase{
@ -153,7 +138,7 @@ public class BlockColoredLamp extends BlockBase{
if(stack.getItemDamage() >= allLampTypes.length){ if(stack.getItemDamage() >= allLampTypes.length){
return null; return null;
} }
return StringUtil.localize(this.getUnlocalizedName(stack)+".name")+(((BlockColoredLamp)this.field_150939_a).isOn ? " ("+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".onSuffix.desc")+")" : ""); return StringUtil.localize(this.getUnlocalizedName(stack)+".name")+(((BlockColoredLamp)this.block).isOn ? " ("+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".onSuffix.desc")+")" : "");
} }
@Override @Override

View file

@ -10,28 +10,23 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFermentingBarrel; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFermentingBarrel;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockFermentingBarrel extends BlockContainerBase{ public class BlockFermentingBarrel extends BlockContainerBase{
@SideOnly(Side.CLIENT)
private IIcon iconTop;
public BlockFermentingBarrel(String name){ public BlockFermentingBarrel(String name){
super(Material.wood, name); super(Material.wood, name);
this.setHarvestLevel("axe", 0); this.setHarvestLevel("axe", 0);
@ -46,38 +41,25 @@ public class BlockFermentingBarrel extends BlockContainerBase{
} }
@Override @Override
public void breakBlock(World world, int x, int y, int z, Block block, int par6){ public void breakBlock(World world, BlockPos pos, IBlockState state){
this.dropInventory(world, x, y, z); this.dropInventory(world, Position.fromBlockPos(pos));
super.breakBlock(world, x, y, z, block, par6); super.breakBlock(world, pos, state);
} }
@Override @Override
@SideOnly(Side.CLIENT) public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){
public IIcon getIcon(int side, int metadata){
return side <= 1 ? this.iconTop : this.blockIcon;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){
if(!world.isRemote){ if(!world.isRemote){
TileEntityFermentingBarrel press = (TileEntityFermentingBarrel)world.getTileEntity(x, y, z); TileEntityFermentingBarrel press = (TileEntityFermentingBarrel)world.getTileEntity(pos);
if(press != null){ if(press != null){
player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FERMENTING_BARREL.ordinal(), world, x, y, z); player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.FERMENTING_BARREL.ordinal(), world, pos.getX(), pos.getY(), pos.getZ());
} }
return true; return true;
} }
return true; return true;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.iconTop = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
} }

View file

@ -10,26 +10,21 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockFireworkBox extends BlockContainerBase{ public class BlockFireworkBox extends BlockContainerBase{
@SideOnly(Side.CLIENT)
private IIcon topIcon;
public BlockFireworkBox(String name){ public BlockFireworkBox(String name){
super(Material.rock, name); super(Material.rock, name);
this.setHarvestLevel("pickaxe", 0); this.setHarvestLevel("pickaxe", 0);
@ -44,31 +39,18 @@ public class BlockFireworkBox extends BlockContainerBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){
public IIcon getIcon(int side, int meta){ return this.tryToggleRedstone(world, Position.fromBlockPos(pos), player);
return side == 1 ? this.topIcon : this.blockIcon;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){
return this.tryToggleRedstone(world, x, y, z, player);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
} }
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
@Override @Override
public void breakBlock(World world, int x, int y, int z, Block block, int par6){ public void breakBlock(World world, BlockPos pos, IBlockState state){
this.dropInventory(world, x, y, z); this.dropInventory(world, Position.fromBlockPos(pos));
super.breakBlock(world, x, y, z, block, par6); super.breakBlock(world, pos, state);
} }
} }

View file

@ -14,15 +14,10 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFishingNet; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFishingNet;
import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockFishingNet extends BlockContainerBase{ public class BlockFishingNet extends BlockContainerBase{
@ -40,35 +35,18 @@ public class BlockFishingNet extends BlockContainerBase{
return new TileEntityFishingNet(); return new TileEntityFishingNet();
} }
@Override
public boolean renderAsNormalBlock(){
return false;
}
@Override @Override
public int getRenderType(){ public int getRenderType(){
return AssetUtil.TESR_RENDER_ID; return AssetUtil.TESR_RENDER_ID;
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata){
return this.blockIcon;
}
@Override @Override
public boolean isOpaqueCube(){ public boolean isOpaqueCube(){
return false; return false;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = Blocks.planks.getIcon(0, 0);
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
} }

View file

@ -10,33 +10,24 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFluidCollector; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFluidCollector;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPistonBase; import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockFluidCollector extends BlockContainerBase{ public class BlockFluidCollector extends BlockContainerBase{
@SideOnly(Side.CLIENT)
private IIcon frontIcon;
@SideOnly(Side.CLIENT)
private IIcon topIcon;
private boolean isPlacer; private boolean isPlacer;
public BlockFluidCollector(boolean isPlacer, String name){ public BlockFluidCollector(boolean isPlacer, String name){
@ -53,31 +44,6 @@ public class BlockFluidCollector extends BlockContainerBase{
return this.isPlacer ? new TileEntityFluidCollector.TileEntityFluidPlacer() : new TileEntityFluidCollector(); return this.isPlacer ? new TileEntityFluidCollector.TileEntityFluidPlacer() : new TileEntityFluidCollector();
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){
int meta = world.getBlockMetadata(x, y, z);
if(side != meta && (side == 0 || side == 1)){
return this.topIcon;
}
if(side == meta){
return this.frontIcon;
}
return this.blockIcon;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta){
if(side == 0 || side == 1){
return this.topIcon;
}
if(side == 3){
return this.frontIcon;
}
return this.blockIcon;
}
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){
if(this.tryToggleRedstone(world, x, y, z, player)){ if(this.tryToggleRedstone(world, x, y, z, player)){
@ -93,30 +59,22 @@ public class BlockFluidCollector extends BlockContainerBase{
return true; return true;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.frontIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Front");
this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
@Override @Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.determineOrientation(world, x, y, z, player); int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal();
world.setBlockMetadataWithNotify(x, y, z, rotation, 2); Position.fromBlockPos(pos).setMetadata(world, rotation, 2);
super.onBlockPlacedBy(world, x, y, z, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
} }
@Override @Override
public void breakBlock(World world, int x, int y, int z, Block block, int par6){ public void breakBlock(World world, BlockPos pos, IBlockState state){
this.dropInventory(world, x, y, z); this.dropInventory(world, Position.fromBlockPos(pos));
super.breakBlock(world, x, y, z, block, par6); super.breakBlock(world, pos, state);
} }
} }

View file

@ -12,27 +12,19 @@ package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position; import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockPistonBase; import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockLampPowerer extends BlockBase{ public class BlockLampPowerer extends BlockBase{
@SideOnly(Side.CLIENT)
private IIcon frontIcon;
public BlockLampPowerer(String name){ public BlockLampPowerer(String name){
super(Material.rock, name); super(Material.rock, name);
this.setHarvestLevel("pickaxe", 0); this.setHarvestLevel("pickaxe", 0);
@ -42,59 +34,35 @@ public class BlockLampPowerer extends BlockBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock){
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ this.updateLamp(world, Position.fromBlockPos(pos));
int meta = world.getBlockMetadata(x, y, z);
if(side == meta){
return this.frontIcon;
}
return this.blockIcon;
} }
@Override @Override
@SideOnly(Side.CLIENT) public void onBlockAdded(World world, BlockPos pos, IBlockState state){
public IIcon getIcon(int side, int meta){ this.updateLamp(world, Position.fromBlockPos(pos));
if(side == 3){
return this.frontIcon;
}
return this.blockIcon;
} }
@Override @Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block){ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
this.updateLamp(world, x, y, z); int rotation = BlockPistonBase.getFacingFromEntity(world, pos, player).ordinal();
Position.fromBlockPos(pos).setMetadata(world, rotation, 2);
super.onBlockPlacedBy(world, pos, state, player, stack);
} }
@Override private void updateLamp(World world, Position pos){
public void onBlockAdded(World world, int x, int y, int z){
this.updateLamp(world, x, y, z);
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){
int rotation = BlockPistonBase.determineOrientation(world, x, y, z, player);
world.setBlockMetadataWithNotify(x, y, z, rotation, 2);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.frontIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Front");
}
private void updateLamp(World world, int x, int y, int z){
if(!world.isRemote){ if(!world.isRemote){
Position coords = WorldUtil.getCoordsFromSide(ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)), x, y, z, 0); Position coords = WorldUtil.getCoordsFromSide(WorldUtil.getDirectionByPistonRotation(pos.getMetadata(world)), pos, 0);
if(coords != null && coords.getBlock(world) instanceof BlockColoredLamp){ if(coords != null && coords.getBlock(world) instanceof BlockColoredLamp){
if(world.isBlockIndirectlyGettingPowered(x, y, z)){ if(world.isBlockIndirectlyGettingPowered(pos) > 0){
if(!((BlockColoredLamp)coords.getBlock(world)).isOn){ if(!((BlockColoredLamp)coords.getBlock(world)).isOn){
world.setBlock(coords.getX(), coords.getY(), coords.getZ(), InitBlocks.blockColoredLampOn, world.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()), 2); pos.setBlock(world, InitBlocks.blockColoredLampOn, coords.getMetadata(world), 2);
} }
} }
else{ else{
if(((BlockColoredLamp)coords.getBlock(world)).isOn){ if(((BlockColoredLamp)coords.getBlock(world)).isOn){
world.setBlock(coords.getX(), coords.getY(), coords.getZ(), InitBlocks.blockColoredLamp, world.getBlockMetadata(coords.getX(), coords.getY(), coords.getZ()), 2); pos.setBlock(world, InitBlocks.blockColoredLamp, coords.getMetadata(world), 2);
} }
} }
} }
@ -103,6 +71,6 @@ public class BlockLampPowerer extends BlockBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
} }

View file

@ -15,19 +15,19 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityMiner; import de.ellpeck.actuallyadditions.mod.tile.TileEntityMiner;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.profiler.Profiler; import net.minecraft.profiler.Profiler;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -35,11 +35,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockMiner extends BlockContainerBase implements IHudDisplay{ public class BlockMiner extends BlockContainerBase implements IHudDisplay{
@SideOnly(Side.CLIENT)
private IIcon frontIcon;
@SideOnly(Side.CLIENT)
private IIcon topIcon;
public BlockMiner(String name){ public BlockMiner(String name){
super(Material.rock, name); super(Material.rock, name);
this.setHarvestLevel("pickaxe", 0); this.setHarvestLevel("pickaxe", 0);
@ -48,39 +43,25 @@ public class BlockMiner extends BlockContainerBase implements IHudDisplay{
this.setStepSound(soundTypeStone); this.setStepSound(soundTypeStone);
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta){
return side == 0 ? this.frontIcon : (side == 1 ? this.topIcon : this.blockIcon);
}
@Override @Override
public boolean isOpaqueCube(){ public boolean isOpaqueCube(){
return false; return false;
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){
if(!world.isRemote){ if(!world.isRemote){
TileEntity tile = world.getTileEntity(x, y, z); TileEntity tile = world.getTileEntity(pos);
if(tile instanceof TileEntityMiner){ if(tile instanceof TileEntityMiner){
player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.MINER.ordinal(), world, x, y, z); player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.MINER.ordinal(), world, pos.getX(), pos.getY(), pos.getZ());
} }
} }
return true; return true;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.frontIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Front");
this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
@Override @Override

View file

@ -13,17 +13,14 @@ package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks;
import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -32,13 +29,6 @@ import java.util.List;
public class BlockMisc extends BlockBase{ public class BlockMisc extends BlockBase{
public static final TheMiscBlocks[] allMiscBlocks = TheMiscBlocks.values(); public static final TheMiscBlocks[] allMiscBlocks = TheMiscBlocks.values();
@SideOnly(Side.CLIENT)
public IIcon[] textures;
@SideOnly(Side.CLIENT)
private IIcon ironCasingSeasonalTop;
@SideOnly(Side.CLIENT)
private IIcon ironCasingSeasonal;
public BlockMisc(String name){ public BlockMisc(String name){
super(Material.rock, name); super(Material.rock, name);
@ -48,19 +38,8 @@ public class BlockMisc extends BlockBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public int damageDropped(IBlockState state){
public IIcon getIcon(int side, int metadata){ return this.getMetaFromState(state);
if(ClientProxy.jingleAllTheWay && side != 0){
if(metadata == TheMiscBlocks.IRON_CASING.ordinal()){
return side == 1 ? this.ironCasingSeasonalTop : this.ironCasingSeasonal;
}
}
return metadata >= textures.length ? null : textures[metadata];
}
@Override
public int damageDropped(int meta){
return meta;
} }
@SuppressWarnings("all") @SuppressWarnings("all")
@ -71,18 +50,6 @@ public class BlockMisc extends BlockBase{
} }
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.textures = new IIcon[allMiscBlocks.length];
for(int i = 0; i < textures.length; i++){
textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+allMiscBlocks[i].name);
}
this.ironCasingSeasonalTop = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscIronCasingSnowTop");
this.ironCasingSeasonal = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscIronCasingSnow");
}
@Override @Override
public Class<? extends ItemBlockBase> getItemBlock(){ public Class<? extends ItemBlockBase> getItemBlock(){
return TheItemBlock.class; return TheItemBlock.class;
@ -90,7 +57,7 @@ public class BlockMisc extends BlockBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= allMiscBlocks.length ? EnumRarity.common : allMiscBlocks[stack.getItemDamage()].rarity; return stack.getItemDamage() >= allMiscBlocks.length ? EnumRarity.COMMON : allMiscBlocks[stack.getItemDamage()].rarity;
} }
public static class TheItemBlock extends ItemBlockBase{ public static class TheItemBlock extends ItemBlockBase{

View file

@ -10,20 +10,21 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy; import de.ellpeck.actuallyadditions.mod.proxy.ClientProxy;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator; import de.ellpeck.actuallyadditions.mod.tile.TileEntityOilGenerator;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -32,11 +33,6 @@ import java.util.Random;
public class BlockOilGenerator extends BlockContainerBase{ public class BlockOilGenerator extends BlockContainerBase{
@SideOnly(Side.CLIENT)
private IIcon topIcon;
@SideOnly(Side.CLIENT)
private IIcon bottomIcon;
public BlockOilGenerator(String name){ public BlockOilGenerator(String name){
super(Material.rock, name); super(Material.rock, name);
this.setHarvestLevel("pickaxe", 0); this.setHarvestLevel("pickaxe", 0);
@ -53,50 +49,34 @@ public class BlockOilGenerator extends BlockContainerBase{
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta){ public void randomDisplayTick(World world, BlockPos pos, IBlockState state, Random rand){
return side <= 1 ? (side == 0 ? this.bottomIcon : this.topIcon) : this.blockIcon; if(Position.fromBlockPos(pos).getMetadata(world) == 1){
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand){
int meta = world.getBlockMetadata(x, y, z);
if(meta == 1){
for(int i = 0; i < 5; i++){ for(int i = 0; i < 5; i++){
world.spawnParticle(ClientProxy.bulletForMyValentine ? "heart" : "smoke", (double)x+0.5F, (double)y+1.0F, (double)z+0.5F, 0.0D, 0.0D, 0.0D); world.spawnParticle(ClientProxy.bulletForMyValentine ? EnumParticleTypes.HEART : EnumParticleTypes.SMOKE_NORMAL, (double)pos.getX()+0.5F, (double)pos.getY()+1.0F, (double)pos.getZ()+0.5F, 0.0D, 0.0D, 0.0D);
} }
} }
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){
if(!world.isRemote){ if(!world.isRemote){
TileEntityOilGenerator generator = (TileEntityOilGenerator)world.getTileEntity(x, y, z); TileEntityOilGenerator generator = (TileEntityOilGenerator)world.getTileEntity(pos);
if(generator != null){ if(generator != null){
player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.OIL_GENERATOR.ordinal(), world, x, y, z); player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.OIL_GENERATOR.ordinal(), world, pos.getX(), pos.getY(), pos.getZ());
} }
return true; return true;
} }
return true; return true;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
this.bottomIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Bottom");
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
@Override @Override
public void breakBlock(World world, int x, int y, int z, Block block, int par6){ public void breakBlock(World world, BlockPos pos, IBlockState state){
this.dropInventory(world, x, y, z); this.dropInventory(world, Position.fromBlockPos(pos));
super.breakBlock(world, x, y, z, block, par6); super.breakBlock(world, pos, state);
} }
} }

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBushBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockBushBase;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant;
import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase; import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
@ -17,18 +18,19 @@ import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class BlockWildPlant extends BlockBushBase{ public class BlockWildPlant extends BlockBushBase{
@ -41,8 +43,10 @@ public class BlockWildPlant extends BlockBushBase{
} }
@Override @Override
public boolean canBlockStay(World world, int x, int y, int z){ public boolean canBlockStay(World world, BlockPos pos, IBlockState state){
return world.getBlockMetadata(x, y, z) == TheWildPlants.RICE.ordinal() ? world.getBlock(x, y-1, z).getMaterial() == Material.water : world.getBlock(x, y-1, z).canSustainPlant(world, x, y-1, z, ForgeDirection.UP, this); Position thePos = Position.fromBlockPos(pos);
Position offset = thePos.getOffsetPosition(0, -1, 0);
return thePos.getMetadata(world) == TheWildPlants.RICE.ordinal() ? offset.getMaterial(world) == Material.water : offset.getBlock(world).canSustainPlant(world, offset, EnumFacing.UP, this);
} }
@Override @Override
@ -57,24 +61,18 @@ public class BlockWildPlant extends BlockBushBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= allWildPlants.length ? EnumRarity.common : allWildPlants[stack.getItemDamage()].rarity; return stack.getItemDamage() >= allWildPlants.length ? EnumRarity.COMMON : allWildPlants[stack.getItemDamage()].rarity;
} }
@Override @Override
@SideOnly(Side.CLIENT) public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player){
public IIcon getIcon(int side, int metadata){
return metadata >= allWildPlants.length ? null : allWildPlants[metadata].wildVersionOf.getIcon(0, 7);
}
@Override
public boolean canSilkHarvest(){
return false; return false;
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z){ public Item getItem(World world, BlockPos pos){
int meta = world.getBlockMetadata(x, y, z); int meta = Position.fromBlockPos(pos).getMetadata(world);
return meta >= allWildPlants.length ? null : ((BlockPlant)allWildPlants[meta].wildVersionOf).seedItem; return meta >= allWildPlants.length ? null : ((BlockPlant)allWildPlants[meta].wildVersionOf).seedItem;
} }
@ -87,14 +85,9 @@ public class BlockWildPlant extends BlockBushBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune){
public void registerBlockIcons(IIconRegister iconReg){ int metadata = Position.fromBlockPos(pos).getMetadata(world);
return metadata >= allWildPlants.length ? null : allWildPlants[metadata].wildVersionOf.getDrops(world, pos, allWildPlants[metadata].wildVersionOf.getStateFromMeta(7), fortune);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune){
return metadata >= allWildPlants.length ? null : allWildPlants[metadata].wildVersionOf.getDrops(world, x, y, z, 7, fortune);
} }
public static class TheItemBlock extends ItemBlockBase{ public static class TheItemBlock extends ItemBlockBase{
@ -105,12 +98,6 @@ public class BlockWildPlant extends BlockBushBase{
this.setMaxDamage(0); this.setMaxDamage(0);
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta){
return this.field_150939_a.getIcon(0, meta);
}
@Override @Override
public String getUnlocalizedName(ItemStack stack){ public String getUnlocalizedName(ItemStack stack){
return stack.getItemDamage() >= allWildPlants.length ? StringUtil.BUGGED_ITEM_NAME : this.getUnlocalizedName()+allWildPlants[stack.getItemDamage()].name; return stack.getItemDamage() >= allWildPlants.length ? StringUtil.BUGGED_ITEM_NAME : this.getUnlocalizedName()+allWildPlants[stack.getItemDamage()].name;

View file

@ -10,36 +10,28 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockContainerBase;
import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler; import de.ellpeck.actuallyadditions.mod.inventory.GuiHandler;
import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.InitItems;
import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier; import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class BlockXPSolidifier extends BlockContainerBase{ public class BlockXPSolidifier extends BlockContainerBase{
@SideOnly(Side.CLIENT)
private IIcon topIcon;
@SideOnly(Side.CLIENT)
private IIcon frontIcon;
public BlockXPSolidifier(String name){ public BlockXPSolidifier(String name){
super(Material.rock, name); super(Material.rock, name);
this.setHarvestLevel("pickaxe", 0); this.setHarvestLevel("pickaxe", 0);
@ -54,93 +46,61 @@ public class BlockXPSolidifier extends BlockContainerBase{
} }
@Override @Override
@SideOnly(Side.CLIENT) public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing par6, float par7, float par8, float par9){
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){
int meta = world.getBlockMetadata(x, y, z);
if(side == 1 || side == 0){
return this.topIcon;
}
if(side == meta+2){
return this.frontIcon;
}
return this.blockIcon;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta){
if(side == 1 || side == 0){
return this.topIcon;
}
if(side == 3){
return this.frontIcon;
}
return this.blockIcon;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){
if(!world.isRemote){ if(!world.isRemote){
TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)world.getTileEntity(x, y, z); TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)world.getTileEntity(pos);
if(solidifier != null){ if(solidifier != null){
player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.XP_SOLIDIFIER.ordinal(), world, x, y, z); player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.XP_SOLIDIFIER.ordinal(), world, pos.getX(), pos.getY(), pos.getZ());
} }
return true; return true;
} }
return true; return true;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconReg){
this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Top");
this.frontIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+"Front");
}
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.epic; return EnumRarity.EPIC;
} }
@Override @Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){ public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack){
int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3;
Position thePos = Position.fromBlockPos(pos);
if(rotation == 0){ if(rotation == 0){
world.setBlockMetadataWithNotify(x, y, z, 0, 2); thePos.setMetadata(world, 0, 2);
} }
if(rotation == 1){ if(rotation == 1){
world.setBlockMetadataWithNotify(x, y, z, 3, 2); thePos.setMetadata(world, 3, 2);
} }
if(rotation == 2){ if(rotation == 2){
world.setBlockMetadataWithNotify(x, y, z, 1, 2); thePos.setMetadata(world, 1, 2);
} }
if(rotation == 3){ if(rotation == 3){
world.setBlockMetadataWithNotify(x, y, z, 2, 2); thePos.setMetadata(world, 2, 2);
} }
super.onBlockPlacedBy(world, x, y, z, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
} }
@Override @Override
public void breakBlock(World world, int x, int y, int z, Block block, int par6){ public void breakBlock(World world, BlockPos pos, IBlockState state){
this.dropInventory(world, x, y, z); this.dropInventory(world, Position.fromBlockPos(pos));
TileEntity tile = world.getTileEntity(x, y, z); TileEntity tile = world.getTileEntity(pos);
if(tile instanceof TileEntityXPSolidifier){ if(tile instanceof TileEntityXPSolidifier){
TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)tile; TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)tile;
if(solidifier.amount > 0){ if(solidifier.amount > 0){
int stacks = solidifier.amount/64; int stacks = solidifier.amount/64;
int rest = solidifier.amount%64; int rest = solidifier.amount%64;
for(int i = 0; i < stacks; i++){ for(int i = 0; i < stacks; i++){
this.spawnItem(world, x, y, z, new ItemStack(InitItems.itemSolidifiedExperience, 64)); this.spawnItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(InitItems.itemSolidifiedExperience, 64));
} }
this.spawnItem(world, x, y, z, new ItemStack(InitItems.itemSolidifiedExperience, rest)); this.spawnItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(InitItems.itemSolidifiedExperience, rest));
solidifier.amount = 0; solidifier.amount = 0;
} }
} }
super.breakBlock(world, x, y, z, block, par6); super.breakBlock(world, pos, state);
} }
private void spawnItem(World world, int x, int y, int z, ItemStack stack){ private void spawnItem(World world, int x, int y, int z, ItemStack stack){

View file

@ -11,12 +11,13 @@
package de.ellpeck.actuallyadditions.mod.blocks; package de.ellpeck.actuallyadditions.mod.blocks;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
public class FluidAA extends Fluid{ public class FluidAA extends Fluid{
public FluidAA(String fluidName){ public FluidAA(String fluidName, String textureName){
super(fluidName); super(fluidName, new ResourceLocation(ModUtil.MOD_ID_LOWER, "textures/blocks/"+textureName+"Still.png"), new ResourceLocation(ModUtil.MOD_ID_LOWER, "textures/blocks/"+textureName+"Flowing.png"));
} }
@Override @Override

View file

@ -209,7 +209,7 @@ public class InitBlocks{
//Canola Fluid //Canola Fluid
String canolaOil = "canolaoil"; String canolaOil = "canolaoil";
if(!FluidRegistry.isFluidRegistered(canolaOil) || ConfigBoolValues.PREVENT_CANOLA_OVERRIDE.isEnabled()){ if(!FluidRegistry.isFluidRegistered(canolaOil) || ConfigBoolValues.PREVENT_CANOLA_OVERRIDE.isEnabled()){
fluidCanolaOil = new FluidAA(canolaOil).setRarity(EnumRarity.uncommon); fluidCanolaOil = new FluidAA(canolaOil, "blockCanolaOil").setRarity(EnumRarity.UNCOMMON);
FluidRegistry.registerFluid(fluidCanolaOil); FluidRegistry.registerFluid(fluidCanolaOil);
} }
else{ else{
@ -229,7 +229,7 @@ public class InitBlocks{
//Oil Fluid //Oil Fluid
String oil = "oil"; String oil = "oil";
if(!FluidRegistry.isFluidRegistered(oil) || ConfigBoolValues.PREVENT_OIL_OVERRIDE.isEnabled()){ if(!FluidRegistry.isFluidRegistered(oil) || ConfigBoolValues.PREVENT_OIL_OVERRIDE.isEnabled()){
fluidOil = new FluidAA(oil).setRarity(EnumRarity.uncommon); fluidOil = new FluidAA(oil, "blockOil").setRarity(EnumRarity.UNCOMMON);
FluidRegistry.registerFluid(fluidOil); FluidRegistry.registerFluid(fluidOil);
} }
else{ else{

View file

@ -30,7 +30,7 @@ public class BlockBase extends Block{
} }
private void register(){ private void register(){
this.setBlockName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName()); this.setUnlocalizedName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName());
GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName()); GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName());
if(this.shouldAddCreative()){ if(this.shouldAddCreative()){
this.setCreativeTab(CreativeTab.instance); this.setCreativeTab(CreativeTab.instance);
@ -53,6 +53,6 @@ public class BlockBase extends Block{
} }
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.common; return EnumRarity.COMMON;
} }
} }

View file

@ -29,7 +29,7 @@ public class BlockBushBase extends BlockBush{
} }
private void register(){ private void register(){
this.setBlockName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName()); this.setUnlocalizedName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName());
GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName()); GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName());
if(this.shouldAddCreative()){ if(this.shouldAddCreative()){
this.setCreativeTab(CreativeTab.instance); this.setCreativeTab(CreativeTab.instance);
@ -52,6 +52,6 @@ public class BlockBushBase extends BlockBush{
} }
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.common; return EnumRarity.COMMON;
} }
} }

View file

@ -28,7 +28,7 @@ public class BlockStair extends BlockStairs{
} }
public BlockStair(Block block, String name, int meta){ public BlockStair(Block block, String name, int meta){
super(block, meta); super(block.getStateFromMeta(meta));
this.name = name; this.name = name;
this.setLightOpacity(0); this.setLightOpacity(0);
@ -36,7 +36,7 @@ public class BlockStair extends BlockStairs{
} }
private void register(){ private void register(){
this.setBlockName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName()); this.setUnlocalizedName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName());
GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName()); GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName());
if(this.shouldAddCreative()){ if(this.shouldAddCreative()){
this.setCreativeTab(CreativeTab.instance); this.setCreativeTab(CreativeTab.instance);
@ -59,6 +59,6 @@ public class BlockStair extends BlockStairs{
} }
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.common; return EnumRarity.COMMON;
} }
} }

View file

@ -14,11 +14,11 @@ import de.ellpeck.actuallyadditions.mod.creative.CreativeTab;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockWall; import net.minecraft.block.BlockWall;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -45,7 +45,7 @@ public class BlockWallAA extends BlockWall{
} }
private void register(){ private void register(){
this.setBlockName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName()); this.setUnlocalizedName(ModUtil.MOD_ID_LOWER+"."+this.getBaseName());
GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName()); GameRegistry.registerBlock(this, this.getItemBlock(), this.getBaseName());
if(this.shouldAddCreative()){ if(this.shouldAddCreative()){
this.setCreativeTab(CreativeTab.instance); this.setCreativeTab(CreativeTab.instance);
@ -68,13 +68,7 @@ public class BlockWallAA extends BlockWall{
} }
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.common; return EnumRarity.COMMON;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta){
return this.baseBlock.getIcon(side, this.meta);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@ -85,7 +79,7 @@ public class BlockWallAA extends BlockWall{
} }
@Override @Override
public int damageDropped(int meta){ public int damageDropped(IBlockState state){
return meta; return this.getMetaFromState(state);
} }
} }

View file

@ -36,26 +36,26 @@ public class ItemBlockBase extends ItemBlock{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
if(this.field_150939_a instanceof BlockBase){ if(this.block instanceof BlockBase){
return ((BlockBase)this.field_150939_a).getRarity(stack); return ((BlockBase)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockContainerBase){ else if(this.block instanceof BlockContainerBase){
return ((BlockContainerBase)this.field_150939_a).getRarity(stack); return ((BlockContainerBase)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockFluidFlowing){ else if(this.block instanceof BlockFluidFlowing){
return ((BlockFluidFlowing)this.field_150939_a).getRarity(stack); return ((BlockFluidFlowing)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockPlant){ else if(this.block instanceof BlockPlant){
return ((BlockPlant)this.field_150939_a).getRarity(stack); return ((BlockPlant)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockStair){ else if(this.block instanceof BlockStair){
return ((BlockStair)this.field_150939_a).getRarity(stack); return ((BlockStair)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockWallAA){ else if(this.block instanceof BlockWallAA){
return ((BlockWallAA)this.field_150939_a).getRarity(stack); return ((BlockWallAA)this.block).getRarity(stack);
} }
else if(this.field_150939_a instanceof BlockBushBase){ else if(this.block instanceof BlockBushBase){
return ((BlockBushBase)this.field_150939_a).getRarity(stack); return ((BlockBushBase)this.block).getRarity(stack);
} }
else{ else{
return Util.FALLBACK_RARITY; return Util.FALLBACK_RARITY;

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.blocks.render; package de.ellpeck.actuallyadditions.mod.blocks.render;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -22,14 +23,14 @@ public class RenderLaserRelay extends RenderTileEntity{
} }
@Override @Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5){ public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5, int par6){
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F); GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glTranslatef(0.0F, -2.0F, 0.0F); GL11.glTranslatef(0.0F, -2.0F, 0.0F);
this.bindTexture(resLoc); this.bindTexture(resLoc);
int meta = tile.getWorldObj().getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord); int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld());
if(meta == 0){ if(meta == 0){
GL11.glRotatef(180F, 1F, 0F, 0F); GL11.glRotatef(180F, 1F, 0F, 0F);
GL11.glTranslatef(0F, -2F, 0F); GL11.glTranslatef(0F, -2F, 0F);

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.blocks.render; package de.ellpeck.actuallyadditions.mod.blocks.render;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA;
import de.ellpeck.actuallyadditions.mod.misc.cloud.ISmileyCloudEasterEgg; import de.ellpeck.actuallyadditions.mod.misc.cloud.ISmileyCloudEasterEgg;
import de.ellpeck.actuallyadditions.mod.misc.cloud.SmileyCloudEasterEggs; import de.ellpeck.actuallyadditions.mod.misc.cloud.SmileyCloudEasterEggs;
@ -19,8 +20,6 @@ import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -34,7 +33,7 @@ public class RenderSmileyCloud extends RenderTileEntity{
} }
@Override @Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5){ public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5, int partial){
if(!(tile instanceof TileEntitySmileyCloud)){ if(!(tile instanceof TileEntitySmileyCloud)){
return; return;
} }
@ -43,7 +42,7 @@ public class RenderSmileyCloud extends RenderTileEntity{
GL11.glPushMatrix(); GL11.glPushMatrix();
{ {
if(theCloud.flyHeight == 0){ if(theCloud.flyHeight == 0){
theCloud.flyHeight = tile.getWorldObj().rand.nextInt(30)+30; theCloud.flyHeight = tile.getWorld().rand.nextInt(30)+30;
} }
int bobHeight = theCloud.flyHeight; int bobHeight = theCloud.flyHeight;
double theTime = Minecraft.getSystemTime(); double theTime = Minecraft.getSystemTime();
@ -67,7 +66,7 @@ public class RenderSmileyCloud extends RenderTileEntity{
GL11.glPushMatrix(); GL11.glPushMatrix();
{ {
if(theModel.doesRotate()){ if(theModel.doesRotate()){
int meta = tile.getWorldObj().getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord); int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld());
if(meta == 0){ if(meta == 0){
GL11.glRotatef(180F, 0F, 1F, 0F); GL11.glRotatef(180F, 0F, 1F, 0F);
} }
@ -113,8 +112,8 @@ public class RenderSmileyCloud extends RenderTileEntity{
GL11.glRotatef(180F, 1F, 0F, 0F); GL11.glRotatef(180F, 1F, 0F, 0F);
GL11.glRotatef(180F, 0F, 1F, 0F); GL11.glRotatef(180F, 0F, 1F, 0F);
GL11.glRotatef(-RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(RenderManager.instance.playerViewX, 1.0F, 0.0F, 0.0F); GL11.glRotatef(Minecraft.getMinecraft().getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F);
float f = 1.6F; float f = 1.6F;
float f1 = 0.016666668F*f; float f1 = 0.016666668F*f;
GL11.glScalef(-f1, -f1, f1); GL11.glScalef(-f1, -f1, f1);
@ -123,20 +122,21 @@ public class RenderSmileyCloud extends RenderTileEntity{
GL11.glDepthMask(false); GL11.glDepthMask(false);
GL11.glEnable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0); OpenGlHelper.glBlendFunc(770, 771, 1, 0);
Tessellator tessellator = Tessellator.instance; //TODO Fix nameplate with Smiley Cloud
/*Tessellator tessellator = Tessellator.getInstance();
GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_TEXTURE_2D);
tessellator.startDrawingQuads(); tessellator.startDrawingQuads();
int i = Minecraft.getMinecraft().fontRenderer.getStringWidth(theCloud.name)/2; int i = Minecraft.getMinecraft().fontRendererObj.getStringWidth(theCloud.name)/2;
tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F); tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F);
tessellator.addVertex(-i-1, -1.0D, 0.0D); tessellator.addVertex(-i-1, -1.0D, 0.0D);
tessellator.addVertex(-i-1, 8.0D, 0.0D); tessellator.addVertex(-i-1, 8.0D, 0.0D);
tessellator.addVertex(i+1, 8.0D, 0.0D); tessellator.addVertex(i+1, 8.0D, 0.0D);
tessellator.addVertex(i+1, -1.0D, 0.0D); tessellator.addVertex(i+1, -1.0D, 0.0D);
tessellator.draw(); tessellator.draw();
GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_TEXTURE_2D);*/
GL11.glDepthMask(true); GL11.glDepthMask(true);
Minecraft.getMinecraft().fontRenderer.drawString(theCloud.name, -Minecraft.getMinecraft().fontRenderer.getStringWidth(theCloud.name)/2, 0, StringUtil.DECIMAL_COLOR_WHITE); Minecraft.getMinecraft().fontRendererObj.drawString(theCloud.name, -Minecraft.getMinecraft().fontRendererObj.getStringWidth(theCloud.name)/2, 0, StringUtil.DECIMAL_COLOR_WHITE);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_BLEND);

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.blocks.render; package de.ellpeck.actuallyadditions.mod.blocks.render;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA; import de.ellpeck.actuallyadditions.mod.blocks.render.model.ModelBaseAA;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
@ -28,7 +29,7 @@ public class RenderTileEntity extends TileEntitySpecialRenderer{
} }
@Override @Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5){ public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5, int i){
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F); GL11.glTranslatef((float)x+0.5F, (float)y-0.5F, (float)z+0.5F);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
@ -36,7 +37,7 @@ public class RenderTileEntity extends TileEntitySpecialRenderer{
this.bindTexture(resLoc); this.bindTexture(resLoc);
if(theModel.doesRotate()){ if(theModel.doesRotate()){
int meta = tile.getWorldObj().getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord); int meta = Position.fromTileEntity(tile).getMetadata(tile.getWorld());
if(meta == 0){ if(meta == 0){
GL11.glRotatef(180F, 0F, 1F, 0F); GL11.glRotatef(180F, 0F, 1F, 0F);
} }

View file

@ -90,8 +90,9 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
this.saveOnClose = saveOnClose; this.saveOnClose = saveOnClose;
} }
@Override
public void drawHoveringText(List list, int x, int y){ public void drawHoveringText(List list, int x, int y){
super.func_146283_a(list, x, y); super.drawHoveringText(list, x, y);
} }
public FontRenderer getFontRenderer(){ public FontRenderer getFontRenderer(){
@ -181,7 +182,7 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
else{ else{
if(AND_HIS_NAME_IS.length > this.hisNameIsAt && AND_HIS_NAME_IS[this.hisNameIsAt] == key){ if(AND_HIS_NAME_IS.length > this.hisNameIsAt && AND_HIS_NAME_IS[this.hisNameIsAt] == key){
if(this.hisNameIsAt+1 >= AND_HIS_NAME_IS.length){ if(this.hisNameIsAt+1 >= AND_HIS_NAME_IS.length){
Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147673_a(new ResourceLocation(ModUtil.MOD_ID_LOWER, "duhDuhDuhDuuuh"))); Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation(ModUtil.MOD_ID_LOWER, "duhDuhDuhDuuuh")));
ModUtil.LOGGER.info("AND HIS NAME IS JOHN CENA DUH DUH DUH DUUUH"); ModUtil.LOGGER.info("AND HIS NAME IS JOHN CENA DUH DUH DUH DUUUH");
this.hisNameIsAt = 0; this.hisNameIsAt = 0;
} }
@ -211,7 +212,12 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
BookletUtils.openIndexEntry(this, null, 1, true); BookletUtils.openIndexEntry(this, null, 1, true);
} }
} }
super.mouseClicked(par1, par2, par3); try{
super.mouseClicked(par1, par2, par3);
}
catch(Exception e){
ModUtil.LOGGER.error("Something bad happened when trying to click a button in the booklet!", e);
}
} }
@Override @Override
@ -283,11 +289,11 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
ArrayList updateHover = new ArrayList(); ArrayList updateHover = new ArrayList();
if(UpdateChecker.checkFailed){ if(UpdateChecker.checkFailed){
updateHover.add(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.failed")).getFormattedText()); updateHover.add(IChatComponent.Serializer.jsonToComponent(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.failed")).getFormattedText());
} }
else if(UpdateChecker.needsUpdateNotify){ else if(UpdateChecker.needsUpdateNotify){
updateHover.add(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.generic")).getFormattedText()); updateHover.add(IChatComponent.Serializer.jsonToComponent(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.generic")).getFormattedText());
updateHover.add(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted("info."+ModUtil.MOD_ID_LOWER+".update.versionCompare", ModUtil.VERSION, UpdateChecker.updateVersion)).getFormattedText()); updateHover.add(IChatComponent.Serializer.jsonToComponent(StringUtil.localizeFormatted("info."+ModUtil.MOD_ID_LOWER+".update.versionCompare", ModUtil.VERSION, UpdateChecker.updateVersion)).getFormattedText());
updateHover.add(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.buttonOptions")); updateHover.add(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.buttonOptions"));
} }
this.buttonUpdate = new TexturedButton(4, this.guiLeft-11, this.guiTop-11, 245, 0, 11, 11, updateHover); this.buttonUpdate = new TexturedButton(4, this.guiLeft-11, this.guiTop-11, 245, 0, 11, 11, updateHover);
@ -327,7 +333,7 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
this.buttonList.add(this.bookmarkButtons[i]); this.buttonList.add(this.bookmarkButtons[i]);
} }
this.searchField = new GuiTextField(this.fontRendererObj, guiLeft+148, guiTop+162, 66, 10); this.searchField = new GuiTextField(4500, this.fontRendererObj, guiLeft+148, guiTop+162, 66, 10);
this.searchField.setMaxStringLength(30); this.searchField.setMaxStringLength(30);
this.searchField.setEnableBackgroundDrawing(false); this.searchField.setEnableBackgroundDrawing(false);
this.searchField.setCanLoseFocus(false); this.searchField.setCanLoseFocus(false);
@ -366,7 +372,12 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
BookletUtils.handlePreviousPage(this); BookletUtils.handlePreviousPage(this);
} }
} }
super.handleMouseInput(); try{
super.handleMouseInput();
}
catch(Exception e){
ModUtil.LOGGER.error("Something bad happened when trying to click a button in the booklet!", e);
}
} }
@Override @Override
@ -404,8 +415,8 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
@Override @Override
public void renderTooltipAndTransferButton(BookletPage from, ItemStack stack, int x, int y, boolean renderTransferButton, boolean mousePressed){ public void renderTooltipAndTransferButton(BookletPage from, ItemStack stack, int x, int y, boolean renderTransferButton, boolean mousePressed){
boolean flagBefore = this.mc.fontRenderer.getUnicodeFlag(); boolean flagBefore = this.mc.fontRendererObj.getUnicodeFlag();
this.mc.fontRenderer.setUnicodeFlag(false); this.mc.fontRendererObj.setUnicodeFlag(false);
List list = stack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips); List list = stack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips);
@ -426,14 +437,14 @@ public class GuiBooklet extends GuiScreen implements IBookletGui{
if(mousePressed){ if(mousePressed){
BookletUtils.openIndexEntry(this, page.getChapter().getEntry(), ActuallyAdditionsAPI.bookletEntries.indexOf(page.getChapter().getEntry())/GuiBooklet.CHAPTER_BUTTONS_AMOUNT+1, true); BookletUtils.openIndexEntry(this, page.getChapter().getEntry(), ActuallyAdditionsAPI.bookletEntries.indexOf(page.getChapter().getEntry())/GuiBooklet.CHAPTER_BUTTONS_AMOUNT+1, true);
BookletUtils.openChapter(this, page.getChapter(), page); BookletUtils.openChapter(this, page.getChapter(), page);
Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F));
} }
} }
} }
this.drawHoveringText(list, x, y); this.drawHoveringText(list, x, y);
this.mc.fontRenderer.setUnicodeFlag(flagBefore); this.mc.fontRendererObj.setUnicodeFlag(flagBefore);
} }
@Override @Override

View file

@ -36,7 +36,7 @@ public class GuiBookletStand extends GuiBooklet{
@Override @Override
public void actionPerformed(GuiButton button){ public void actionPerformed(GuiButton button){
if(button == this.buttonSetPage){ if(button == this.buttonSetPage){
PacketHandler.theNetwork.sendToServer(new PacketBookletStandButton(this.theStand.xCoord, this.theStand.yCoord, this.theStand.zCoord, this.theStand.getWorldObj(), Minecraft.getMinecraft().thePlayer, this.currentEntrySet)); PacketHandler.theNetwork.sendToServer(new PacketBookletStandButton(this.theStand.getPos().getX(), this.theStand.getPos().getY(), this.theStand.getPos().getZ(), this.theStand.getWorld(), Minecraft.getMinecraft().thePlayer, this.currentEntrySet));
} }
super.actionPerformed(button); super.actionPerformed(button);
} }
@ -54,15 +54,15 @@ public class GuiBookletStand extends GuiBooklet{
this.buttonSetPage = new GuiButton(-100, this.guiLeft+this.xSize+10, this.guiTop+10, 100, 20, "Set Page"){ this.buttonSetPage = new GuiButton(-100, this.guiLeft+this.xSize+10, this.guiTop+10, 100, 20, "Set Page"){
@Override @Override
public void drawButton(Minecraft mc, int x, int y){ public void drawButton(Minecraft mc, int x, int y){
boolean unicodeBefore = mc.fontRenderer.getUnicodeFlag(); boolean unicodeBefore = mc.fontRendererObj.getUnicodeFlag();
mc.fontRenderer.setUnicodeFlag(false); mc.fontRendererObj.setUnicodeFlag(false);
super.drawButton(mc, x, y); super.drawButton(mc, x, y);
mc.fontRenderer.setUnicodeFlag(unicodeBefore); mc.fontRendererObj.setUnicodeFlag(unicodeBefore);
} }
}; };
this.buttonList.add(this.buttonSetPage); this.buttonList.add(this.buttonSetPage);
this.buttonSetPage.visible = Objects.equals(Minecraft.getMinecraft().thePlayer.getCommandSenderName(), this.theStand.assignedPlayer); this.buttonSetPage.visible = Objects.equals(Minecraft.getMinecraft().thePlayer.getName(), this.theStand.assignedPlayer);
//Open the pages the book was assigned //Open the pages the book was assigned
BookletUtils.openIndexEntry(this, this.theStand.assignedEntry.entry, this.theStand.assignedEntry.pageInIndex, true); BookletUtils.openIndexEntry(this, this.theStand.assignedEntry.entry, this.theStand.assignedEntry.pageInIndex, true);

View file

@ -58,8 +58,8 @@ public class BookmarkButton extends GuiButton{
if(this.visible){ if(this.visible){
minecraft.getTextureManager().bindTexture(GuiBooklet.resLoc); minecraft.getTextureManager().bindTexture(GuiBooklet.resLoc);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_146123_n = x >= this.xPosition && y >= this.yPosition && x < this.xPosition+this.width && y < this.yPosition+this.height; this.hovered = x >= this.xPosition && y >= this.yPosition && x < this.xPosition+this.width && y < this.yPosition+this.height;
int k = this.getHoverState(this.field_146123_n); int k = this.getHoverState(this.hovered);
if(k == 0){ if(k == 0){
k = 1; k = 1;
} }

View file

@ -32,7 +32,7 @@ public class IndexButton extends GuiButton{
public void drawButton(Minecraft minecraft, int mouseX, int mouseY){ public void drawButton(Minecraft minecraft, int mouseX, int mouseY){
if(this.visible){ if(this.visible){
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_146123_n = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition+this.width && mouseY < this.yPosition+this.height; this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition+this.width && mouseY < this.yPosition+this.height;
GL11.glEnable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0); OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
@ -48,9 +48,9 @@ public class IndexButton extends GuiButton{
} }
} }
if(this.field_146123_n){ if(this.hovered){
GL11.glPushMatrix(); GL11.glPushMatrix();
AssetUtil.drawHorizontalGradientRect(this.xPosition+textOffsetX-1, this.yPosition+this.height-1, this.xPosition+this.gui.getFontRenderer().getStringWidth(this.displayString)+textOffsetX+1, this.yPosition+this.height, 0x80 << 24 | 22271, 22271); AssetUtil.drawHorizontalGradientRect(this.xPosition+textOffsetX-1, this.yPosition+this.height-1, this.xPosition+this.gui.getFontRenderer().getStringWidth(this.displayString)+textOffsetX+1, this.yPosition+this.height, 0x80 << 24 | 22271, 22271, this.zLevel);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View file

@ -48,8 +48,8 @@ public class TexturedButton extends GuiButton{
if(this.visible){ if(this.visible){
minecraft.getTextureManager().bindTexture(GuiBooklet.resLoc); minecraft.getTextureManager().bindTexture(GuiBooklet.resLoc);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_146123_n = x >= this.xPosition && y >= this.yPosition && x < this.xPosition+this.width && y < this.yPosition+this.height; this.hovered = x >= this.xPosition && y >= this.yPosition && x < this.xPosition+this.width && y < this.yPosition+this.height;
int k = this.getHoverState(this.field_146123_n); int k = this.getHoverState(this.hovered);
if(k == 0){ if(k == 0){
k = 1; k = 1;
} }

View file

@ -46,15 +46,15 @@ public class PageCoffeeRecipe extends BookletPageAA{
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void render(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ public void render(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){
String strg = "Coffee Machine Recipe"; String strg = "Coffee Machine Recipe";
Minecraft.getMinecraft().fontRenderer.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRenderer.getStringWidth(strg)/2, gui.getGuiTop()+10, 0); Minecraft.getMinecraft().fontRendererObj.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRendererObj.getStringWidth(strg)/2, gui.getGuiTop()+10, 0);
String text = gui.getCurrentEntrySet().page.getText(); String text = gui.getCurrentEntrySet().page.getText();
if(text != null && !text.isEmpty()){ if(text != null && !text.isEmpty()){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, text, gui.getGuiLeft()+14, gui.getGuiTop()+100, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, text, gui.getGuiLeft()+14, gui.getGuiTop()+100, 115, 0, false);
} }
if(this.ingredient.maxAmplifier > 0){ if(this.ingredient.maxAmplifier > 0){
Minecraft.getMinecraft().fontRenderer.drawString("Maximum Amplifier: "+this.ingredient.maxAmplifier, gui.getGuiLeft()+19+5, gui.getGuiTop()+20+60, 0); Minecraft.getMinecraft().fontRendererObj.drawString("Maximum Amplifier: "+this.ingredient.maxAmplifier, gui.getGuiLeft()+19+5, gui.getGuiTop()+20+60, 0);
} }
for(int i = 0; i < 2; i++){ for(int i = 0; i < 2; i++){

View file

@ -87,16 +87,16 @@ public class PageCrafting extends BookletPageAA{
IRecipe recipe = this.recipes[this.recipePos]; IRecipe recipe = this.recipes[this.recipePos];
if(recipe == null){ if(recipe == null){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.getGuiLeft()+14, gui.getGuiTop()+15, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.getGuiLeft()+14, gui.getGuiTop()+15, 115, 0, false);
} }
else{ else{
String strg = StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+"."+(recipe instanceof ShapedRecipes ? "shapedRecipe" : (recipe instanceof ShapelessRecipes ? "shapelessRecipe" : (recipe instanceof ShapelessOreRecipe ? "shapelessOreRecipe" : "shapedOreRecipe")))); String strg = StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+"."+(recipe instanceof ShapedRecipes ? "shapedRecipe" : (recipe instanceof ShapelessRecipes ? "shapelessRecipe" : (recipe instanceof ShapelessOreRecipe ? "shapelessOreRecipe" : "shapedOreRecipe"))));
Minecraft.getMinecraft().fontRenderer.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRenderer.getStringWidth(strg)/2, gui.getGuiTop()+10, 0); Minecraft.getMinecraft().fontRendererObj.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRendererObj.getStringWidth(strg)/2, gui.getGuiTop()+10, 0);
} }
String text = gui.getCurrentEntrySet().page.getText(); String text = gui.getCurrentEntrySet().page.getText();
if(text != null && !text.isEmpty()){ if(text != null && !text.isEmpty()){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, text, gui.getGuiLeft()+14, gui.getGuiTop()+90, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, text, gui.getGuiLeft()+14, gui.getGuiTop()+90, 115, 0, false);
} }
if(recipe != null){ if(recipe != null){

View file

@ -37,7 +37,7 @@ public class PagePicture extends PageTextOnly{
String text = gui.getCurrentEntrySet().page.getText(); String text = gui.getCurrentEntrySet().page.getText();
if(text != null && !text.isEmpty()){ if(text != null && !text.isEmpty()){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, text, gui.getGuiLeft()+14, gui.getGuiTop()+textStartY, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, text, gui.getGuiLeft()+14, gui.getGuiTop()+textStartY, 115, 0, false);
} }
} }
} }

View file

@ -72,16 +72,16 @@ public class PageReconstructor extends BookletPageAA{
public void render(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ public void render(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){
LensNoneRecipe recipe = this.recipes[this.recipePos]; LensNoneRecipe recipe = this.recipes[this.recipePos];
if(recipe == null){ if(recipe == null){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.getGuiLeft()+14, gui.getGuiTop()+15, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, EnumChatFormatting.DARK_RED+StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".recipeDisabled"), gui.getGuiLeft()+14, gui.getGuiTop()+15, 115, 0, false);
} }
else{ else{
String strg = "Atomic Reconstructor"; String strg = "Atomic Reconstructor";
Minecraft.getMinecraft().fontRenderer.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRenderer.getStringWidth(strg)/2, gui.getGuiTop()+10, 0); Minecraft.getMinecraft().fontRendererObj.drawString(strg, gui.getGuiLeft()+gui.getXSize()/2-Minecraft.getMinecraft().fontRendererObj.getStringWidth(strg)/2, gui.getGuiTop()+10, 0);
} }
String text = gui.getCurrentEntrySet().page.getText(); String text = gui.getCurrentEntrySet().page.getText();
if(text != null && !text.isEmpty()){ if(text != null && !text.isEmpty()){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, text, gui.getGuiLeft()+14, gui.getGuiTop()+100, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, text, gui.getGuiLeft()+14, gui.getGuiTop()+100, 115, 0, false);
} }
if(recipe != null){ if(recipe != null){

View file

@ -41,7 +41,7 @@ public class PageTextOnly extends BookletPageAA{
public void renderPre(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ public void renderPre(IBookletGui gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){
String text = gui.getCurrentEntrySet().page.getText(); String text = gui.getCurrentEntrySet().page.getText();
if(text != null && !text.isEmpty()){ if(text != null && !text.isEmpty()){
StringUtil.drawSplitString(Minecraft.getMinecraft().fontRenderer, text, gui.getGuiLeft()+14, gui.getGuiTop()+9, 115, 0, false); StringUtil.drawSplitString(Minecraft.getMinecraft().fontRendererObj, text, gui.getGuiLeft()+14, gui.getGuiTop()+9, 115, 0, false);
} }
} }
} }

View file

@ -12,7 +12,6 @@ package de.ellpeck.actuallyadditions.mod.config;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.config.ConfigCategory;
import net.minecraftforge.common.config.ConfigElement; import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.fml.client.config.GuiConfig; import net.minecraftforge.fml.client.config.GuiConfig;
import net.minecraftforge.fml.client.config.IConfigElement; import net.minecraftforge.fml.client.config.IConfigElement;
@ -31,7 +30,7 @@ public class GuiConfiguration extends GuiConfig{
for(int i = 0; i < ConfigCategories.values().length; i++){ for(int i = 0; i < ConfigCategories.values().length; i++){
ConfigCategories cat = ConfigCategories.values()[i]; ConfigCategories cat = ConfigCategories.values()[i];
ConfigurationHandler.config.setCategoryComment(cat.name, cat.comment); ConfigurationHandler.config.setCategoryComment(cat.name, cat.comment);
list.add(new ConfigElement<ConfigCategory>(ConfigurationHandler.config.getCategory(cat.name))); list.add(new ConfigElement(ConfigurationHandler.config.getCategory(cat.name)));
} }
return list; return list;
} }

View file

@ -73,7 +73,7 @@ public class FoodCrafting{
'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()), 'D', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DOUGH.ordinal()),
'M', new ItemStack(Blocks.brown_mushroom), 'M', new ItemStack(Blocks.brown_mushroom),
'C', "cropCarrot", 'C', "cropCarrot",
'F', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), 'F', new ItemStack(Items.cooked_fish, 1, Util.WILDCARD),
'K', knifeStack, 'K', knifeStack,
'H', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()))); 'H', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal())));
recipePizza = Util.GetRecipes.lastIRecipe(); recipePizza = Util.GetRecipes.lastIRecipe();
@ -105,7 +105,7 @@ public class FoodCrafting{
"KCP", "FB ", "PCP", "KCP", "FB ", "PCP",
'P', new ItemStack(Items.paper), 'P', new ItemStack(Items.paper),
'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()), 'C', new ItemStack(InitItems.itemFoods, 1, TheFoods.CHEESE.ordinal()),
'F', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), 'F', new ItemStack(Items.cooked_fish, 1, Util.WILDCARD),
'B', new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()), 'B', new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal()),
'K', knifeStack)); 'K', knifeStack));
recipeSubSandwich = Util.GetRecipes.lastIRecipe(); recipeSubSandwich = Util.GetRecipes.lastIRecipe();
@ -132,7 +132,7 @@ public class FoodCrafting{
if(ConfigCrafting.FISH_N_CHIPS.isEnabled()){ if(ConfigCrafting.FISH_N_CHIPS.isEnabled()){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FISH_N_CHIPS.ordinal()), GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.FISH_N_CHIPS.ordinal()),
"FIF", " P ", "FIF", " P ",
'I', new ItemStack(Items.cooked_fished, 1, Util.WILDCARD), 'I', new ItemStack(Items.cooked_fish, 1, Util.WILDCARD),
'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()), 'P', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.PAPER_CONE.ordinal()),
'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal()))); 'F', new ItemStack(InitItems.itemFoods, 1, TheFoods.FRENCH_FRY.ordinal())));
recipeFishNChips = Util.GetRecipes.lastIRecipe(); recipeFishNChips = Util.GetRecipes.lastIRecipe();

View file

@ -66,7 +66,7 @@ public class TooltipEvent{
} }
//Disabling Info //Disabling Info
event.toolTip.addAll(Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".disablingInfo.desc"), 200)); event.toolTip.addAll(Minecraft.getMinecraft().fontRendererObj.listFormattedStringToWidth(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".disablingInfo.desc"), 200));
} }
else{ else{
if(ConfigBoolValues.CTRL_INFO_FOR_EXTRA_INFO.isEnabled()){ if(ConfigBoolValues.CTRL_INFO_FOR_EXTRA_INFO.isEnabled()){

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.event; package de.ellpeck.actuallyadditions.mod.event;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheWildPlants;
import de.ellpeck.actuallyadditions.mod.config.ConfigValues; import de.ellpeck.actuallyadditions.mod.config.ConfigValues;
@ -18,6 +19,7 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues;
import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.Util;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockBush;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.world.biome.BiomeGenOcean; import net.minecraft.world.biome.BiomeGenOcean;
import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
@ -31,7 +33,7 @@ public class WorldDecorationEvent{
@SubscribeEvent @SubscribeEvent
public void onWorldDecoration(DecorateBiomeEvent.Decorate event){ public void onWorldDecoration(DecorateBiomeEvent.Decorate event){
if((event.getResult() == Event.Result.ALLOW || event.getResult() == Event.Result.DEFAULT)){ if((event.getResult() == Event.Result.ALLOW || event.getResult() == Event.Result.DEFAULT)){
if(Util.arrayContains(ConfigValues.plantDimensionBlacklist, event.world.provider.dimensionId) < 0){ if(Util.arrayContains(ConfigValues.plantDimensionBlacklist, event.world.provider.getDimensionId()) < 0){
this.generateRice(event); 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.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); this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.FLAX.ordinal(), ConfigIntValues.FLAX_AMOUNT.getValue(), ConfigBoolValues.DO_FLAX_GEN.isEnabled(), Material.grass, event);
@ -42,15 +44,14 @@ public class WorldDecorationEvent{
//Generate Treasure Chests //Generate Treasure Chests
if(ConfigBoolValues.DO_TREASURE_CHEST_GEN.isEnabled()){ if(ConfigBoolValues.DO_TREASURE_CHEST_GEN.isEnabled()){
if(event.rand.nextInt(300) == 0){ if(event.rand.nextInt(300) == 0){
int genX = event.chunkX+event.rand.nextInt(16)+8; Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8);
int genZ = event.chunkZ+event.rand.nextInt(16)+8; randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos));
int genY = event.world.getTopSolidOrLiquidBlock(genX, genZ);
if(event.world.getBiomeGenForCoords(genX, genZ) instanceof BiomeGenOcean){ if(event.world.getBiomeGenForCoords(randomPos) instanceof BiomeGenOcean){
if(genY >= 25 && genY <= 45){ if(randomPos.getY() >= 25 && randomPos.getY() <= 45){
if(event.world.getBlock(genX, genY, genZ).getMaterial() == Material.water){ if(randomPos.getBlock(event.world).getMaterial() == Material.water){
if(event.world.getBlock(genX, genY-1, genZ).getMaterial().isSolid()){ if(randomPos.getOffsetPosition(0, -1, 0).getMaterial(event.world).isSolid()){
event.world.setBlock(genX, genY, genZ, InitBlocks.blockTreasureChest, event.rand.nextInt(4), 2); randomPos.setBlock(event.world, InitBlocks.blockTreasureChest, event.rand.nextInt(4), 2);
} }
} }
} }
@ -64,16 +65,15 @@ public class WorldDecorationEvent{
if(ConfigBoolValues.DO_RICE_GEN.isEnabled()){ if(ConfigBoolValues.DO_RICE_GEN.isEnabled()){
for(int i = 0; i < ConfigIntValues.RICE_AMOUNT.getValue(); i++){ for(int i = 0; i < ConfigIntValues.RICE_AMOUNT.getValue(); i++){
if(event.rand.nextInt(50) == 0){ if(event.rand.nextInt(50) == 0){
int genX = event.chunkX+event.rand.nextInt(16)+8; Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8);
int genZ = event.chunkZ+event.rand.nextInt(16)+8; randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos));
int genY = event.world.getTopSolidOrLiquidBlock(genX, genZ);
if(event.world.getBlock(genX, genY, genZ).getMaterial() == Material.water){ if(randomPos.getMaterial(event.world) == Material.water){
ArrayList<Material> blocksAroundBottom = WorldUtil.getMaterialsAround(event.world, genX, genY, genZ); ArrayList<Material> blocksAroundBottom = WorldUtil.getMaterialsAround(event.world, randomPos);
ArrayList<Material> blocksAroundTop = WorldUtil.getMaterialsAround(event.world, genX, genY+1, genZ); ArrayList<Material> blocksAroundTop = WorldUtil.getMaterialsAround(event.world, randomPos.getOffsetPosition(0, 1, 0));
if(blocksAroundBottom.contains(Material.grass) || blocksAroundBottom.contains(Material.ground) || blocksAroundBottom.contains(Material.rock) || blocksAroundBottom.contains(Material.sand)){ if(blocksAroundBottom.contains(Material.grass) || blocksAroundBottom.contains(Material.ground) || blocksAroundBottom.contains(Material.rock) || blocksAroundBottom.contains(Material.sand)){
if(!blocksAroundTop.contains(Material.water) && event.world.getBlock(genX, genY+1, genZ).getMaterial() == Material.air){ if(!blocksAroundTop.contains(Material.water) && randomPos.getMaterial(event.world) == Material.air){
event.world.setBlock(genX, genY+1, genZ, InitBlocks.blockWildPlant, TheWildPlants.RICE.ordinal(), 2); randomPos.getOffsetPosition(0, 1, 0).setBlock(event.world, InitBlocks.blockWildPlant, TheWildPlants.RICE.ordinal(), 2);
} }
} }
} }
@ -86,14 +86,14 @@ public class WorldDecorationEvent{
if(doIt){ if(doIt){
for(int i = 0; i < amount; i++){ for(int i = 0; i < amount; i++){
if(event.rand.nextInt(400) == 0){ if(event.rand.nextInt(400) == 0){
int genX = event.chunkX+event.rand.nextInt(16)+8; Position randomPos = new Position(event.pos.getX()+event.rand.nextInt(16)+8, 0, event.pos.getZ()+event.rand.nextInt(16)+8);
int genZ = event.chunkZ+event.rand.nextInt(16)+8; randomPos = Position.fromBlockPos(event.world.getTopSolidOrLiquidBlock(randomPos));
int genY = event.world.getTopSolidOrLiquidBlock(genX, genZ)-1;
if(event.world.getBlock(genX, genY, genZ).getMaterial() == blockBelow){ if(randomPos.getMaterial(event.world) == blockBelow){
event.world.setBlock(genX, genY+1, genZ, plant, meta, 2); Position top = randomPos.getOffsetPosition(0, 1, 0);
if(!plant.canBlockStay(event.world, genX, genY+1, genZ)){ top.setBlock(event.world, plant, meta, 2);
event.world.setBlockToAir(genX, genY+1, genZ); if(plant instanceof BlockBush && !((BlockBush)plant).canBlockStay(event.world, top, top.getBlockState(event.world))){
event.world.setBlockToAir(top);
} }
} }
} }

View file

@ -11,16 +11,8 @@
package de.ellpeck.actuallyadditions.mod.gen; package de.ellpeck.actuallyadditions.mod.gen;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues;
import de.ellpeck.actuallyadditions.mod.items.InitItems;
import de.ellpeck.actuallyadditions.mod.items.metalists.TheJams;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.ChestGenHooks;
import net.minecraftforge.fml.common.registry.VillagerRegistry;
public class InitVillager{ public class InitVillager{
@ -38,7 +30,8 @@ public class InitVillager{
} }
private static void initJamVillagePart(){ private static void initJamVillagePart(){
int jamID = ConfigIntValues.JAM_VILLAGER_ID.getValue(); //TODO Fix villager
/*int jamID = ConfigIntValues.JAM_VILLAGER_ID.getValue();
VillagerRegistry.instance().registerVillagerId(jamID); VillagerRegistry.instance().registerVillagerId(jamID);
VillagerRegistry.instance().registerVillageTradeHandler(jamID, new JamVillagerTradeHandler()); VillagerRegistry.instance().registerVillageTradeHandler(jamID, new JamVillagerTradeHandler());
@ -52,12 +45,13 @@ public class InitVillager{
ChestGenHooks.addItem(JAM_HOUSE_CHEST_NAME, new WeightedRandomChestContent(new ItemStack(Items.potionitem), 1, 1, 20)); ChestGenHooks.addItem(JAM_HOUSE_CHEST_NAME, new WeightedRandomChestContent(new ItemStack(Items.potionitem), 1, 1, 20));
VillagerRegistry.instance().registerVillageCreationHandler(new VillageJamHouseHandler()); VillagerRegistry.instance().registerVillageCreationHandler(new VillageJamHouseHandler());
MapGenStructureIO.func_143031_a(VillageComponentJamHouse.class, ModUtil.MOD_ID_LOWER+":jamHouseStructure"); MapGenStructureIO.func_143031_a(VillageComponentJamHouse.class, ModUtil.MOD_ID_LOWER+":jamHouseStructure");*/
} }
private static void initCustomCropFieldPart(){ private static void initCustomCropFieldPart(){
VillagerRegistry.instance().registerVillageCreationHandler(new VillageCustomCropFieldHandler()); //TODO Fix village
MapGenStructureIO.func_143031_a(VillageComponentCustomCropField.class, ModUtil.MOD_ID_LOWER+":customCropFieldStructure"); //VillagerRegistry.instance().registerVillageCreationHandler(new VillageCustomCropFieldHandler());
MapGenStructureIO.registerStructureComponent(VillageComponentCustomCropField.class, ModUtil.MOD_ID_LOWER+":customCropFieldStructure");
} }
} }

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.gen; package de.ellpeck.actuallyadditions.mod.gen;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks; import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheMiscBlocks;
import de.ellpeck.actuallyadditions.mod.config.ConfigValues; import de.ellpeck.actuallyadditions.mod.config.ConfigValues;
@ -17,6 +18,7 @@ import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.pattern.BlockHelper;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -40,8 +42,8 @@ public class OreGen implements IWorldGenerator{
@Override @Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider){ public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider){
if(world.provider.terrainType != WorldType.FLAT && Util.arrayContains(ConfigValues.oreGenDimensionBlacklist, world.provider.dimensionId) < 0){ if(world.getWorldType() != WorldType.FLAT && Util.arrayContains(ConfigValues.oreGenDimensionBlacklist, world.provider.getDimensionId()) < 0){
switch(world.provider.dimensionId){ switch(world.provider.getDimensionId()){
case -1: case -1:
generateNether(world, random, chunkX*16, chunkZ*16); generateNether(world, random, chunkX*16, chunkZ*16);
//case 0: //case 0:
@ -77,7 +79,7 @@ public class OreGen implements IWorldGenerator{
int posX = blockXPos+random.nextInt(16); int posX = blockXPos+random.nextInt(16);
int posY = minY+random.nextInt(yDiff); int posY = minY+random.nextInt(yDiff);
int posZ = blockZPos+random.nextInt(16); int posZ = blockZPos+random.nextInt(16);
new WorldGenMinable(block, meta, maxVeinSize, blockIn).generate(world, random, posX, posY, posZ); new WorldGenMinable(block.getStateFromMeta(meta), maxVeinSize, BlockHelper.forBlock(blockIn)).generate(world, random, new Position(posX, posY, posZ));
} }
} }
else{ else{

View file

@ -10,18 +10,8 @@
package de.ellpeck.actuallyadditions.mod.gen; package de.ellpeck.actuallyadditions.mod.gen;
import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.gen.structure.StructureBoundingBox;
import net.minecraft.world.gen.structure.StructureComponent;
import net.minecraft.world.gen.structure.StructureVillagePieces; import net.minecraft.world.gen.structure.StructureVillagePieces;
import java.util.List;
import java.util.Random;
public class VillageComponentCustomCropField extends StructureVillagePieces.House1{ public class VillageComponentCustomCropField extends StructureVillagePieces.House1{
private static final int xSize = 13; private static final int xSize = 13;
@ -35,7 +25,8 @@ public class VillageComponentCustomCropField extends StructureVillagePieces.Hous
} }
public VillageComponentCustomCropField(StructureBoundingBox boundingBox, int par5){ //TODO Fix village
/*public VillageComponentCustomCropField(StructureBoundingBox boundingBox, int par5){
this.coordBaseMode = par5; this.coordBaseMode = par5;
this.boundingBox = boundingBox; this.boundingBox = boundingBox;
} }
@ -108,5 +99,5 @@ public class VillageComponentCustomCropField extends StructureVillagePieces.Hous
default: default:
return InitBlocks.blockCanola; return InitBlocks.blockCanola;
} }
} }*/
} }

View file

@ -13,10 +13,10 @@ package de.ellpeck.actuallyadditions.mod.gen;
import net.minecraft.world.gen.structure.StructureVillagePieces; import net.minecraft.world.gen.structure.StructureVillagePieces;
import net.minecraftforge.fml.common.registry.VillagerRegistry; import net.minecraftforge.fml.common.registry.VillagerRegistry;
import java.util.List;
import java.util.Random; import java.util.Random;
public class VillageCustomCropFieldHandler implements VillagerRegistry.IVillageCreationHandler{ //TODO Fix village
public abstract class VillageCustomCropFieldHandler implements VillagerRegistry.IVillageCreationHandler{
@Override @Override
public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, int i){ public StructureVillagePieces.PieceWeight getVillagePieceWeight(Random random, int i){
@ -28,8 +28,8 @@ public class VillageCustomCropFieldHandler implements VillagerRegistry.IVillageC
return VillageComponentCustomCropField.class; return VillageComponentCustomCropField.class;
} }
@Override /*@Override
public Object buildComponent(StructureVillagePieces.PieceWeight villagePiece, StructureVillagePieces.Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5){ public Object buildComponent(StructureVillagePieces.PieceWeight villagePiece, StructureVillagePieces.Start startPiece, List pieces, Random random, int p1, int p2, int p3, int p4, int p5){
return VillageComponentCustomCropField.buildComponent(pieces, p1, p2, p3, p4); return VillageComponentCustomCropField.buildComponent(pieces, p1, p2, p3, p4);
} }*/
} }

View file

@ -102,7 +102,7 @@ public class ContainerCrafter extends Container{
if(!this.world.isRemote){ if(!this.world.isRemote){
for(int i = 0; i < 9; ++i){ for(int i = 0; i < 9; ++i){
ItemStack stack = this.craftMatrix.getStackInSlotOnClosing(i); ItemStack stack = this.craftMatrix.removeStackFromSlot(i);
if(stack != null){ if(stack != null){
player.dropPlayerItemWithRandomChoice(stack, false); player.dropPlayerItemWithRandomChoice(stack, false);
} }

View file

@ -17,7 +17,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.inventory.SlotFurnace; import net.minecraft.inventory.SlotFurnaceOutput;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.FurnaceRecipes;
@ -30,9 +30,9 @@ public class ContainerFurnaceDouble extends Container{
this.tileFurnace = (TileEntityFurnaceDouble)tile; this.tileFurnace = (TileEntityFurnaceDouble)tile;
this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_1, 51, 21)); this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_1, 51, 21));
this.addSlotToContainer(new SlotFurnace(inventory.player, this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_1, 51, 69)); this.addSlotToContainer(new SlotFurnaceOutput(inventory.player, this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_1, 51, 69));
this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_2, 109, 21)); this.addSlotToContainer(new Slot(this.tileFurnace, TileEntityFurnaceDouble.SLOT_INPUT_2, 109, 21));
this.addSlotToContainer(new SlotFurnace(inventory.player, this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_2, 108, 69)); this.addSlotToContainer(new SlotFurnaceOutput(inventory.player, this.tileFurnace, TileEntityFurnaceDouble.SLOT_OUTPUT_2, 108, 69));
for(int i = 0; i < 3; i++){ for(int i = 0; i < 3; i++){
for(int j = 0; j < 9; j++){ for(int j = 0; j < 9; j++){
@ -67,7 +67,7 @@ public class ContainerFurnaceDouble extends Container{
//Other Slots in Inventory excluded //Other Slots in Inventory excluded
else if(slot >= inventoryStart){ else if(slot >= inventoryStart){
//Shift from Inventory //Shift from Inventory
if(FurnaceRecipes.smelting().getSmeltingResult(newStack) != null){ if(FurnaceRecipes.instance().getSmeltingResult(newStack) != null){
if(!this.mergeItemStack(newStack, TileEntityFurnaceDouble.SLOT_INPUT_1, TileEntityFurnaceDouble.SLOT_INPUT_1+1, false)){ if(!this.mergeItemStack(newStack, TileEntityFurnaceDouble.SLOT_INPUT_1, TileEntityFurnaceDouble.SLOT_INPUT_1+1, false)){
if(!this.mergeItemStack(newStack, TileEntityFurnaceDouble.SLOT_INPUT_2, TileEntityFurnaceDouble.SLOT_INPUT_2+1, false)){ if(!this.mergeItemStack(newStack, TileEntityFurnaceDouble.SLOT_INPUT_2, TileEntityFurnaceDouble.SLOT_INPUT_2+1, false)){
return null; return null;

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.inventory; package de.ellpeck.actuallyadditions.mod.inventory;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet; import de.ellpeck.actuallyadditions.mod.booklet.GuiBooklet;
import de.ellpeck.actuallyadditions.mod.booklet.GuiBookletStand; import de.ellpeck.actuallyadditions.mod.booklet.GuiBookletStand;
@ -32,7 +33,7 @@ public class GuiHandler implements IGuiHandler{
public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){
TileEntityBase tile = null; TileEntityBase tile = null;
if(GuiTypes.values()[id].checkTileEntity){ if(GuiTypes.values()[id].checkTileEntity){
tile = (TileEntityBase)world.getTileEntity(x, y, z); tile = (TileEntityBase)world.getTileEntity(new Position(x, y, z));
} }
switch(GuiTypes.values()[id]){ switch(GuiTypes.values()[id]){
case FEEDER: case FEEDER:
@ -96,7 +97,7 @@ public class GuiHandler implements IGuiHandler{
public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){ public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z){
TileEntityBase tile = null; TileEntityBase tile = null;
if(GuiTypes.values()[id].checkTileEntity){ if(GuiTypes.values()[id].checkTileEntity){
tile = (TileEntityBase)world.getTileEntity(x, y, z); tile = (TileEntityBase)world.getTileEntity(new Position(x, y, z));
} }
switch(GuiTypes.values()[id]){ switch(GuiTypes.values()[id]){
case FEEDER: case FEEDER:

View file

@ -42,18 +42,18 @@ public class GuiCanolaPress extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
String text1 = this.press.storage.getEnergyStored()+"/"+this.press.storage.getMaxEnergyStored()+" RF"; String text1 = this.press.storage.getEnergyStored()+"/"+this.press.storage.getMaxEnergyStored()+" RF";
if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){ if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text1), x, y); this.drawHoveringText(Collections.singletonList(text1), x, y);
} }
String text2 = StringUtil.getFluidInfo(this.press.tank); String text2 = StringUtil.getFluidInfo(this.press.tank);
if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){ if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text2), x, y); this.drawHoveringText(Collections.singletonList(text2), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.press.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.press.getName());
} }
@Override @Override

View file

@ -41,13 +41,13 @@ public class GuiCoalGenerator extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.storage.getMaxEnergyStored()+" RF"; String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.storage.getMaxEnergyStored()+" RF";
if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){ if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text1), x, y); this.drawHoveringText(Collections.singletonList(text1), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.generator.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.generator.getName());
} }
@Override @Override

View file

@ -42,13 +42,13 @@ public class GuiDirectionalBreaker extends GuiContainer{
String text1 = this.breaker.storage.getEnergyStored()+"/"+this.breaker.storage.getMaxEnergyStored()+" RF"; String text1 = this.breaker.storage.getEnergyStored()+"/"+this.breaker.storage.getMaxEnergyStored()+" RF";
if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){ if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text1), x, y); this.drawHoveringText(Collections.singletonList(text1), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.breaker.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.breaker.getName());
} }
@Override @Override

View file

@ -43,13 +43,13 @@ public class GuiFeeder extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
if(x >= guiLeft+69 && y >= guiTop+30 && x <= guiLeft+69+10 && y <= guiTop+30+10){ if(x >= guiLeft+69 && y >= guiTop+30 && x <= guiLeft+69+10 && y <= guiTop+30+10){
String[] array = new String[]{(this.tileFeeder.currentAnimalAmount+" "+StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.animals")), ((this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < TileEntityFeeder.THRESHOLD) ? StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.enoughToBreed") : (this.tileFeeder.currentAnimalAmount >= TileEntityFeeder.THRESHOLD ? StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.tooMany") : StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.notEnough")))}; String[] array = new String[]{(this.tileFeeder.currentAnimalAmount+" "+StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.animals")), ((this.tileFeeder.currentAnimalAmount >= 2 && this.tileFeeder.currentAnimalAmount < TileEntityFeeder.THRESHOLD) ? StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.enoughToBreed") : (this.tileFeeder.currentAnimalAmount >= TileEntityFeeder.THRESHOLD ? StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.tooMany") : StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".gui.notEnough")))};
this.func_146283_a(Arrays.asList(array), x, y); this.drawHoveringText(Arrays.asList(array), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileFeeder.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileFeeder.getName());
} }
@Override @Override

View file

@ -43,18 +43,18 @@ public class GuiFermentingBarrel extends GuiContainer{
String text1 = StringUtil.getFluidInfo(this.press.canolaTank); String text1 = StringUtil.getFluidInfo(this.press.canolaTank);
if(x >= guiLeft+61 && y >= guiTop+6 && x <= guiLeft+76 && y <= guiTop+88){ if(x >= guiLeft+61 && y >= guiTop+6 && x <= guiLeft+76 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text1), x, y); this.drawHoveringText(Collections.singletonList(text1), x, y);
} }
String text2 = StringUtil.getFluidInfo(this.press.oilTank); String text2 = StringUtil.getFluidInfo(this.press.oilTank);
if(x >= guiLeft+99 && y >= guiTop+6 && x <= guiLeft+114 && y <= guiTop+88){ if(x >= guiLeft+99 && y >= guiTop+6 && x <= guiLeft+114 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text2), x, y); this.drawHoveringText(Collections.singletonList(text2), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.press.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.press.getName());
} }
@Override @Override

View file

@ -38,7 +38,7 @@ public class GuiGiantChest extends GuiContainer{
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.chest.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.chest.getName());
} }
@Override @Override

View file

@ -48,13 +48,13 @@ public class GuiGrinder extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
String text = this.tileGrinder.storage.getEnergyStored()+"/"+this.tileGrinder.storage.getMaxEnergyStored()+" RF"; String text = this.tileGrinder.storage.getEnergyStored()+"/"+this.tileGrinder.storage.getMaxEnergyStored()+" RF";
if((this.isDouble && x >= guiLeft+14 && y >= guiTop+6 && x <= guiLeft+29 && y <= guiTop+88) || (!this.isDouble && x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88)){ if((this.isDouble && x >= guiLeft+14 && y >= guiTop+6 && x <= guiLeft+29 && y <= guiTop+88) || (!this.isDouble && x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88)){
this.func_146283_a(Collections.singletonList(text), x, y); this.drawHoveringText(Collections.singletonList(text), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileGrinder.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileGrinder.getName());
} }
@Override @Override

View file

@ -58,7 +58,7 @@ public class GuiMiner extends GuiContainer{
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.miner.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.miner.getName());
} }
@Override @Override
@ -77,6 +77,6 @@ public class GuiMiner extends GuiContainer{
@Override @Override
public void actionPerformed(GuiButton button){ public void actionPerformed(GuiButton button){
PacketHandler.theNetwork.sendToServer(new PacketGuiButton(miner.xCoord, miner.yCoord, miner.zCoord, miner.getWorldObj(), button.id, Minecraft.getMinecraft().thePlayer)); PacketHandler.theNetwork.sendToServer(new PacketGuiButton(miner.getPos().getX(), miner.getPos().getY(), miner.getPos().getZ(), miner.getWorld(), button.id, Minecraft.getMinecraft().thePlayer));
} }
} }

View file

@ -42,17 +42,17 @@ public class GuiOilGenerator extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.storage.getMaxEnergyStored()+" RF"; String text1 = this.generator.storage.getEnergyStored()+"/"+this.generator.storage.getMaxEnergyStored()+" RF";
if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){ if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text1), x, y); this.drawHoveringText(Collections.singletonList(text1), x, y);
} }
String text2 = StringUtil.getFluidInfo(this.generator.tank); String text2 = StringUtil.getFluidInfo(this.generator.tank);
if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){ if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text2), x, y); this.drawHoveringText(Collections.singletonList(text2), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.generator.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.generator.getName());
} }
@Override @Override

View file

@ -41,13 +41,13 @@ public class GuiRepairer extends GuiContainer{
super.drawScreen(x, y, f); super.drawScreen(x, y, f);
String text = this.tileRepairer.storage.getEnergyStored()+"/"+this.tileRepairer.storage.getMaxEnergyStored()+" RF"; String text = this.tileRepairer.storage.getEnergyStored()+"/"+this.tileRepairer.storage.getMaxEnergyStored()+" RF";
if(x >= guiLeft+28 && y >= guiTop+6 && x <= guiLeft+43 && y <= guiTop+88){ if(x >= guiLeft+28 && y >= guiTop+6 && x <= guiLeft+43 && y <= guiTop+88){
this.func_146283_a(Collections.singletonList(text), x, y); this.drawHoveringText(Collections.singletonList(text), x, y);
} }
} }
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileRepairer.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.tileRepairer.getName());
} }
@Override @Override

View file

@ -81,7 +81,7 @@ public class GuiXPSolidifier extends GuiContainer{
@Override @Override
public void drawGuiContainerForegroundLayer(int x, int y){ public void drawGuiContainerForegroundLayer(int x, int y){
AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.solidifier.getInventoryName()); AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.solidifier.getName());
} }
@Override @Override

View file

@ -59,8 +59,8 @@ public class InitForeignPaxels{
Item shovel = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_shovel"); Item shovel = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_shovel");
if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){
Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); Item.ToolMaterial material = ((ItemTool)axe).getToolMaterial();
soPaxels[i] = new ItemAllToolAA(material, SO_REPAIR_NAMES[i], "paxelSO"+SO_NAMES[i], EnumRarity.rare, SO_COLORS[i]); soPaxels[i] = new ItemAllToolAA(material, SO_REPAIR_NAMES[i], "paxelSO"+SO_NAMES[i], EnumRarity.RARE, SO_COLORS[i]);
if(ConfigCrafting.PAXELS.isEnabled()){ if(ConfigCrafting.PAXELS.isEnabled()){
GameRegistry.addRecipe(new ShapelessOreRecipe(soPaxels[i], axe, pickaxe, hoe, sword, shovel)); GameRegistry.addRecipe(new ShapelessOreRecipe(soPaxels[i], axe, pickaxe, hoe, sword, shovel));
@ -87,8 +87,8 @@ public class InitForeignPaxels{
Item shovel = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Shovel"); Item shovel = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Shovel");
if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){
Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); Item.ToolMaterial material = ((ItemTool)axe).getToolMaterial();
mtPaxels[i] = new ItemAllToolAA(material, MT_REPAIR_NAMES[i], "paxelMT"+MT_NAMES[i], EnumRarity.rare, MT_COLORS[i]); mtPaxels[i] = new ItemAllToolAA(material, MT_REPAIR_NAMES[i], "paxelMT"+MT_NAMES[i], EnumRarity.RARE, MT_COLORS[i]);
if(ConfigCrafting.PAXELS.isEnabled()){ if(ConfigCrafting.PAXELS.isEnabled()){
GameRegistry.addRecipe(new ShapelessOreRecipe(mtPaxels[i], axe, pickaxe, hoe, sword, shovel)); GameRegistry.addRecipe(new ShapelessOreRecipe(mtPaxels[i], axe, pickaxe, hoe, sword, shovel));
@ -115,8 +115,8 @@ public class InitForeignPaxels{
Item shovel = ItemUtil.getItemFromName(THERMAL_FOUNDATION+":tool.shovel"+TF_NAMES[i]); Item shovel = ItemUtil.getItemFromName(THERMAL_FOUNDATION+":tool.shovel"+TF_NAMES[i]);
if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){
Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); Item.ToolMaterial material = ((ItemTool)axe).getToolMaterial();
tfPaxels[i] = new ItemAllToolAA(material, "ingot"+TF_NAMES[i], "paxelTF"+TF_NAMES[i], EnumRarity.rare, TF_COLORS[i]); tfPaxels[i] = new ItemAllToolAA(material, "ingot"+TF_NAMES[i], "paxelTF"+TF_NAMES[i], EnumRarity.RARE, TF_COLORS[i]);
if(ConfigCrafting.PAXELS.isEnabled()){ if(ConfigCrafting.PAXELS.isEnabled()){
GameRegistry.addRecipe(new ShapelessOreRecipe(tfPaxels[i], axe, pickaxe, hoe, sword, shovel)); GameRegistry.addRecipe(new ShapelessOreRecipe(tfPaxels[i], axe, pickaxe, hoe, sword, shovel));

View file

@ -11,6 +11,7 @@
package de.ellpeck.actuallyadditions.mod.items; package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.api.block.IHudDisplay; import de.ellpeck.actuallyadditions.api.block.IHudDisplay;
import de.ellpeck.actuallyadditions.api.booklet.BookletPage; import de.ellpeck.actuallyadditions.api.booklet.BookletPage;
import de.ellpeck.actuallyadditions.api.internal.EntrySet; import de.ellpeck.actuallyadditions.api.internal.EntrySet;
@ -26,13 +27,13 @@ import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.profiler.Profiler; import net.minecraft.profiler.Profiler;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon; import net.minecraft.util.EnumFacing;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -62,10 +63,10 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{
} }
@Override @Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ){ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing face, float hitX, float hitY, float hitZ){
if(player.isSneaking()){ if(player.isSneaking()){
Block block = world.getBlock(x, y, z); Block block = Position.fromBlockPos(pos).getBlock(world);
ItemStack blockStack = new ItemStack(block, 1, world.getBlockMetadata(x, y, z)); ItemStack blockStack = new ItemStack(block, 1, Position.fromBlockPos(pos).getMetadata(world));
if(blockStack != null){ if(blockStack != null){
BookletPage page = BookletUtils.getFirstPageForStack(blockStack); BookletPage page = BookletUtils.getFirstPageForStack(blockStack);
if(page != null){ if(page != null){
@ -88,27 +89,15 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.epic; return EnumRarity.EPIC;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
} }
@Override @Override
public void displayHud(Minecraft minecraft, EntityPlayer player, ItemStack stack, MovingObjectPosition posHit, Profiler profiler, ScaledResolution resolution){ public void displayHud(Minecraft minecraft, EntityPlayer player, ItemStack stack, MovingObjectPosition posHit, Profiler profiler, ScaledResolution resolution){
if(posHit != null){ if(posHit != null){
Block block = minecraft.theWorld.getBlock(posHit.blockX, posHit.blockY, posHit.blockZ); Block block = Position.fromBlockPos(posHit.getBlockPos()).getBlock(minecraft.theWorld);
if(block != null && !block.isAir(minecraft.theWorld, posHit.blockX, posHit.blockY, posHit.blockZ)){ if(block != null && !block.isAir(minecraft.theWorld, posHit.getBlockPos())){
ItemStack blockStack = new ItemStack(block, 1, minecraft.theWorld.getBlockMetadata(posHit.blockX, posHit.blockY, posHit.blockZ)); ItemStack blockStack = new ItemStack(block, 1, Position.fromBlockPos(posHit.getBlockPos()).getMetadata(minecraft.theWorld));
if(blockStack != null){ if(blockStack != null){
int height = resolution.getScaledHeight()/5*3; int height = resolution.getScaledHeight()/5*3;
if(player.isSneaking()){ if(player.isSneaking()){
@ -119,18 +108,18 @@ public class ItemBooklet extends ItemBase implements IHudDisplay{
String strg3 = "Right-Click to open..."; String strg3 = "Right-Click to open...";
AssetUtil.renderStackToGui(page.getChapter().getDisplayItemStack() != null ? page.getChapter().getDisplayItemStack() : new ItemStack(InitItems.itemBooklet), resolution.getScaledWidth()/2-10, height+41, 1F); AssetUtil.renderStackToGui(page.getChapter().getDisplayItemStack() != null ? page.getChapter().getDisplayItemStack() : new ItemStack(InitItems.itemBooklet), resolution.getScaledWidth()/2-10, height+41, 1F);
minecraft.fontRenderer.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg1, resolution.getScaledWidth()/2-minecraft.fontRenderer.getStringWidth(strg1)/2, height+20, StringUtil.DECIMAL_COLOR_WHITE); minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg1, resolution.getScaledWidth()/2-minecraft.fontRendererObj.getStringWidth(strg1)/2, height+20, StringUtil.DECIMAL_COLOR_WHITE);
minecraft.fontRenderer.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg2, resolution.getScaledWidth()/2-minecraft.fontRenderer.getStringWidth(strg2)/2, height+30, StringUtil.DECIMAL_COLOR_WHITE); minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.YELLOW+""+EnumChatFormatting.ITALIC+strg2, resolution.getScaledWidth()/2-minecraft.fontRendererObj.getStringWidth(strg2)/2, height+30, StringUtil.DECIMAL_COLOR_WHITE);
minecraft.fontRenderer.drawStringWithShadow(EnumChatFormatting.GOLD+strg3, resolution.getScaledWidth()/2-minecraft.fontRenderer.getStringWidth(strg3)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE); minecraft.fontRendererObj.drawStringWithShadow(EnumChatFormatting.GOLD+strg3, resolution.getScaledWidth()/2-minecraft.fontRendererObj.getStringWidth(strg3)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE);
} }
else{ else{
String strg = EnumChatFormatting.DARK_RED+"No Info available! Sorry :("; String strg = EnumChatFormatting.DARK_RED+"No Info available! Sorry :(";
minecraft.fontRenderer.drawStringWithShadow(strg, resolution.getScaledWidth()/2-minecraft.fontRenderer.getStringWidth(strg)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE); minecraft.fontRendererObj.drawStringWithShadow(strg, resolution.getScaledWidth()/2-minecraft.fontRendererObj.getStringWidth(strg)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE);
} }
} }
else{ else{
String strg = EnumChatFormatting.DARK_GREEN+""+EnumChatFormatting.ITALIC+"Sneak!"; String strg = EnumChatFormatting.DARK_GREEN+""+EnumChatFormatting.ITALIC+"Sneak!";
minecraft.fontRenderer.drawStringWithShadow(strg, resolution.getScaledWidth()/2-minecraft.fontRenderer.getStringWidth(strg)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE); minecraft.fontRendererObj.drawStringWithShadow(strg, resolution.getScaledWidth()/2-minecraft.fontRendererObj.getStringWidth(strg)/2, height+60, StringUtil.DECIMAL_COLOR_WHITE);
} }
} }
} }

View file

@ -12,14 +12,11 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.blocks.BlockCrystal; import de.ellpeck.actuallyadditions.mod.blocks.BlockCrystal;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -27,21 +24,12 @@ import java.util.List;
public class ItemCrystal extends ItemBase{ public class ItemCrystal extends ItemBase{
@SideOnly(Side.CLIENT)
public IIcon[] textures;
public ItemCrystal(String name){ public ItemCrystal(String name){
super(name); super(name);
this.setHasSubtypes(true); this.setHasSubtypes(true);
this.setMaxDamage(0); this.setMaxDamage(0);
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int par1){
return par1 >= this.textures.length ? null : this.textures[par1];
}
@Override @Override
public int getMetadata(int damage){ public int getMetadata(int damage){
return damage; return damage;
@ -54,7 +42,7 @@ public class ItemCrystal extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= BlockCrystal.allCrystals.length ? EnumRarity.common : BlockCrystal.allCrystals[stack.getItemDamage()].rarity; return stack.getItemDamage() >= BlockCrystal.allCrystals.length ? EnumRarity.COMMON : BlockCrystal.allCrystals[stack.getItemDamage()].rarity;
} }
@SuppressWarnings("all") @SuppressWarnings("all")
@ -64,13 +52,4 @@ public class ItemCrystal extends ItemBase{
list.add(new ItemStack(this, 1, j)); list.add(new ItemStack(this, 1, j));
} }
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.textures = new IIcon[BlockCrystal.allCrystals.length];
for(int i = 0; i < this.textures.length; i++){
this.textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+BlockCrystal.allCrystals[i].name);
}
}
} }

View file

@ -12,14 +12,11 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.items.metalists.TheDusts; import de.ellpeck.actuallyadditions.mod.items.metalists.TheDusts;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -52,7 +49,7 @@ public class ItemDust extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= allDusts.length ? EnumRarity.common : allDusts[stack.getItemDamage()].rarity; return stack.getItemDamage() >= allDusts.length ? EnumRarity.COMMON : allDusts[stack.getItemDamage()].rarity;
} }
@SuppressWarnings("all") @SuppressWarnings("all")
@ -62,16 +59,4 @@ public class ItemDust extends ItemBase{
list.add(new ItemStack(this, 1, j)); list.add(new ItemStack(this, 1, j));
} }
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
}
} }

View file

@ -11,13 +11,8 @@
package de.ellpeck.actuallyadditions.mod.items; package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemGeneric extends ItemBase{ public class ItemGeneric extends ItemBase{
@ -28,18 +23,6 @@ public class ItemGeneric extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.uncommon; return EnumRarity.UNCOMMON;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
} }
} }

View file

@ -60,7 +60,7 @@ public class ItemGrowthRing extends ItemEnergy{
int theX = MathHelper.floor_double(player.posX+x); int theX = MathHelper.floor_double(player.posX+x);
int theY = MathHelper.floor_double(player.posY+y); int theY = MathHelper.floor_double(player.posY+y);
int theZ = MathHelper.floor_double(player.posZ+z); int theZ = MathHelper.floor_double(player.posZ+z);
Block theBlock = world.getBlock(theX, theY, theZ); Block theBlock = new Position(theX, theY, theZ).getBlock(world);
if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){ if((theBlock instanceof IGrowable || theBlock instanceof IPlantable) && !(theBlock instanceof BlockGrass)){
blocks.add(new Position(theX, theY, theZ)); blocks.add(new Position(theX, theY, theZ));
} }
@ -75,11 +75,11 @@ public class ItemGrowthRing extends ItemEnergy{
Position pos = blocks.get(Util.RANDOM.nextInt(blocks.size())); Position pos = blocks.get(Util.RANDOM.nextInt(blocks.size()));
int metaBefore = pos.getMetadata(world); int metaBefore = pos.getMetadata(world);
pos.getBlock(world).updateTick(world, pos.getX(), pos.getY(), pos.getZ(), Util.RANDOM); pos.getBlock(world).updateTick(world, pos, pos.getBlockState(world), Util.RANDOM);
//Show Particles if Metadata changed //Show Particles if Metadata changed
if(pos.getMetadata(world) != metaBefore){ if(pos.getMetadata(world) != metaBefore){
world.playAuxSFX(2005, pos.getX(), pos.getY(), pos.getZ(), 0); world.playAuxSFX(2005, pos, 0);
} }
if(!player.capabilities.isCreativeMode){ if(!player.capabilities.isCreativeMode){

View file

@ -12,14 +12,11 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -28,20 +25,12 @@ import java.util.List;
public class ItemMisc extends ItemBase{ public class ItemMisc extends ItemBase{
public static final TheMiscItems[] allMiscItems = TheMiscItems.values(); public static final TheMiscItems[] allMiscItems = TheMiscItems.values();
@SideOnly(Side.CLIENT)
public IIcon[] textures;
public ItemMisc(String name){ public ItemMisc(String name){
super(name); super(name);
this.setHasSubtypes(true); this.setHasSubtypes(true);
} }
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int par1){
return par1 >= textures.length ? null : textures[par1];
}
@Override @Override
public int getMetadata(int damage){ public int getMetadata(int damage){
return damage; return damage;
@ -54,7 +43,7 @@ public class ItemMisc extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= allMiscItems.length ? EnumRarity.common : allMiscItems[stack.getItemDamage()].rarity; return stack.getItemDamage() >= allMiscItems.length ? EnumRarity.COMMON : allMiscItems[stack.getItemDamage()].rarity;
} }
@SuppressWarnings("all") @SuppressWarnings("all")
@ -64,13 +53,4 @@ public class ItemMisc extends ItemBase{
list.add(new ItemStack(this, 1, j)); list.add(new ItemStack(this, 1, j));
} }
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.textures = new IIcon[allMiscItems.length];
for(int i = 0; i < textures.length; i++){
textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName()+allMiscItems[i].name);
}
}
} }

View file

@ -12,9 +12,7 @@ package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.items.metalists.ThePotionRings; import de.ellpeck.actuallyadditions.mod.items.metalists.ThePotionRings;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.StringUtil; import de.ellpeck.actuallyadditions.mod.util.StringUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -22,7 +20,6 @@ import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -72,11 +69,11 @@ public class ItemPotionRing extends ItemBase{
if(!effect.needsWaitBeforeActivating || !thePlayer.isPotionActive(effect.effectID)){ if(!effect.needsWaitBeforeActivating || !thePlayer.isPotionActive(effect.effectID)){
if(!((ItemPotionRing)stack.getItem()).isAdvanced){ if(!((ItemPotionRing)stack.getItem()).isAdvanced){
if(equippedStack != null && stack == equippedStack){ if(equippedStack != null && stack == equippedStack){
thePlayer.addPotionEffect(new PotionEffect(effect.effectID, effect.activeTime, effect.normalAmplifier, true)); thePlayer.addPotionEffect(new PotionEffect(effect.effectID, effect.activeTime, effect.normalAmplifier, true, false));
} }
} }
else{ else{
thePlayer.addPotionEffect(new PotionEffect(effect.effectID, effect.activeTime, effect.advancedAmplifier, true)); thePlayer.addPotionEffect(new PotionEffect(effect.effectID, effect.activeTime, effect.advancedAmplifier, true, false));
} }
} }
} }
@ -95,7 +92,7 @@ public class ItemPotionRing extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return stack.getItemDamage() >= allRings.length ? EnumRarity.common : allRings[stack.getItemDamage()].rarity; return stack.getItemDamage() >= allRings.length ? EnumRarity.COMMON : allRings[stack.getItemDamage()].rarity;
} }
@SuppressWarnings("all") @SuppressWarnings("all")
@ -105,16 +102,4 @@ public class ItemPotionRing extends ItemBase{
list.add(new ItemStack(this, 1, j)); list.add(new ItemStack(this, 1, j));
} }
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
}
} }

View file

@ -14,17 +14,15 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant;
import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemSeeds; import net.minecraft.item.ItemSeeds;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemSeed extends ItemSeeds{ public class ItemSeed extends ItemSeeds{
@ -65,28 +63,11 @@ public class ItemSeed extends ItemSeeds{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.rare; return EnumRarity.RARE;
} }
@Override @Override
@SideOnly(Side.CLIENT) public IBlockState getPlant(IBlockAccess world, BlockPos pos){
public void registerIcons(IIconRegister iconReg){ return this.plant.getDefaultState();
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
}
@Override
public Block getPlant(IBlockAccess world, int x, int y, int z){
return this.plant;
}
@Override
public int getPlantMetadata(IBlockAccess world, int x, int y, int z){
return 0;
} }
} }

View file

@ -11,16 +11,11 @@
package de.ellpeck.actuallyadditions.mod.items; package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemSolidifiedExperience extends ItemBase{ public class ItemSolidifiedExperience extends ItemBase{
@ -51,18 +46,6 @@ public class ItemSolidifiedExperience extends ItemBase{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.uncommon; return EnumRarity.UNCOMMON;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
} }
} }

View file

@ -11,22 +11,16 @@
package de.ellpeck.actuallyadditions.mod.items; package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemTeleStaff extends ItemEnergy{ public class ItemTeleStaff extends ItemEnergy{
@ -40,23 +34,20 @@ public class ItemTeleStaff extends ItemEnergy{
if(this.getWaitTime(stack) <= 0){ if(this.getWaitTime(stack) <= 0){
MovingObjectPosition pos = WorldUtil.getNearestPositionWithAir(world, player, 100); MovingObjectPosition pos = WorldUtil.getNearestPositionWithAir(world, player, 100);
if(pos != null && (pos.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK || player.rotationPitch >= -5)){ if(pos != null && (pos.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK || player.rotationPitch >= -5)){
int side = pos.sideHit; int side = pos.sideHit.ordinal();
if(side != -1){ if(side != -1){
ForgeDirection forgeSide = ForgeDirection.getOrientation(side); double x = pos.hitVec.xCoord-(side == 4 ? 0.5 : 0)+(side == 5 ? 0.5 : 0);
if(forgeSide != ForgeDirection.UNKNOWN){ double y = pos.hitVec.yCoord-(side == 0 ? 2.0 : 0)+(side == 1 ? 0.5 : 0);
double x = pos.hitVec.xCoord-(side == 4 ? 0.5 : 0)+(side == 5 ? 0.5 : 0); double z = pos.hitVec.zCoord-(side == 2 ? 0.5 : 0)+(side == 3 ? 0.5 : 0);
double y = pos.hitVec.yCoord-(side == 0 ? 2.0 : 0)+(side == 1 ? 0.5 : 0); int baseUse = 200;
double z = pos.hitVec.zCoord-(side == 2 ? 0.5 : 0)+(side == 3 ? 0.5 : 0); int use = baseUse+(int)(baseUse*pos.hitVec.distanceTo(new Vec3(player.posX, player.posY+(player.getEyeHeight()-player.getDefaultEyeHeight()), player.posZ)));
int baseUse = 200; if(this.getEnergyStored(stack) >= use){
int use = baseUse+(int)(baseUse*pos.hitVec.distanceTo(Vec3.createVectorHelper(player.posX, player.posY+(player.getEyeHeight()-player.getDefaultEyeHeight()), player.posZ))); ((EntityPlayerMP)player).playerNetServerHandler.setPlayerLocation(x, y, z, player.rotationYaw, player.rotationPitch);
if(this.getEnergyStored(stack) >= use){ player.mountEntity(null);
((EntityPlayerMP)player).playerNetServerHandler.setPlayerLocation(x, y, z, player.rotationYaw, player.rotationPitch); world.playSoundAtEntity(player, "mob.endermen.portal", 1.0F, 1.0F);
player.mountEntity(null); if(!player.capabilities.isCreativeMode){
world.playSoundAtEntity(player, "mob.endermen.portal", 1.0F, 1.0F); this.extractEnergy(stack, use, false);
if(!player.capabilities.isCreativeMode){ this.setWaitTime(stack, 50);
this.extractEnergy(stack, use, false);
this.setWaitTime(stack, 50);
}
} }
} }
} }
@ -77,19 +68,7 @@ public class ItemTeleStaff extends ItemEnergy{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.epic; return EnumRarity.EPIC;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
} }
private int getWaitTime(ItemStack stack){ private int getWaitTime(ItemStack stack){

View file

@ -10,19 +10,16 @@
package de.ellpeck.actuallyadditions.mod.items; package de.ellpeck.actuallyadditions.mod.items;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy; import de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemWaterRemovalRing extends ItemEnergy{ public class ItemWaterRemovalRing extends ItemEnergy{
@ -52,16 +49,18 @@ public class ItemWaterRemovalRing extends ItemEnergy{
int theZ = MathHelper.floor_double(player.posZ+z); int theZ = MathHelper.floor_double(player.posZ+z);
if(this.getEnergyStored(stack) >= energyUse){ if(this.getEnergyStored(stack) >= energyUse){
//Remove Water //Remove Water
if(world.getBlock(theX, theY, theZ) == Blocks.water || world.getBlock(theX, theY, theZ) == Blocks.flowing_water){ Position pos = new Position(theX, theY, theZ);
world.setBlockToAir(theX, theY, theZ); Block block = pos.getBlock(world);
if(block == Blocks.water || block == Blocks.flowing_water){
world.setBlockToAir(pos);
if(!player.capabilities.isCreativeMode){ if(!player.capabilities.isCreativeMode){
this.extractEnergy(stack, energyUse, false); this.extractEnergy(stack, energyUse, false);
} }
} }
//Remove Lava //Remove Lava
else if(world.getBlock(theX, theY, theZ) == Blocks.lava || world.getBlock(theX, theY, theZ) == Blocks.flowing_lava){ else if(block == Blocks.lava || block == Blocks.flowing_lava){
world.setBlockToAir(theX, theY, theZ); world.setBlockToAir(pos);
if(!player.capabilities.isCreativeMode){ if(!player.capabilities.isCreativeMode){
this.extractEnergy(stack, energyUse*2, false); this.extractEnergy(stack, energyUse*2, false);
@ -76,18 +75,6 @@ public class ItemWaterRemovalRing extends ItemEnergy{
@Override @Override
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return EnumRarity.epic; return EnumRarity.EPIC;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
} }
} }

View file

@ -100,7 +100,7 @@ public abstract class ItemEnergy extends ItemEnergyContainer{
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack stack, int pass){ public boolean hasEffect(ItemStack stack){
return false; return false;
} }

View file

@ -13,14 +13,10 @@ package de.ellpeck.actuallyadditions.mod.items.base;
import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab;
import de.ellpeck.actuallyadditions.mod.util.ItemUtil; import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemPickaxeAA extends ItemPickaxe{ public class ItemPickaxeAA extends ItemPickaxe{
@ -66,16 +62,4 @@ public class ItemPickaxeAA extends ItemPickaxe{
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return this.rarity; return this.rarity;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
}
} }

View file

@ -14,14 +14,10 @@ import de.ellpeck.actuallyadditions.mod.blocks.base.ItemBlockBase;
import de.ellpeck.actuallyadditions.mod.creative.CreativeTab; import de.ellpeck.actuallyadditions.mod.creative.CreativeTab;
import de.ellpeck.actuallyadditions.mod.util.ItemUtil; import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword; import net.minecraft.item.ItemSword;
import net.minecraft.util.IIcon;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemSwordAA extends ItemSword{ public class ItemSwordAA extends ItemSword{
@ -71,16 +67,4 @@ public class ItemSwordAA extends ItemSword{
public EnumRarity getRarity(ItemStack stack){ public EnumRarity getRarity(ItemStack stack){
return this.rarity; return this.rarity;
} }
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconReg){
this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getBaseName());
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack stack, int pass){
return this.itemIcon;
}
} }

View file

@ -28,13 +28,13 @@ public class LensDeath extends Lens{
if(tile.getEnergy() >= use){ if(tile.getEnergy() >= use){
tile.extractEnergy(use); tile.extractEnergy(use);
ArrayList<EntityLivingBase> entities = (ArrayList<EntityLivingBase>)tile.getWorld().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(hitBlock.getX(), hitBlock.getY(), hitBlock.getZ(), hitBlock.getX()+1, hitBlock.getY()+1, hitBlock.getZ()+1)); ArrayList<EntityLivingBase> entities = (ArrayList<EntityLivingBase>)tile.getWorldObject().getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.fromBounds(hitBlock.getX(), hitBlock.getY(), hitBlock.getZ(), hitBlock.getX()+1, hitBlock.getY()+1, hitBlock.getZ()+1));
for(EntityLivingBase entity : entities){ for(EntityLivingBase entity : entities){
entity.attackEntityFrom(DamageSources.DAMAGE_ATOMIC_RECONSTRUCTOR, 20F); entity.attackEntityFrom(DamageSources.DAMAGE_ATOMIC_RECONSTRUCTOR, 20F);
} }
} }
return hitBlock != null && !hitBlock.getBlock(tile.getWorld()).isAir(tile.getWorld(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ()); return hitBlock != null && !hitBlock.getBlock(tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock);
} }
@Override @Override

View file

@ -18,10 +18,10 @@ public class LensDetonation extends Lens{
@Override @Override
public boolean invoke(Position hitBlock, IAtomicReconstructor tile){ public boolean invoke(Position hitBlock, IAtomicReconstructor tile){
if(hitBlock != null && !hitBlock.getBlock(tile.getWorld()).isAir(tile.getWorld(), hitBlock.getX(), hitBlock.getY(), hitBlock.getZ())){ if(hitBlock != null && !hitBlock.getBlock(tile.getWorldObject()).isAir(tile.getWorldObject(), hitBlock)){
int use = 250000; int use = 250000;
if(tile.getEnergy() >= use){ if(tile.getEnergy() >= use){
tile.getWorld().newExplosion(null, hitBlock.getX()+0.5, hitBlock.getY()+0.5, hitBlock.getZ()+0.5, 10F, true, true); tile.getWorldObject().newExplosion(null, hitBlock.getX()+0.5, hitBlock.getY()+0.5, hitBlock.getZ()+0.5, 10F, true, true);
tile.extractEnergy(use); tile.extractEnergy(use);
} }
return true; return true;

View file

@ -15,14 +15,14 @@ import net.minecraft.item.EnumRarity;
public enum TheDusts{ public enum TheDusts{
IRON("Iron", 7826534, EnumRarity.common), IRON("Iron", 7826534, EnumRarity.COMMON),
GOLD("Gold", 14335744, EnumRarity.uncommon), GOLD("Gold", 14335744, EnumRarity.UNCOMMON),
DIAMOND("Diamond", 292003, EnumRarity.rare), DIAMOND("Diamond", 292003, EnumRarity.RARE),
EMERALD("Emerald", 4319527, EnumRarity.epic), EMERALD("Emerald", 4319527, EnumRarity.EPIC),
LAPIS("Lapis", 1849791, EnumRarity.uncommon), LAPIS("Lapis", 1849791, EnumRarity.UNCOMMON),
QUARTZ("Quartz", StringUtil.DECIMAL_COLOR_WHITE, EnumRarity.uncommon), QUARTZ("Quartz", StringUtil.DECIMAL_COLOR_WHITE, EnumRarity.UNCOMMON),
COAL("Coal", 0, EnumRarity.uncommon), COAL("Coal", 0, EnumRarity.UNCOMMON),
QUARTZ_BLACK("QuartzBlack", 18, EnumRarity.rare); QUARTZ_BLACK("QuartzBlack", 18, EnumRarity.RARE);
public final String name; public final String name;
public final int color; public final int color;

View file

@ -17,27 +17,27 @@ import net.minecraft.item.ItemStack;
public enum TheFoods{ public enum TheFoods{
CHEESE("Cheese", 1, 0.5F, false, 3, EnumRarity.common), CHEESE("Cheese", 1, 0.5F, false, 3, EnumRarity.COMMON),
PUMPKIN_STEW("PumpkinStew", 10, 1F, true, 30, EnumRarity.common), PUMPKIN_STEW("PumpkinStew", 10, 1F, true, 30, EnumRarity.COMMON),
CARROT_JUICE("CarrotJuice", 6, 0.6F, true, 20, EnumRarity.common), CARROT_JUICE("CarrotJuice", 6, 0.6F, true, 20, EnumRarity.COMMON),
FISH_N_CHIPS("FishNChips", 20, 5F, false, 40, EnumRarity.uncommon), FISH_N_CHIPS("FishNChips", 20, 5F, false, 40, EnumRarity.UNCOMMON),
FRENCH_FRIES("FrenchFries", 16, 4F, false, 32, EnumRarity.common), FRENCH_FRIES("FrenchFries", 16, 4F, false, 32, EnumRarity.COMMON),
FRENCH_FRY("FrenchFry", 3, 0.5F, false, 3, EnumRarity.common), FRENCH_FRY("FrenchFry", 3, 0.5F, false, 3, EnumRarity.COMMON),
SPAGHETTI("Spaghetti", 18, 3F, false, 38, EnumRarity.common), SPAGHETTI("Spaghetti", 18, 3F, false, 38, EnumRarity.COMMON),
NOODLE("Noodle", 1, 0.5F, false, 3, EnumRarity.common), NOODLE("Noodle", 1, 0.5F, false, 3, EnumRarity.COMMON),
CHOCOLATE_CAKE("ChocolateCake", 16, 2F, false, 45, EnumRarity.uncommon), CHOCOLATE_CAKE("ChocolateCake", 16, 2F, false, 45, EnumRarity.UNCOMMON),
CHOCOLATE("Chocolate", 5, 1F, false, 15, EnumRarity.common), CHOCOLATE("Chocolate", 5, 1F, false, 15, EnumRarity.COMMON),
TOAST("Toast", 3, 0.4F, false, 25, EnumRarity.common), TOAST("Toast", 3, 0.4F, false, 25, EnumRarity.COMMON),
SUBMARINE_SANDWICH("SubmarineSandwich", 10, 8F, false, 40, EnumRarity.uncommon), SUBMARINE_SANDWICH("SubmarineSandwich", 10, 8F, false, 40, EnumRarity.UNCOMMON),
BIG_COOKIE("BigCookie", 6, 1F, false, 20, EnumRarity.uncommon), BIG_COOKIE("BigCookie", 6, 1F, false, 20, EnumRarity.UNCOMMON),
HAMBURGER("Hamburger", 14, 6F, false, 40, EnumRarity.common), HAMBURGER("Hamburger", 14, 6F, false, 40, EnumRarity.COMMON),
PIZZA("Pizza", 20, 10F, false, 45, EnumRarity.uncommon), PIZZA("Pizza", 20, 10F, false, 45, EnumRarity.UNCOMMON),
BAGUETTE("Baguette", 7, 2F, false, 25, EnumRarity.common), BAGUETTE("Baguette", 7, 2F, false, 25, EnumRarity.COMMON),
RICE("Rice", 2, 1F, false, 10, EnumRarity.uncommon), RICE("Rice", 2, 1F, false, 10, EnumRarity.UNCOMMON),
RICE_BREAD("RiceBread", 8, 3F, false, 25, EnumRarity.uncommon), RICE_BREAD("RiceBread", 8, 3F, false, 25, EnumRarity.UNCOMMON),
DOUGHNUT("Doughnut", 4, 0.5F, false, 10, EnumRarity.epic), DOUGHNUT("Doughnut", 4, 0.5F, false, 10, EnumRarity.EPIC),
CHOCOLATE_TOAST("ChocolateToast", 8, 1.4F, false, 40, EnumRarity.rare), CHOCOLATE_TOAST("ChocolateToast", 8, 1.4F, false, 40, EnumRarity.RARE),
BACON("Bacon", 4, 0.5F, false, 30, EnumRarity.common); BACON("Bacon", 4, 0.5F, false, 30, EnumRarity.COMMON);
public final String name; public final String name;
public final int healAmount; public final int healAmount;

View file

@ -14,13 +14,13 @@ import net.minecraft.item.EnumRarity;
public enum TheJams{ public enum TheJams{
CU_BA_RA("CuBaRa", 6, 0.1F, EnumRarity.rare, 5, 12, 12595273), CU_BA_RA("CuBaRa", 6, 0.1F, EnumRarity.RARE, 5, 12, 12595273),
GRA_KI_BA("GraKiBa", 6, 0.1F, EnumRarity.rare, 16, 13, 5492820), GRA_KI_BA("GraKiBa", 6, 0.1F, EnumRarity.RARE, 16, 13, 5492820),
PL_AP_LE("PlApLe", 6, 0.1F, EnumRarity.rare, 15, 3, 13226009), PL_AP_LE("PlApLe", 6, 0.1F, EnumRarity.RARE, 15, 3, 13226009),
CH_AP_CI("ChApCi", 6, 0.1F, EnumRarity.rare, 10, 1, 13189222), CH_AP_CI("ChApCi", 6, 0.1F, EnumRarity.RARE, 10, 1, 13189222),
HO_ME_KI("HoMeKi", 6, 0.1F, EnumRarity.rare, 10, 14, 2031360), HO_ME_KI("HoMeKi", 6, 0.1F, EnumRarity.RARE, 10, 14, 2031360),
PI_CO("PiCo", 6, 0.1F, EnumRarity.rare, 9, 1, 16056203), PI_CO("PiCo", 6, 0.1F, EnumRarity.RARE, 9, 1, 16056203),
HO_ME_CO("HoMeCo", 6, 0.1F, EnumRarity.rare, 10, 13, 10462208); HO_ME_CO("HoMeCo", 6, 0.1F, EnumRarity.RARE, 10, 13, 10462208);
public final String name; public final String name;
public final int healAmount; public final int healAmount;

View file

@ -14,25 +14,25 @@ import net.minecraft.item.EnumRarity;
public enum TheMiscItems{ public enum TheMiscItems{
PAPER_CONE("PaperCone", EnumRarity.common), PAPER_CONE("PaperCone", EnumRarity.COMMON),
MASHED_FOOD("MashedFood", EnumRarity.uncommon), MASHED_FOOD("MashedFood", EnumRarity.UNCOMMON),
KNIFE_BLADE("KnifeBlade", EnumRarity.common), KNIFE_BLADE("KnifeBlade", EnumRarity.COMMON),
KNIFE_HANDLE("KnifeHandle", EnumRarity.common), KNIFE_HANDLE("KnifeHandle", EnumRarity.COMMON),
DOUGH("Dough", EnumRarity.common), DOUGH("Dough", EnumRarity.COMMON),
QUARTZ("BlackQuartz", EnumRarity.epic), QUARTZ("BlackQuartz", EnumRarity.EPIC),
RING("Ring", EnumRarity.uncommon), RING("Ring", EnumRarity.UNCOMMON),
COIL("Coil", EnumRarity.common), COIL("Coil", EnumRarity.COMMON),
COIL_ADVANCED("CoilAdvanced", EnumRarity.uncommon), COIL_ADVANCED("CoilAdvanced", EnumRarity.UNCOMMON),
RICE_DOUGH("RiceDough", EnumRarity.uncommon), RICE_DOUGH("RiceDough", EnumRarity.UNCOMMON),
TINY_COAL("TinyCoal", EnumRarity.common), TINY_COAL("TinyCoal", EnumRarity.COMMON),
TINY_CHAR("TinyCharcoal", EnumRarity.common), TINY_CHAR("TinyCharcoal", EnumRarity.COMMON),
RICE_SLIME("RiceSlime", EnumRarity.uncommon), RICE_SLIME("RiceSlime", EnumRarity.UNCOMMON),
CANOLA("Canola", EnumRarity.uncommon), CANOLA("Canola", EnumRarity.UNCOMMON),
CUP("Cup", EnumRarity.uncommon), CUP("Cup", EnumRarity.UNCOMMON),
BAT_WING("BatWing", EnumRarity.rare), BAT_WING("BatWing", EnumRarity.RARE),
DRILL_CORE("DrillCore", EnumRarity.uncommon), DRILL_CORE("DrillCore", EnumRarity.UNCOMMON),
BLACK_DYE("BlackDye", EnumRarity.epic), BLACK_DYE("BlackDye", EnumRarity.EPIC),
LENS("Lens", EnumRarity.uncommon); LENS("Lens", EnumRarity.UNCOMMON);
public final String name; public final String name;
public final EnumRarity rarity; public final EnumRarity rarity;

View file

@ -18,22 +18,22 @@ import net.minecraft.potion.Potion;
public enum ThePotionRings{ public enum ThePotionRings{
SPEED(Potion.moveSpeed.getName(), 8171462, Potion.moveSpeed.getId(), 0, 1, 10, false, EnumRarity.uncommon, new ItemStack(Items.sugar)), SPEED(Potion.moveSpeed.getName(), 8171462, Potion.moveSpeed.getId(), 0, 1, 10, false, EnumRarity.UNCOMMON, new ItemStack(Items.sugar)),
//Slowness //Slowness
HASTE(Potion.digSpeed.getName(), 14270531, Potion.digSpeed.getId(), 0, 1, 10, false, EnumRarity.epic, new ItemStack(Items.repeater)), HASTE(Potion.digSpeed.getName(), 14270531, Potion.digSpeed.getId(), 0, 1, 10, false, EnumRarity.EPIC, new ItemStack(Items.repeater)),
//Mining Fatigue //Mining Fatigue
STRENGTH(Potion.damageBoost.getName(), 9643043, Potion.damageBoost.getId(), 0, 1, 10, false, EnumRarity.rare, new ItemStack(Items.blaze_powder)), STRENGTH(Potion.damageBoost.getName(), 9643043, Potion.damageBoost.getId(), 0, 1, 10, false, EnumRarity.RARE, new ItemStack(Items.blaze_powder)),
//Health (Not Happening) //Health (Not Happening)
//Damage //Damage
JUMP_BOOST(Potion.jump.getName(), 7889559, Potion.jump.getId(), 0, 1, 10, false, EnumRarity.rare, new ItemStack(Blocks.piston)), JUMP_BOOST(Potion.jump.getName(), 7889559, Potion.jump.getId(), 0, 1, 10, false, EnumRarity.RARE, new ItemStack(Blocks.piston)),
//Nausea //Nausea
REGEN(Potion.regeneration.getName(), 13458603, Potion.regeneration.getId(), 0, 1, 50, true, EnumRarity.rare, new ItemStack(Items.ghast_tear)), REGEN(Potion.regeneration.getName(), 13458603, Potion.regeneration.getId(), 0, 1, 50, true, EnumRarity.RARE, new ItemStack(Items.ghast_tear)),
RESISTANCE(Potion.resistance.getName(), 10044730, Potion.resistance.getId(), 0, 1, 10, false, EnumRarity.epic, new ItemStack(Items.slime_ball)), RESISTANCE(Potion.resistance.getName(), 10044730, Potion.resistance.getId(), 0, 1, 10, false, EnumRarity.EPIC, new ItemStack(Items.slime_ball)),
FIRE_RESISTANCE(Potion.fireResistance.getName(), 14981690, Potion.fireResistance.getId(), 0, 0, 10, false, EnumRarity.uncommon, new ItemStack(Items.magma_cream)), FIRE_RESISTANCE(Potion.fireResistance.getName(), 14981690, Potion.fireResistance.getId(), 0, 0, 10, false, EnumRarity.UNCOMMON, new ItemStack(Items.magma_cream)),
WATER_BREATHING(Potion.waterBreathing.getName(), 3035801, Potion.waterBreathing.getId(), 0, 0, 10, false, EnumRarity.rare, new ItemStack(Items.fish, 1, 3)), WATER_BREATHING(Potion.waterBreathing.getName(), 3035801, Potion.waterBreathing.getId(), 0, 0, 10, false, EnumRarity.RARE, new ItemStack(Items.fish, 1, 3)),
INVISIBILITY(Potion.invisibility.getName(), 8356754, Potion.invisibility.getId(), 0, 0, 10, false, EnumRarity.epic, new ItemStack(Items.fermented_spider_eye)), INVISIBILITY(Potion.invisibility.getName(), 8356754, Potion.invisibility.getId(), 0, 0, 10, false, EnumRarity.EPIC, new ItemStack(Items.fermented_spider_eye)),
//Blindness //Blindness
NIGHT_VISION(Potion.nightVision.getName(), 2039713, Potion.nightVision.getId(), 0, 0, 300, false, EnumRarity.rare, new ItemStack(Items.golden_carrot)); NIGHT_VISION(Potion.nightVision.getName(), 2039713, Potion.nightVision.getId(), 0, 0, 300, false, EnumRarity.RARE, new ItemStack(Items.golden_carrot));
//Hunger //Hunger
//Weakness //Weakness
//Poison //Poison

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.misc; package de.ellpeck.actuallyadditions.mod.misc;
import de.ellpeck.actuallyadditions.api.Position;
import net.minecraft.block.BlockDispenser; import net.minecraft.block.BlockDispenser;
import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
import net.minecraft.dispenser.IBlockSource; import net.minecraft.dispenser.IBlockSource;
@ -22,12 +23,13 @@ public class DispenserHandlerEmptyBucket extends BehaviorDefaultDispenseItem{
@Override @Override
public ItemStack dispenseStack(IBlockSource source, ItemStack bucket){ public ItemStack dispenseStack(IBlockSource source, ItemStack bucket){
EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata()); EnumFacing facing = BlockDispenser.getFacing(source.getBlockMetadata());
int x = source.getXInt()+facing.getFrontOffsetX(); int x = source.getBlockTileEntity().getPos().getX()+facing.getFrontOffsetX();
int y = source.getYInt()+facing.getFrontOffsetY(); int y = source.getBlockTileEntity().getPos().getY()+facing.getFrontOffsetY();
int z = source.getZInt()+facing.getFrontOffsetZ(); int z = source.getBlockTileEntity().getPos().getZ()+facing.getFrontOffsetZ();
Position pos = new Position(x, y, z);
if(source.getWorld().isAirBlock(x, y, z) && !source.getWorld().getBlock(x, y, z).getMaterial().isSolid() && ((ItemBucket)bucket.getItem()).tryPlaceContainedLiquid(source.getWorld(), x, y, z)){ if(source.getWorld().isAirBlock(pos) && !pos.getMaterial(source.getWorld()).isSolid() && ((ItemBucket)bucket.getItem()).tryPlaceContainedLiquid(source.getWorld(), pos)){
return new ItemStack(Items.bucket); return new ItemStack(Items.bucket);
} }

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.misc; package de.ellpeck.actuallyadditions.mod.misc;
import de.ellpeck.actuallyadditions.api.Position;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockDispenser; import net.minecraft.block.BlockDispenser;
import net.minecraft.dispenser.BehaviorDefaultDispenseItem; import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
@ -26,10 +27,10 @@ public class DispenserHandlerFillBucket extends BehaviorDefaultDispenseItem{
@Override @Override
public ItemStack dispenseStack(IBlockSource source, ItemStack emptyBucket){ public ItemStack dispenseStack(IBlockSource source, ItemStack emptyBucket){
EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata()); EnumFacing facing = BlockDispenser.getFacing(source.getBlockMetadata());
int x = source.getXInt()+facing.getFrontOffsetX(); int x = source.getBlockTileEntity().getPos().getX()+facing.getFrontOffsetX();
int y = source.getYInt()+facing.getFrontOffsetY(); int y = source.getBlockTileEntity().getPos().getY()+facing.getFrontOffsetY();
int z = source.getZInt()+facing.getFrontOffsetZ(); int z = source.getBlockTileEntity().getPos().getZ()+facing.getFrontOffsetZ();
ItemStack filledBucket = this.tryFillBucket(source, x, y, z, emptyBucket); ItemStack filledBucket = this.tryFillBucket(source, x, y, z, emptyBucket);
@ -44,7 +45,7 @@ public class DispenserHandlerFillBucket extends BehaviorDefaultDispenseItem{
emptyBucket = filledBucket.copy(); emptyBucket = filledBucket.copy();
} }
//Not enough space for the bucket in the inventory? //Not enough space for the bucket in the inventory?
else if(((TileEntityDispenser)source.getBlockTileEntity()).func_146019_a(filledBucket.copy()) < 0){ else if(((TileEntityDispenser)source.getBlockTileEntity()).addItemStack(filledBucket.copy()) < 0){
new BehaviorDefaultDispenseItem().dispense(source, filledBucket.copy()); new BehaviorDefaultDispenseItem().dispense(source, filledBucket.copy());
} }
//Filled Bucket or Empty Buckets because either they weren't filled or the full one was dispensed out because of missing space //Filled Bucket or Empty Buckets because either they weren't filled or the full one was dispensed out because of missing space
@ -52,24 +53,25 @@ public class DispenserHandlerFillBucket extends BehaviorDefaultDispenseItem{
} }
private ItemStack tryFillBucket(IBlockSource source, int x, int y, int z, ItemStack bucket){ private ItemStack tryFillBucket(IBlockSource source, int x, int y, int z, ItemStack bucket){
Block block = source.getWorld().getBlock(x, y, z); Position pos = new Position(x, y, z);
Block block = pos.getBlock(source.getWorld());
if(block == Blocks.water || block == Blocks.flowing_water){ if(block == Blocks.water || block == Blocks.flowing_water){
if(source.getWorld().getBlockMetadata(x, y, z) == 0){ if(pos.getMetadata(source.getWorld()) == 0){
source.getWorld().setBlockToAir(x, y, z); source.getWorld().setBlockToAir(pos);
return new ItemStack(Items.water_bucket); return new ItemStack(Items.water_bucket);
} }
} }
else if(block == Blocks.lava || block == Blocks.flowing_lava){ else if(block == Blocks.lava || block == Blocks.flowing_lava){
if(source.getWorld().getBlockMetadata(x, y, z) == 0){ if(pos.getMetadata(source.getWorld()) == 0){
source.getWorld().setBlockToAir(x, y, z); source.getWorld().setBlockToAir(pos);
return new ItemStack(Items.lava_bucket); return new ItemStack(Items.lava_bucket);
} }
} }
else if(block instanceof IFluidBlock && ((IFluidBlock)block).canDrain(source.getWorld(), x, y, z)){ else if(block instanceof IFluidBlock && ((IFluidBlock)block).canDrain(source.getWorld(), pos)){
ItemStack stack = FluidContainerRegistry.fillFluidContainer(((IFluidBlock)block).drain(source.getWorld(), x, y, z, false), bucket); ItemStack stack = FluidContainerRegistry.fillFluidContainer(((IFluidBlock)block).drain(source.getWorld(), pos, false), bucket);
if(stack != null){ if(stack != null){
((IFluidBlock)block).drain(source.getWorld(), x, y, z, true); ((IFluidBlock)block).drain(source.getWorld(), pos, true);
return stack; return stack;
} }
} }

View file

@ -15,6 +15,7 @@ import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EnumPlayerModelParts;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -32,7 +33,7 @@ public class RenderSpecial{
} }
public void render(EntityPlayer player){ public void render(EntityPlayer player){
if(player.isInvisible() || player.getHideCape()){ if(player.isInvisible() || player.isWearing(EnumPlayerModelParts.CAPE)){
return; return;
} }

View file

@ -15,6 +15,7 @@ import de.ellpeck.actuallyadditions.mod.util.Util;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@ -48,12 +49,13 @@ public class SpecialRenderInit{
ItemStack stack = null; ItemStack stack = null;
//Get the Item from the String //Get the Item from the String
if(Item.itemRegistry.containsKey(itemName)){ ResourceLocation resLoc = new ResourceLocation(itemName);
stack = new ItemStack((Item)Item.itemRegistry.getObject(itemName), 1, meta); if(Item.itemRegistry.containsKey(resLoc)){
stack = new ItemStack(Item.itemRegistry.getObject(resLoc), 1, meta);
} }
else{ else{
if(Block.blockRegistry.containsKey(itemName)){ if(Block.blockRegistry.containsKey(resLoc)){
stack = new ItemStack((Block)Block.blockRegistry.getObject(itemName), 1, meta); stack = new ItemStack(Block.blockRegistry.getObject(resLoc), 1, meta);
} }
} }
@ -70,7 +72,7 @@ public class SpecialRenderInit{
if(!specialList.isEmpty()){ if(!specialList.isEmpty()){
for(Map.Entry<String, RenderSpecial> entry : specialList.entrySet()){ for(Map.Entry<String, RenderSpecial> entry : specialList.entrySet()){
//Does the player have one of the names from the list? //Does the player have one of the names from the list?
if(StringUtil.equalsToLowerCase(entry.getKey(), event.entityPlayer.getCommandSenderName())){ if(StringUtil.equalsToLowerCase(entry.getKey(), event.entityPlayer.getName())){
//Render the special Item/Block //Render the special Item/Block
entry.getValue().render(event.entityPlayer); entry.getValue().render(event.entityPlayer);
break; break;

View file

@ -58,7 +58,7 @@ public class PacketParticle implements IMessage{
int difX = startX-endX; int difX = startX-endX;
int difY = startY-endY; int difY = startY-endY;
int difZ = startZ-endZ; int difZ = startZ-endZ;
double distance = Vec3.createVectorHelper(startX, startY, startZ).distanceTo(Vec3.createVectorHelper(endX, endY, endZ)); double distance = new Vec3(startX, startY, startZ).distanceTo(new Vec3(endX, endY, endZ));
for(int times = 0; times < particleAmount/2; times++){ for(int times = 0; times < particleAmount/2; times++){
for(double i = 0; i <= 1; i += 1/(distance*particleAmount)){ for(double i = 0; i <= 1; i += 1/(distance*particleAmount)){

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.network.gui; package de.ellpeck.actuallyadditions.mod.network.gui;
import de.ellpeck.actuallyadditions.api.Position;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -38,7 +39,7 @@ public class PacketGuiNumber implements IMessage{
this.tileX = x; this.tileX = x;
this.tileY = y; this.tileY = y;
this.tileZ = z; this.tileZ = z;
this.worldID = world.provider.dimensionId; this.worldID = world.provider.getDimensionId();
this.text = text; this.text = text;
this.textID = textID; this.textID = textID;
this.playerID = player.getEntityId(); this.playerID = player.getEntityId();
@ -71,7 +72,7 @@ public class PacketGuiNumber implements IMessage{
@Override @Override
public IMessage onMessage(PacketGuiNumber message, MessageContext ctx){ public IMessage onMessage(PacketGuiNumber message, MessageContext ctx){
World world = DimensionManager.getWorld(message.worldID); World world = DimensionManager.getWorld(message.worldID);
TileEntity tile = world.getTileEntity(message.tileX, message.tileY, message.tileZ); TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ));
if(tile instanceof INumberReactor){ if(tile instanceof INumberReactor){
INumberReactor reactor = (INumberReactor)tile; INumberReactor reactor = (INumberReactor)tile;

View file

@ -10,6 +10,7 @@
package de.ellpeck.actuallyadditions.mod.network.gui; package de.ellpeck.actuallyadditions.mod.network.gui;
import de.ellpeck.actuallyadditions.api.Position;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -38,7 +39,7 @@ public class PacketGuiString implements IMessage{
this.tileX = x; this.tileX = x;
this.tileY = y; this.tileY = y;
this.tileZ = z; this.tileZ = z;
this.worldID = world.provider.dimensionId; this.worldID = world.provider.getDimensionId();
this.text = text; this.text = text;
this.textID = textID; this.textID = textID;
this.playerID = player.getEntityId(); this.playerID = player.getEntityId();
@ -82,7 +83,7 @@ public class PacketGuiString implements IMessage{
@Override @Override
public IMessage onMessage(PacketGuiString message, MessageContext ctx){ public IMessage onMessage(PacketGuiString message, MessageContext ctx){
World world = DimensionManager.getWorld(message.worldID); World world = DimensionManager.getWorld(message.worldID);
TileEntity tile = world.getTileEntity(message.tileX, message.tileY, message.tileZ); TileEntity tile = world.getTileEntity(new Position(message.tileX, message.tileY, message.tileZ));
if(tile instanceof IStringReactor){ if(tile instanceof IStringReactor){
IStringReactor reactor = (IStringReactor)tile; IStringReactor reactor = (IStringReactor)tile;

View file

@ -11,7 +11,10 @@
package de.ellpeck.actuallyadditions.mod.proxy; package de.ellpeck.actuallyadditions.mod.proxy;
import de.ellpeck.actuallyadditions.mod.blocks.render.*; import de.ellpeck.actuallyadditions.mod.blocks.render.RenderLaserRelay;
import de.ellpeck.actuallyadditions.mod.blocks.render.RenderReconstructorLens;
import de.ellpeck.actuallyadditions.mod.blocks.render.RenderSmileyCloud;
import de.ellpeck.actuallyadditions.mod.blocks.render.RenderTileEntity;
import de.ellpeck.actuallyadditions.mod.blocks.render.model.*; import de.ellpeck.actuallyadditions.mod.blocks.render.model.*;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues;
@ -25,7 +28,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@ -64,15 +66,6 @@ public class ClientProxy implements IProxy{
InitEvents.initClient(); InitEvents.initClient();
AssetUtil.compostRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.fishingNetRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.furnaceSolarRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.coffeeMachineRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.phantomBoosterRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.smileyCloudRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.laserRelayRenderId = RenderingRegistry.getNextAvailableRenderId();
AssetUtil.bookletStandRenderId = RenderingRegistry.getNextAvailableRenderId();
registerRenderer(TileEntityCompost.class, new RenderTileEntity(new ModelCompost()), AssetUtil.compostRenderId); registerRenderer(TileEntityCompost.class, new RenderTileEntity(new ModelCompost()), AssetUtil.compostRenderId);
registerRenderer(TileEntityFishingNet.class, new RenderTileEntity(new ModelFishingNet()), AssetUtil.fishingNetRenderId); registerRenderer(TileEntityFishingNet.class, new RenderTileEntity(new ModelFishingNet()), AssetUtil.fishingNetRenderId);
registerRenderer(TileEntityFurnaceSolar.class, new RenderTileEntity(new ModelFurnaceSolar()), AssetUtil.furnaceSolarRenderId); registerRenderer(TileEntityFurnaceSolar.class, new RenderTileEntity(new ModelFurnaceSolar()), AssetUtil.furnaceSolarRenderId);
@ -95,6 +88,7 @@ public class ClientProxy implements IProxy{
private static void registerRenderer(Class<? extends TileEntity> tileClass, RenderTileEntity tileRender, int renderID){ private static void registerRenderer(Class<? extends TileEntity> tileClass, RenderTileEntity tileRender, int renderID){
ClientRegistry.bindTileEntitySpecialRenderer(tileClass, tileRender); ClientRegistry.bindTileEntitySpecialRenderer(tileClass, tileRender);
RenderingRegistry.registerBlockHandler(new RenderInventory(tileRender, renderID)); //TODO Fix inventory rendering
//RenderingRegistry.registerBlockHandler(new RenderInventory(tileRender, renderID));
} }
} }

View file

@ -38,7 +38,7 @@ public class CrusherRecipeRegistry{
String output = theCase.resultPreString+ore.substring(theCase.theCase.length()); String output = theCase.resultPreString+ore.substring(theCase.theCase.length());
if(!hasOreRecipe(ore)){ if(!hasOreRecipe(ore)){
if(!OreDictionary.getOres(output, false).isEmpty() && !OreDictionary.getOres(ore, false).isEmpty()){ if(!OreDictionary.getOres(output).isEmpty() && !OreDictionary.getOres(ore).isEmpty()){
ActuallyAdditionsAPI.addCrusherRecipe(ore, output, theCase.resultAmount); ActuallyAdditionsAPI.addCrusherRecipe(ore, output, theCase.resultAmount);
} }
else{ else{

View file

@ -13,16 +13,18 @@ package de.ellpeck.actuallyadditions.mod.tile;
import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues;
import de.ellpeck.actuallyadditions.mod.network.VanillaPacketSyncer; import de.ellpeck.actuallyadditions.mod.network.VanillaPacketSyncer;
import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.ModUtil;
import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager; import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ITickable;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
public abstract class TileEntityBase extends TileEntity{ public abstract class TileEntityBase extends TileEntity implements ITickable{
protected int ticksElapsed; protected int ticksElapsed;
public boolean isRedstonePowered; public boolean isRedstonePowered;
@ -89,6 +91,10 @@ public abstract class TileEntityBase extends TileEntity{
} }
@Override @Override
public void update(){
this.updateEntity();
}
public void updateEntity(){ public void updateEntity(){
this.ticksElapsed++; this.ticksElapsed++;
} }
@ -97,17 +103,17 @@ public abstract class TileEntityBase extends TileEntity{
public Packet getDescriptionPacket(){ public Packet getDescriptionPacket(){
NBTTagCompound tag = new NBTTagCompound(); NBTTagCompound tag = new NBTTagCompound();
this.writeSyncableNBT(tag, true); this.writeSyncableNBT(tag, true);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 3, tag); return new S35PacketUpdateTileEntity(this.pos, 3, tag);
} }
@Override @Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt){ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt){
this.readSyncableNBT(pkt.func_148857_g(), true); this.readSyncableNBT(pkt.getNbtCompound(), true);
} }
@Override @Override
public boolean shouldRefresh(Block oldBlock, Block newBlock, int oldMeta, int newMeta, World world, int x, int y, int z){ public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState){
return !(oldBlock.isAssociatedBlock(newBlock)); return !(oldState.getBlock().isAssociatedBlock(newState.getBlock()));
} }
public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){ public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){

View file

@ -18,11 +18,6 @@ public class TileEntityBookletStand extends TileEntityBase{
public EntrySet assignedEntry = new EntrySet(null); public EntrySet assignedEntry = new EntrySet(null);
public String assignedPlayer; public String assignedPlayer;
@Override
public boolean canUpdate(){
return false;
}
@Override @Override
public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){ public void writeSyncableNBT(NBTTagCompound compound, boolean isForSync){
super.writeSyncableNBT(compound, isForSync); super.writeSyncableNBT(compound, isForSync);

View file

@ -16,6 +16,7 @@ import de.ellpeck.actuallyadditions.mod.items.ItemMisc;
import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
public class TileEntityCompost extends TileEntityInventoryBase{ public class TileEntityCompost extends TileEntityInventoryBase{
@ -79,7 +80,7 @@ public class TileEntityCompost extends TileEntityInventoryBase{
} }
@Override @Override
public boolean canInsertItem(int slot, ItemStack stack, int side){ public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){
return this.isItemValidForSlot(slot, stack); return this.isItemValidForSlot(slot, stack);
} }
@ -89,7 +90,7 @@ public class TileEntityCompost extends TileEntityInventoryBase{
} }
@Override @Override
public boolean canExtractItem(int slot, ItemStack stack, int side){ public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){
return stack.getItem() instanceof ItemFertilizer; return stack.getItem() instanceof ItemFertilizer;
} }
} }

View file

@ -75,10 +75,10 @@ public class TileEntityDirectionalBreaker extends TileEntityInventoryBase implem
int meta = coordsBlock.getMetadata(worldObj); int meta = coordsBlock.getMetadata(worldObj);
drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, coordsBlock.getBlockState(worldObj), 0)); drops.addAll(blockToBreak.getDrops(worldObj, coordsBlock, coordsBlock.getBlockState(worldObj), 0));
if(WorldUtil.addToInventory(this, drops, false)){ if(WorldUtil.addToInventory(this, drops, false, true)){
worldObj.playAuxSFX(2001, this.getPos(), Block.getIdFromBlock(blockToBreak)+(meta << 12)); worldObj.playAuxSFX(2001, this.getPos(), Block.getIdFromBlock(blockToBreak)+(meta << 12));
WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, Position.fromTileEntity(this), i); WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, Position.fromTileEntity(this), i);
WorldUtil.addToInventory(this, drops, true); WorldUtil.addToInventory(this, drops, true, true);
this.storage.extractEnergy(ENERGY_USE, false); this.storage.extractEnergy(ENERGY_USE, false);
this.markDirty(); this.markDirty();
} }

View file

@ -15,6 +15,8 @@ import net.minecraft.entity.passive.EntityAnimal;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumParticleTypes;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -45,7 +47,7 @@ public class TileEntityFeeder extends TileEntityInventoryBase{
if(!worldObj.isRemote){ if(!worldObj.isRemote){
boolean theFlag = this.currentTimer > 0; boolean theFlag = this.currentTimer > 0;
int range = 5; int range = 5;
List<EntityAnimal> animals = worldObj.getEntitiesWithinAABB(EntityAnimal.class, AxisAlignedBB.getBoundingBox(this.xCoord-range, this.yCoord-range, this.zCoord-range, this.xCoord+range, this.yCoord+range, this.zCoord+range)); List<EntityAnimal> animals = worldObj.getEntitiesWithinAABB(EntityAnimal.class, AxisAlignedBB.fromBounds(this.pos.getX()-range, this.pos.getY()-range, this.pos.getZ()-range, this.pos.getX()+range, this.pos.getY()+range, this.pos.getZ()+range));
if(animals != null){ if(animals != null){
this.currentAnimalAmount = animals.size(); this.currentAnimalAmount = animals.size();
if(this.currentAnimalAmount >= 2){ if(this.currentAnimalAmount >= 2){
@ -108,17 +110,17 @@ public class TileEntityFeeder extends TileEntityInventoryBase{
} }
public void feedAnimal(EntityAnimal animal){ public void feedAnimal(EntityAnimal animal){
animal.func_146082_f(null); animal.setInLove(null);
for(int i = 0; i < 7; i++){ for(int i = 0; i < 7; i++){
double d = Util.RANDOM.nextGaussian()*0.02D; double d = Util.RANDOM.nextGaussian()*0.02D;
double d1 = Util.RANDOM.nextGaussian()*0.02D; double d1 = Util.RANDOM.nextGaussian()*0.02D;
double d2 = Util.RANDOM.nextGaussian()*0.02D; double d2 = Util.RANDOM.nextGaussian()*0.02D;
worldObj.spawnParticle("heart", (animal.posX+(double)(Util.RANDOM.nextFloat()*animal.width*2.0F))-animal.width, animal.posY+0.5D+(double)(Util.RANDOM.nextFloat()*animal.height), (animal.posZ+(double)(Util.RANDOM.nextFloat()*animal.width*2.0F))-animal.width, d, d1, d2); worldObj.spawnParticle(EnumParticleTypes.HEART, (animal.posX+(double)(Util.RANDOM.nextFloat()*animal.width*2.0F))-animal.width, animal.posY+0.5D+(double)(Util.RANDOM.nextFloat()*animal.height), (animal.posZ+(double)(Util.RANDOM.nextFloat()*animal.width*2.0F))-animal.width, d, d1, d2);
} }
} }
@Override @Override
public boolean canInsertItem(int slot, ItemStack stack, int side){ public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){
return this.isItemValidForSlot(slot, stack); return this.isItemValidForSlot(slot, stack);
} }
@ -128,7 +130,7 @@ public class TileEntityFeeder extends TileEntityInventoryBase{
} }
@Override @Override
public boolean canExtractItem(int slot, ItemStack stack, int side){ public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){
return false; return false;
} }
} }

View file

@ -20,8 +20,8 @@ import net.minecraft.item.ItemDye;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -61,9 +61,9 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyRece
for(int i = 0; i < amount; i++){ for(int i = 0; i < amount; i++){
ItemStack firework = this.makeFirework(); ItemStack firework = this.makeFirework();
double x = this.xCoord+MathHelper.getRandomDoubleInRange(Util.RANDOM, 0, range*2)-range; double x = this.pos.getX()+MathHelper.getRandomDoubleInRange(Util.RANDOM, 0, range*2)-range;
double z = this.zCoord+MathHelper.getRandomDoubleInRange(Util.RANDOM, 0, range*2)-range; double z = this.pos.getZ()+MathHelper.getRandomDoubleInRange(Util.RANDOM, 0, range*2)-range;
EntityFireworkRocket rocket = new EntityFireworkRocket(this.worldObj, x, this.yCoord+0.5, z, firework); EntityFireworkRocket rocket = new EntityFireworkRocket(this.worldObj, x, this.pos.getY()+0.5, z, firework);
this.worldObj.spawnEntityInWorld(rocket); this.worldObj.spawnEntityInWorld(rocket);
} }
@ -105,7 +105,7 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyRece
int[] colors = new int[MathHelper.getRandomIntegerInRange(Util.RANDOM, 1, 6)]; int[] colors = new int[MathHelper.getRandomIntegerInRange(Util.RANDOM, 1, 6)];
for(int i = 0; i < colors.length; i++){ for(int i = 0; i < colors.length; i++){
colors[i] = ItemDye.field_150922_c[Util.RANDOM.nextInt(ItemDye.field_150922_c.length)]; colors[i] = ItemDye.dyeColors[Util.RANDOM.nextInt(ItemDye.dyeColors.length)];
} }
compound.setIntArray("Colors", colors); compound.setIntArray("Colors", colors);
@ -127,22 +127,22 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyRece
} }
@Override @Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate){ public int receiveEnergy(EnumFacing from, int maxReceive, boolean simulate){
return this.storage.receiveEnergy(maxReceive, simulate); return this.storage.receiveEnergy(maxReceive, simulate);
} }
@Override @Override
public int getEnergyStored(ForgeDirection from){ public int getEnergyStored(EnumFacing from){
return this.storage.getEnergyStored(); return this.storage.getEnergyStored();
} }
@Override @Override
public int getMaxEnergyStored(ForgeDirection from){ public int getMaxEnergyStored(EnumFacing from){
return this.storage.getMaxEnergyStored(); return this.storage.getMaxEnergyStored();
} }
@Override @Override
public boolean canConnectEnergy(ForgeDirection from){ public boolean canConnectEnergy(EnumFacing from){
return true; return true;
} }

View file

@ -16,7 +16,7 @@ import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraft.util.EnumFacing;
import net.minecraftforge.fluids.*; import net.minecraftforge.fluids.*;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -54,37 +54,39 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
private void doWork(){ private void doWork(){
ForgeDirection sideToManipulate = ForgeDirection.getOrientation(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); Position thisPos = Position.fromTileEntity(this);
EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(thisPos.getMetadata(worldObj));
Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, Position.fromTileEntity(this), 0);
Position coordsBlock = WorldUtil.getCoordsFromSide(sideToManipulate, xCoord, yCoord, zCoord, 0);
if(coordsBlock != null){ if(coordsBlock != null){
Block blockToBreak = worldObj.getBlock(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()); Block blockToBreak = coordsBlock.getBlock(worldObj);
if(!this.isPlacer && blockToBreak != null && worldObj.getBlockMetadata(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){ if(!this.isPlacer && blockToBreak != null && coordsBlock.getMetadata(worldObj) == 0 && FluidContainerRegistry.BUCKET_VOLUME <= this.tank.getCapacity()-this.tank.getFluidAmount()){
if(blockToBreak instanceof IFluidBlock && ((IFluidBlock)blockToBreak).getFluid() != null){ if(blockToBreak instanceof IFluidBlock && ((IFluidBlock)blockToBreak).getFluid() != null){
if(this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ if(this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){
this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), true); this.tank.fill(new FluidStack(((IFluidBlock)blockToBreak).getFluid(), FluidContainerRegistry.BUCKET_VOLUME), true);
WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord); WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos);
} }
} }
else if(blockToBreak == Blocks.lava || blockToBreak == Blocks.flowing_lava){ else if(blockToBreak == Blocks.lava || blockToBreak == Blocks.flowing_lava){
if(this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ if(this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){
this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), true); this.tank.fill(new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME), true);
WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord); WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos);
} }
} }
else if(blockToBreak == Blocks.water || blockToBreak == Blocks.flowing_water){ else if(blockToBreak == Blocks.water || blockToBreak == Blocks.flowing_water){
if(this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){ if(this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), false) >= FluidContainerRegistry.BUCKET_VOLUME){
this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), true); this.tank.fill(new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME), true);
WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord); WorldUtil.breakBlockAtSide(sideToManipulate, worldObj, thisPos);
} }
} }
} }
else if(this.isPlacer && worldObj.getBlock(coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ()).isReplaceable(worldObj, coordsBlock.getX(), coordsBlock.getY(), coordsBlock.getZ())){ else if(this.isPlacer && coordsBlock.getBlock(worldObj).isReplaceable(worldObj, coordsBlock)){
if(this.tank.getFluidAmount() >= FluidContainerRegistry.BUCKET_VOLUME){ if(this.tank.getFluidAmount() >= FluidContainerRegistry.BUCKET_VOLUME){
if(this.tank.getFluid().getFluid().getBlock() != null){ if(this.tank.getFluid().getFluid().getBlock() != null){
Block block = worldObj.getBlock(xCoord+sideToManipulate.offsetX, yCoord+sideToManipulate.offsetY, zCoord+sideToManipulate.offsetZ); Block block = coordsBlock.getBlock(worldObj);
if(!(block instanceof IFluidBlock) && block != Blocks.lava && block != Blocks.water && block != Blocks.flowing_lava && block != Blocks.flowing_water){ if(!(block instanceof IFluidBlock) && block != Blocks.lava && block != Blocks.water && block != Blocks.flowing_lava && block != Blocks.flowing_water){
WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, xCoord, yCoord, zCoord, new ItemStack(this.tank.getFluid().getFluid().getBlock())); WorldUtil.placeBlockAtSide(sideToManipulate, worldObj, thisPos, new ItemStack(this.tank.getFluid().getFluid().getBlock()));
this.tank.drain(FluidContainerRegistry.BUCKET_VOLUME, true); this.tank.drain(FluidContainerRegistry.BUCKET_VOLUME, true);
} }
} }
@ -94,7 +96,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill){ public int fill(EnumFacing from, FluidStack resource, boolean doFill){
if(this.isPlacer){ if(this.isPlacer){
return this.tank.fill(resource, doFill); return this.tank.fill(resource, doFill);
} }
@ -102,7 +104,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain){ public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain){
if(!this.isPlacer){ if(!this.isPlacer){
return this.tank.drain(resource.amount, doDrain); return this.tank.drain(resource.amount, doDrain);
} }
@ -110,7 +112,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain){ public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain){
if(!this.isPlacer){ if(!this.isPlacer){
return this.tank.drain(maxDrain, doDrain); return this.tank.drain(maxDrain, doDrain);
} }
@ -118,17 +120,17 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public boolean canFill(ForgeDirection from, Fluid fluid){ public boolean canFill(EnumFacing from, Fluid fluid){
return this.isPlacer; return this.isPlacer;
} }
@Override @Override
public boolean canDrain(ForgeDirection from, Fluid fluid){ public boolean canDrain(EnumFacing from, Fluid fluid){
return !this.isPlacer; return !this.isPlacer;
} }
@Override @Override
public FluidTankInfo[] getTankInfo(ForgeDirection from){ public FluidTankInfo[] getTankInfo(EnumFacing from){
return new FluidTankInfo[]{this.tank.getInfo()}; return new FluidTankInfo[]{this.tank.getInfo()};
} }
@ -157,12 +159,12 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
if(!this.isPlacer && this.tank.getFluidAmount() > 0){ if(!this.isPlacer && this.tank.getFluidAmount() > 0){
WorldUtil.pushFluid(worldObj, xCoord, yCoord, zCoord, ForgeDirection.DOWN, this.tank); WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.DOWN, this.tank);
if(!this.isRedstonePowered){ if(!this.isRedstonePowered){
WorldUtil.pushFluid(worldObj, xCoord, yCoord, zCoord, ForgeDirection.NORTH, this.tank); WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.NORTH, this.tank);
WorldUtil.pushFluid(worldObj, xCoord, yCoord, zCoord, ForgeDirection.EAST, this.tank); WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.EAST, this.tank);
WorldUtil.pushFluid(worldObj, xCoord, yCoord, zCoord, ForgeDirection.SOUTH, this.tank); WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.SOUTH, this.tank);
WorldUtil.pushFluid(worldObj, xCoord, yCoord, zCoord, ForgeDirection.WEST, this.tank); WorldUtil.pushFluid(worldObj, Position.fromTileEntity(this), EnumFacing.WEST, this.tank);
} }
} }
@ -192,7 +194,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public boolean canInsertItem(int slot, ItemStack stack, int side){ public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){
return this.isItemValidForSlot(slot, stack); return this.isItemValidForSlot(slot, stack);
} }
@ -210,7 +212,7 @@ public class TileEntityFluidCollector extends TileEntityInventoryBase implements
} }
@Override @Override
public boolean canExtractItem(int slot, ItemStack stack, int side){ public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){
return slot == 1; return slot == 1;
} }

View file

@ -12,10 +12,11 @@ package de.ellpeck.actuallyadditions.mod.tile;
import cofh.api.energy.EnergyStorage; import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyProvider; import cofh.api.energy.IEnergyProvider;
import de.ellpeck.actuallyadditions.api.Position;
import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay; import de.ellpeck.actuallyadditions.api.tile.IEnergyDisplay;
import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraft.util.EnumFacing;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@ -26,23 +27,23 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro
private int oldEnergy; private int oldEnergy;
@Override @Override
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate){ public int extractEnergy(EnumFacing from, int maxExtract, boolean simulate){
return this.storage.extractEnergy(maxExtract, simulate); return this.storage.extractEnergy(maxExtract, simulate);
} }
@Override @Override
public int getEnergyStored(ForgeDirection from){ public int getEnergyStored(EnumFacing from){
return this.storage.getEnergyStored(); return this.storage.getEnergyStored();
} }
@Override @Override
public int getMaxEnergyStored(ForgeDirection from){ public int getMaxEnergyStored(EnumFacing from){
return this.storage.getMaxEnergyStored(); return this.storage.getMaxEnergyStored();
} }
@Override @Override
public boolean canConnectEnergy(ForgeDirection from){ public boolean canConnectEnergy(EnumFacing from){
return from != ForgeDirection.UP; return from != EnumFacing.UP;
} }
@Override @Override
@ -50,18 +51,14 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro
super.updateEntity(); super.updateEntity();
if(!worldObj.isRemote){ if(!worldObj.isRemote){
if(!this.hasBlockAbove() && worldObj.isDaytime()){ if(!this.hasBlockAbove() && worldObj.isDaytime()){
if(PRODUCE <= this.getMaxEnergyStored(ForgeDirection.UNKNOWN)-this.getEnergyStored(ForgeDirection.UNKNOWN)){ if(PRODUCE <= this.storage.getMaxEnergyStored()-this.storage.getEnergyStored()){
this.storage.receiveEnergy(PRODUCE, false); this.storage.receiveEnergy(PRODUCE, false);
this.markDirty(); this.markDirty();
} }
} }
if(this.getEnergyStored(ForgeDirection.UNKNOWN) > 0){ if(this.storage.getEnergyStored() > 0){
WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.DOWN, storage); WorldUtil.pushEnergyToAllSides(worldObj, Position.fromTileEntity(this), this.storage);
WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.NORTH, storage);
WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.EAST, storage);
WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.SOUTH, storage);
WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.WEST, storage);
} }
if(this.oldEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){ if(this.oldEnergy != this.storage.getEnergyStored() && this.sendUpdateWithInterval()){
@ -83,8 +80,10 @@ public class TileEntityFurnaceSolar extends TileEntityBase implements IEnergyPro
} }
public boolean hasBlockAbove(){ public boolean hasBlockAbove(){
for(int y = yCoord+1; y <= worldObj.getHeight(); y++){ Position pos = Position.fromTileEntity(this);
if(!worldObj.getBlock(xCoord, y, zCoord).isAir(worldObj, xCoord, y, zCoord)){ for(int y = 1; y <= worldObj.getHeight(); y++){
Position offset = pos.getOffsetPosition(0, y, 0);
if(!offset.getBlock(worldObj).isAir(worldObj, offset)){
return true; return true;
} }
} }

View file

@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
public class TileEntityGiantChest extends TileEntityInventoryBase{ public class TileEntityGiantChest extends TileEntityInventoryBase{
@ -20,12 +21,7 @@ public class TileEntityGiantChest extends TileEntityInventoryBase{
} }
@Override @Override
public boolean canUpdate(){ public boolean canInsertItem(int slot, ItemStack stack, EnumFacing side){
return false;
}
@Override
public boolean canInsertItem(int slot, ItemStack stack, int side){
return this.isItemValidForSlot(slot, stack); return this.isItemValidForSlot(slot, stack);
} }
@ -35,7 +31,7 @@ public class TileEntityGiantChest extends TileEntityInventoryBase{
} }
@Override @Override
public boolean canExtractItem(int slot, ItemStack stack, int side){ public boolean canExtractItem(int slot, ItemStack stack, EnumFacing side){
return true; return true;
} }
} }

View file

@ -26,17 +26,17 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
public void updateEntity(){ public void updateEntity(){
super.updateEntity(); super.updateEntity();
if(!worldObj.isRemote){ if(!worldObj.isRemote){
if(worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord) && worldObj.isDaytime()){ if(worldObj.canBlockSeeSky(this.getPos()) && worldObj.isDaytime()){
if(this.timeUntilNextFert > 0){ if(this.timeUntilNextFert > 0){
this.timeUntilNextFert--; this.timeUntilNextFert--;
if(timeUntilNextFert <= 0){ if(timeUntilNextFert <= 0){
Position blockToFert = this.blockToFertilize(); Position blockToFert = this.blockToFertilize();
if(blockToFert != null){ if(blockToFert != null){
int metaBefore = blockToFert.getMetadata(worldObj); int metaBefore = blockToFert.getMetadata(worldObj);
worldObj.getBlock(blockToFert.getX(), blockToFert.getY(), blockToFert.getZ()).updateTick(worldObj, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), Util.RANDOM); blockToFert.getBlock(worldObj).updateTick(worldObj, blockToFert, blockToFert.getBlockState(worldObj), Util.RANDOM);
if(blockToFert.getMetadata(worldObj) != metaBefore){ if(blockToFert.getMetadata(worldObj) != metaBefore){
worldObj.playAuxSFX(2005, blockToFert.getX(), blockToFert.getY(), blockToFert.getZ(), 0); worldObj.playAuxSFX(2005, blockToFert, 0);
} }
} }
} }
@ -50,11 +50,12 @@ public class TileEntityGreenhouseGlass extends TileEntityBase{
} }
public Position blockToFertilize(){ public Position blockToFertilize(){
for(int i = yCoord-1; i > 0; i--){ for(int i = -1; i > 0; i--){
Block block = worldObj.getBlock(xCoord, i, zCoord); Position offset = Position.fromBlockPos(pos).getOffsetPosition(0, i, 0);
if(block != null && !(worldObj.isAirBlock(xCoord, i, zCoord))){ Block block = offset.getBlock(worldObj);
if(block != null && !(worldObj.isAirBlock(offset))){
if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){ if((block instanceof IGrowable || block instanceof IPlantable) && !(block instanceof BlockGrass)){
return new Position(xCoord, i, zCoord); return offset;
} }
else{ else{
return null; return null;

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