Merge branch 'master' into animation-rework

This commit is contained in:
George Paton 2024-01-30 20:35:45 +11:00
commit 0a7f0a3b9c
81 changed files with 3523 additions and 504 deletions

View File

@ -1,10 +1,8 @@
## Added
* Muffler
* An upgrade-like item that replaces the old muffler block
* Creates 16 when crafted, however it is not returned when the muffled machine is broken
* Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (compressors, diesel generators, presses)
* Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all
## Changed
* Sped up the electrolyzer, fluid electrolysis now takes 3 seconds instead of 5 and crystal processing now only takes 20 seconds instead of 50
* Increased electrolyzer pouring speed to 3 nuggets per tick instead of 1
* Deco blocks now only drop ingots 25% of the time
* The incredibly common structures now only yield a few dozen free ingots instead of several stacks. How horrible!
## Fixed
* Fixed basalt ores dropping their items with invalid metadata
* Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU
* Fixed radar screens not working at all and potentially freezing the game

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=4851
mod_build_number=4859
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\
@ -16,4 +16,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al
\ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\
\ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\
\ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\
\ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks)
\ 70k (textures, glyphid AI, strand caster), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks),\
\ 245tt (anvil GUI improvements), MellowArpeggiation (turbine sounds, sound fixes)

View File

@ -143,7 +143,6 @@ public class ModBlocks {
public static Block stalagmite;
public static Block stalactite;
public static Block stone_biome;
public static Block stone_deep_cobble;
public static Block depth_brick;
public static Block depth_tiles;
@ -153,10 +152,6 @@ public class ModBlocks {
public static Block basalt;
public static Block ore_basalt;
@Deprecated public static Block basalt_sulfur;
@Deprecated public static Block basalt_fluorite;
@Deprecated public static Block basalt_asbestos;
@Deprecated public static Block basalt_gem;
public static Block basalt_smooth;
public static Block basalt_brick;
public static Block basalt_polished;
@ -714,10 +709,11 @@ public class ModBlocks {
public static Block machine_puf6_tank;
public static Block machine_reactor_breeding;
public static Block machine_furnace_brick_off;
public static Block machine_furnace_brick_on;
public static Block machine_nuke_furnace_off;
public static Block machine_nuke_furnace_on;
public static Block machine_rtg_furnace_off;
public static Block machine_rtg_furnace_on;
@ -1376,14 +1372,9 @@ public class ModBlocks {
stalagmite = new BlockStalagmite().setBlockName("stalagmite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F);
stalactite = new BlockStalagmite().setBlockName("stalactite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F);
stone_biome = new BlockBiomeStone().setBlockName("stone_biome").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F);
stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F);
basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt");
ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt");
basalt_sulfur = new BlockRemap(ore_basalt, 0).setBlockName("basalt_sulfur");
basalt_fluorite = new BlockRemap(ore_basalt, 1).setBlockName("basalt_fluorite");
basalt_asbestos = new BlockRemap(ore_basalt, 2).setBlockName("basalt_asbestos");
basalt_gem = new BlockRemap(ore_basalt, 3).setBlockName("basalt_gem");
basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth");
basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick");
basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished");
@ -1866,10 +1857,11 @@ public class ModBlocks {
machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_reactor_breeding = new MachineReactorBreeding(Material.iron).setBlockName("machine_reactor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor");
machine_furnace_brick_off = new MachineBrickFurnace(false).setBlockName("machine_furnace_brick_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_furnace_brick_on = new MachineBrickFurnace(true).setBlockName("machine_furnace_brick_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
machine_nuke_furnace_off = new MachineNukeFurnace(false).setBlockName("machine_nuke_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_nuke_furnace_on = new MachineNukeFurnace(true).setBlockName("machine_nuke_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
@ -2551,10 +2543,6 @@ public class ModBlocks {
//Basalt ores
register(ore_basalt);
GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName());
GameRegistry.registerBlock(basalt_fluorite, basalt_fluorite.getUnlocalizedName());
GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(basalt_gem, ItemBlockBase.class, basalt_gem.getUnlocalizedName());
//End Ores
GameRegistry.registerBlock(ore_tikite, ore_tikite.getUnlocalizedName());
@ -3138,6 +3126,8 @@ public class ModBlocks {
register(foundry_outlet);
register(foundry_slagtap);
register(slag);
register(machine_furnace_brick_off);
register(machine_furnace_brick_on);
register(machine_difurnace_off);
register(machine_difurnace_on);
register(machine_difurnace_extension);

View File

@ -62,7 +62,6 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
if(this == ModBlocks.cluster_titanium) return ModItems.crystal_titanium;
if(this == ModBlocks.cluster_aluminium) return ModItems.crystal_aluminium;
if(this == ModBlocks.cluster_copper) return ModItems.crystal_copper;
if(this == ModBlocks.basalt_gem) return ModItems.gem_volcanic;
return null;
}

View File

@ -1,5 +1,9 @@
package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.render.block.ct.CT;
import com.hbm.render.block.ct.CTStitchReceiver;
import com.hbm.render.block.ct.IBlockCT;
@ -8,6 +12,7 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@ -35,4 +40,16 @@ public class BlockDecoCT extends BlockOre implements IBlockCT{
public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) {
return rec.fragCache;
}
@Override
public Item getItemDropped(int i, Random rand, int j) {
if(rand.nextInt(4) != 0) return null;
if(this == ModBlocks.deco_aluminium) return ModItems.ingot_aluminium;
if(this == ModBlocks.deco_beryllium) return ModItems.ingot_beryllium;
if(this == ModBlocks.deco_lead) return ModItems.ingot_lead;
if(this == ModBlocks.deco_red_copper) return ModItems.ingot_red_copper;
if(this == ModBlocks.deco_steel) return ModItems.ingot_steel;
if(this == ModBlocks.deco_tungsten) return ModItems.ingot_tungsten;
return null;
}
}

View File

@ -1,43 +0,0 @@
package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.blocks.BlockEnumMulti;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
public class BlockDeepCobble extends BlockEnumMulti {
public static enum EnumDeepCobbleTypes {
NORMAL,
BURNING,
STEAMING
}
public BlockDeepCobble() {
super(Material.rock, EnumDeepCobbleTypes.class, true, true);
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
super.randomDisplayTick(world, x, y, z, rand);
int meta = world.getBlockMetadata(x, y, z);
Block b = world.getBlock(x, y + 1, z);
if(!b.isNormalCube()) {
if(meta == EnumDeepCobbleTypes.BURNING.ordinal()) {
world.spawnParticle("flame", x + rand.nextDouble(), y + 1.0625, z + rand.nextDouble(), 0.0, 0.0, 0.0);
}
if(meta == EnumDeepCobbleTypes.STEAMING.ordinal()) {
world.spawnParticle("cloud", x + 0.25 + rand.nextDouble() * 0.5, y + 1.0625, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.05, 0.0);
}
}
}
}

View File

@ -5,7 +5,6 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IBomb;
import com.hbm.items.special.ItemDoorSkin;
import com.hbm.items.tool.ItemLock;
import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.TileEntityDoorGeneric;
import com.hbm.util.fauxpointtwelve.BlockPos;

View File

@ -51,19 +51,23 @@ public class BlockKeyhole extends BlockStone {
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.key_red && side != 0 && side != 1) {
if(world.isRemote) return true;
ForgeDirection dir = ForgeDirection.getOrientation(side);
generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4);
int b = 0;
if(side == 2) b = 1;
if(side == 5) b = 2;
if(side == 3) b = 3;
if(side == 4) b = 0;
ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red);
world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F);
player.triggerAchievement(MainRegistry.achRedRoom);
return true;
if(player.getHeldItem() != null) {
boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked;
if((player.getHeldItem().getItem() == ModItems.key_red || cracked) && side != 0 && side != 1) {
if(cracked) player.getHeldItem().stackSize--;
if(world.isRemote) return true;
ForgeDirection dir = ForgeDirection.getOrientation(side);
generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4);
int b = 0;
if(side == 2) b = 1;
if(side == 5) b = 2;
if(side == 3) b = 3;
if(side == 4) b = 0;
ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red);
world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F);
player.triggerAchievement(MainRegistry.achRedRoom);
return true;
}
}
return false;

View File

@ -5,6 +5,7 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.Spaghetti;
import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.items.ModItems;
import com.hbm.potion.HbmPotion;
import cpw.mods.fml.relauncher.Side;
@ -43,13 +44,13 @@ public class BlockOre extends Block {
@Spaghetti("*throws up*")
@Override
public Item getItemDropped(int i, Random rand, int j) {
if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) {
if(this == ModBlocks.ore_fluorite) {
return ModItems.fluorite;
}
if(this == ModBlocks.ore_niter) {
return ModItems.niter;
}
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) {
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) {
return ModItems.sulfur;
}
if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) {
@ -151,46 +152,15 @@ public class BlockOre extends Block {
}
}
if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) {
switch(rand.nextInt(6)) {
case 0:
return ModItems.fragment_boron;
case 1:
return ModItems.fragment_cerium;
case 2:
return ModItems.fragment_cobalt;
case 3:
return ModItems.fragment_lanthanium;
case 4:
return ModItems.fragment_neodymium;
case 5:
return ModItems.fragment_niobium;
}
}
if(this == ModBlocks.deco_aluminium) {
return ModItems.ingot_aluminium;
}
if(this == ModBlocks.deco_beryllium) {
return ModItems.ingot_beryllium;
}
if(this == ModBlocks.deco_lead) {
return ModItems.ingot_lead;
}
if(this == ModBlocks.deco_red_copper) {
return ModItems.ingot_red_copper;
}
if(this == ModBlocks.deco_steel) {
return ModItems.ingot_steel;
return ModItems.chunk_ore;
}
if(this == ModBlocks.deco_titanium) {
return ModItems.ingot_titanium;
}
if(this == ModBlocks.deco_tungsten) {
return ModItems.ingot_tungsten;
return rand.nextInt(4) == 0 ? ModItems.ingot_titanium : null;
}
if(this == ModBlocks.deco_asbestos) {
return ModItems.ingot_asbestos;
return rand.nextInt(4) == 0 ? ModItems.ingot_asbestos : null;
}
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos || this == ModBlocks.basalt_asbestos) {
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos) {
return ModItems.ingot_asbestos;
}
if(this == ModBlocks.ore_lignite) {
@ -214,18 +184,15 @@ public class BlockOre extends Block {
@Override
public int quantityDropped(Random rand) {
if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) {
if(this == ModBlocks.ore_fluorite) {
return 2 + rand.nextInt(3);
}
if(this == ModBlocks.ore_niter) {
return 2 + rand.nextInt(3);
}
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur || this == ModBlocks.basalt_sulfur) {
if(this == ModBlocks.ore_sulfur || this == ModBlocks.ore_nether_sulfur || this == ModBlocks.ore_meteor_sulfur) {
return 2 + rand.nextInt(3);
}
if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) {
return 4 + rand.nextInt(8);
}
if(this == ModBlocks.block_meteor_broken) {
return 1 + rand.nextInt(3);
}
@ -266,7 +233,8 @@ public class BlockOre extends Block {
}
@Override
public int damageDropped(int p_149692_1_) {
public int damageDropped(int meta) {
if(this == ModBlocks.ore_rare || this == ModBlocks.ore_gneiss_rare) return EnumChunkType.RARE.ordinal();
return this == ModBlocks.waste_planks ? 1 : 0;
}

View File

@ -57,8 +57,7 @@ public class BlockOutgas extends BlockOre {
if(this == ModBlocks.ore_asbestos || this == ModBlocks.ore_gneiss_asbestos ||
this == ModBlocks.block_asbestos || this == ModBlocks.deco_asbestos ||
this == ModBlocks.brick_asbestos || this == ModBlocks.tile_lab ||
this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken ||
this == ModBlocks.basalt_asbestos) {
this == ModBlocks.tile_lab_cracked || this == ModBlocks.tile_lab_broken) {
return ModBlocks.gas_asbestos;
}

View File

@ -0,0 +1,172 @@
package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityFurnaceBrick;
import com.hbm.util.ItemStackUtil;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class MachineBrickFurnace extends BlockContainer {
private final Random rand = new Random();
private final boolean isActive;
private static boolean keepInventory;
@SideOnly(Side.CLIENT) private IIcon iconTop;
@SideOnly(Side.CLIENT) private IIcon iconBottom;
@SideOnly(Side.CLIENT) private IIcon iconFront;
public MachineBrickFurnace(boolean blockState) {
super(Material.iron);
isActive = blockState;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_top");
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_bottom");
this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_furnace_brick_front_on" : ":machine_furnace_brick_front_off"));
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_furnace_brick_side");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : (side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon)));
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityFurnaceBrick();
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z) {
return Item.getItemFromBlock(ModBlocks.machine_furnace_brick_off);
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z);
this.setDefaultDirection(world, x, y, z);
}
private void setDefaultDirection(World world, int x, int y, int z) {
if(!world.isRemote) {
Block nZ = world.getBlock(x, y, z - 1);
Block pZ = world.getBlock(x, y, z + 1);
Block nX = world.getBlock(x - 1, y, z);
Block pX = world.getBlock(x + 1, y, z);
byte meta = 3;
if(nZ.func_149730_j() && !pZ.func_149730_j()) meta = 3;
if(pZ.func_149730_j() && !nZ.func_149730_j()) meta = 2;
if(nX.func_149730_j() && !pX.func_149730_j()) meta = 5;
if(pX.func_149730_j() && !nX.func_149730_j()) meta = 4;
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
}
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2);
if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2);
if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2);
if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2);
if(itemStack.hasDisplayName()) ((TileEntityFurnaceBrick)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(!player.isSneaking()) {
TileEntityFurnaceBrick entity = (TileEntityFurnaceBrick) world.getTileEntity(x, y, z);
if(entity != null) {
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
}
return true;
} else {
return false;
}
}
public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) {
int i = world.getBlockMetadata(x, y, z);
TileEntity entity = world.getTileEntity(x, y, z);
keepInventory = true;
if(isProcessing) {
world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_on);
} else {
world.setBlock(x, y, z, ModBlocks.machine_furnace_brick_off);
}
keepInventory = false;
world.setBlockMetadataWithNotify(x, y, z, i, 2);
if(entity != null) {
entity.validate();
world.setTileEntity(x, y, z, entity);
}
}
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
if(!keepInventory) ItemStackUtil.spillItems(world, x, y, z, block, rand);
super.breakBlock(world, x, y, z, block, meta);
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
if(isActive) {
int meta = world.getBlockMetadata(x, y, z);
float cX = x + 0.5F;
float cY = y + rand.nextFloat() * 0.375F;
float cZ = z + 0.5F;
float off = 0.52F;
float var = rand.nextFloat() * 0.6F - 0.3F;
rand.nextFloat();
rand.nextFloat();
if(meta == 4) {
world.spawnParticle("smoke", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D);
world.spawnParticle("flame", cX - off, cY, cZ + var, 0.0D, 0.0D, 0.0D);
} else if(meta == 5) {
world.spawnParticle("smoke", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D);
world.spawnParticle("flame", cX + off, cY, cZ + var, 0.0D, 0.0D, 0.0D);
} else if(meta == 2) {
world.spawnParticle("smoke", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D);
world.spawnParticle("flame", cX + var, cY, cZ - off, 0.0D, 0.0D, 0.0D);
} else if(meta == 3) {
world.spawnParticle("smoke", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D);
world.spawnParticle("flame", cX + var, cY, cZ + off, 0.0D, 0.0D, 0.0D);
}
}
}
}

View File

@ -6,6 +6,8 @@ import api.hbm.conveyor.IEnterableBlock;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.network.TileEntityCraneBase;
import com.hbm.tileentity.network.TileEntityCraneInserter;
import com.hbm.util.InventoryUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@ -17,7 +19,6 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -72,7 +73,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock {
if(te instanceof ISidedInventory) {
ISidedInventory sided = (ISidedInventory) te;
access = masquerade(sided, outputDirection.getOpposite().ordinal());
access = InventoryUtil.masquerade(sided, outputDirection.getOpposite().ordinal());
}
if(te instanceof IInventory) {
@ -90,15 +91,6 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock {
}
}
public static int[] masquerade(ISidedInventory sided, int side) {
if(sided instanceof TileEntityFurnace) {
return new int[] {1, 0};
}
return sided.getAccessibleSlotsFromSide(side);
}
public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) {
ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null;

View File

@ -5,18 +5,13 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.entity.train.EntityRailCarBase;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.PlayerInformPacket;
import com.hbm.util.BobMathUtil;
import com.hbm.util.ChatBuilder;
import com.hbm.util.ParticleUtil;
import com.hbm.util.Tuple.Pair;
import com.hbm.util.fauxpointtwelve.BlockPos;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.material.Material;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

View File

@ -69,6 +69,7 @@ public class ToolRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dwarven_pickaxe, 1), new Object[] { "CIC", " S ", " S ", 'C', CU.ingot(), 'I', IRON.ingot(), 'S', KEY_STICK });
//Drax
CraftingManager.addRecipeAuto(new ItemStack(ModItems.drax, 1), new Object[] { "BDS", "CDC", "FMF", 'B', ModItems.starmetal_pickaxe, 'S', ModItems.starmetal_shovel, 'C', CO.ingot(), 'F', ModItems.fusion_core, 'D', DESH.ingot(), 'M', ModItems.motor_desh });

View File

@ -64,7 +64,7 @@ public class EntityFalloutRain extends Entity {
for(int z = chunkPosZ << 4; z <= (chunkPosZ << 4) + 16; z++) {
double percent = Math.hypot(x - posX, z - posZ) * 100 / getScale();
stomp(x, z, percent);
BiomeGenBase biome = getBiomeChange(percent, getScale());
BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z));
if(biome != null) {
WorldUtil.setBiome(worldObj, x, z, biome);
biomeModified = true;
@ -84,7 +84,7 @@ public class EntityFalloutRain extends Entity {
if(distance <= getScale()) {
double percent = distance * 100 / getScale();
stomp(x, z, percent);
BiomeGenBase biome = getBiomeChange(percent, getScale());
BiomeGenBase biome = getBiomeChange(percent, getScale(), worldObj.getBiomeGenForCoords(x, z));
if(biome != null) {
WorldUtil.setBiome(worldObj, x, z, biome);
biomeModified = true;
@ -114,11 +114,14 @@ public class EntityFalloutRain extends Entity {
}
}
public static BiomeGenBase getBiomeChange(double dist, int scale) {
public static BiomeGenBase getBiomeChange(double dist, int scale, BiomeGenBase original) {
if(!WorldConfig.enableCraterBiomes) return null;
if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome;
if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome;
if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome;
if(scale >= 150 && dist < 15)
return BiomeGenCraterBase.craterInnerBiome;
if(scale >= 100 && dist < 55 && original != BiomeGenCraterBase.craterInnerBiome)
return BiomeGenCraterBase.craterBiome;
if(scale >= 25 && original != BiomeGenCraterBase.craterInnerBiome && original != BiomeGenCraterBase.craterBiome)
return BiomeGenCraterBase.craterOuterBiome;
return null;
}

View File

@ -552,6 +552,7 @@ public class EntityNukeTorex extends Entity {
public static void statFac(World world, double x, double y, double z, float scale) {
EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F));
torex.setPosition(x, y, z);
torex.forceSpawn = true;
world.spawnEntityInWorld(torex);
TrackerUtil.setTrackingRange(world, torex, 1000);
}
@ -559,6 +560,7 @@ public class EntityNukeTorex extends Entity {
public static void statFacBale(World world, double x, double y, double z, float scale) {
EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1);
torex.setPosition(x, y, z);
torex.forceSpawn = true;
world.spawnEntityInWorld(torex);
TrackerUtil.setTrackingRange(world, torex, 1000);
}

View File

@ -6,8 +6,6 @@ import com.hbm.packet.ParticleBurstPacket;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;

View File

@ -392,15 +392,15 @@ public class OreDictManager {
EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium);
DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium);
FIBER .ingot(ingot_fiberglass) .block(block_fiberglass);
ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS));
ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS));
OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium);
/*
* DUST AND GEM ORES
*/
S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur);
S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur);
KNO .dust(niter) .block(block_niter) .ore(ore_niter);
F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE));
F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE));
LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite);
COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)) .block(fromOne(block_coke, EnumCokeType.COAL));
PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)) .block(fromOne(block_coke, EnumCokeType.PETROLEUM));
@ -410,7 +410,7 @@ public class OreDictManager {
CHLOROCALCITE .dust(powder_chlorocalcite);
MOLYSITE .dust(powder_molysite) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.MOLYSITE));
SODALITE .gem(gem_sodalite);
VOLCANIC .gem(gem_volcanic) .ore(basalt_gem, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM));
VOLCANIC .gem(gem_volcanic) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM));
HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE));
MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE));
SLAG .block(block_slag);

View File

@ -14,109 +14,93 @@ import net.minecraft.inventory.SlotCrafting;
import net.minecraft.item.ItemStack;
public class ContainerBook extends Container {
public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2);
public IInventory craftResult = new InventoryCraftResult();
public ContainerBook(InventoryPlayer inventory) {
this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35));
public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2);
public IInventory craftResult = new InventoryCraftResult();
for (int l = 0; l < 2; ++l) {
for (int i1 = 0; i1 < 2; ++i1) {
this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36));
}
}
public ContainerBook(InventoryPlayer inventory) {
for(int l = 0; l < 3; ++l) {
for (int i1 = 0; i1 < 9; ++i1) {
this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18));
}
}
this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 124, 35));
for(int l = 0; l < 9; ++l) {
this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142));
}
for(int l = 0; l < 2; ++l) {
for(int i1 = 0; i1 < 2; ++i1) {
this.addSlotToContainer(new Slot(this.craftMatrix, i1 + l * 2, 30 + i1 * 36, 17 + l * 36));
}
}
this.onCraftMatrixChanged(this.craftMatrix);
}
public void onCraftMatrixChanged(IInventory inventory) {
this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix));
}
public void onContainerClosed(EntityPlayer player) {
super.onContainerClosed(player);
for(int l = 0; l < 3; ++l) {
for(int i1 = 0; i1 < 9; ++i1) {
this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18));
}
}
if (!player.worldObj.isRemote) {
for (int i = 0; i < 4; ++i) {
ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i);
for(int l = 0; l < 9; ++l) {
this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142));
}
this.onCraftMatrixChanged(this.craftMatrix);
}
public void onCraftMatrixChanged(IInventory inventory) {
this.craftResult.setInventorySlotContents(0, MagicRecipes.getRecipe(this.craftMatrix));
}
public void onContainerClosed(EntityPlayer player) {
super.onContainerClosed(player);
if(!player.worldObj.isRemote) {
for(int i = 0; i < 4; ++i) {
ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i);
if(itemstack != null)
player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
}
if (itemstack != null)
player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_)
{
ItemStack itemstack = null;
Slot slot = (Slot)this.inventorySlots.get(p_82846_2_);
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) {
ItemStack itemstack = null;
Slot slot = (Slot) this.inventorySlots.get(p_82846_2_);
if (slot != null && slot.getHasStack())
{
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if(slot != null && slot.getHasStack()) {
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if (p_82846_2_ == 0)
{
if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true))
{
return null;
}
if(p_82846_2_ == 0) {
if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, true)) {
return null;
}
slot.onSlotChange(itemstack1, itemstack);
}
else if (p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5)
{
if (!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false))
{
return null;
}
}
else if (p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5)
{
if (!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false))
{
return null;
}
}
else if (!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false))
{
return null;
}
slot.onSlotChange(itemstack1, itemstack);
} else if(p_82846_2_ >= 10 - 5 && p_82846_2_ < 37 - 5) {
if(!this.mergeItemStack(itemstack1, 37 - 5, 46 - 5, false)) {
return null;
}
} else if(p_82846_2_ >= 37 - 5 && p_82846_2_ < 46 - 5) {
if(!this.mergeItemStack(itemstack1, 10 - 5, 37 - 5, false)) {
return null;
}
} else if(!this.mergeItemStack(itemstack1, 10 - 5, 46 - 5, false)) {
return null;
}
if (itemstack1.stackSize == 0)
{
slot.putStack((ItemStack)null);
}
else
{
slot.onSlotChanged();
}
if(itemstack1.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
if (itemstack1.stackSize == itemstack.stackSize)
{
return null;
}
if(itemstack1.stackSize == itemstack.stackSize) {
return null;
}
slot.onPickupFromSlot(p_82846_1_, itemstack1);
}
slot.onPickupFromSlot(p_82846_1_, itemstack1);
}
return itemstack;
}
return itemstack;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
@ -124,8 +108,7 @@ public class ContainerBook extends Container {
}
@Override
public boolean func_94530_a(ItemStack stack, Slot slot) {
return slot.inventory != this.craftResult && super.func_94530_a(stack, slot);
}
public boolean func_94530_a(ItemStack stack, Slot slot) {
return slot.inventory != this.craftResult && super.func_94530_a(stack, slot);
}
}

View File

@ -0,0 +1,79 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotCraftingOutput;
import com.hbm.inventory.SlotSmelting;
import com.hbm.tileentity.machine.TileEntityFurnaceBrick;
import com.hbm.util.InventoryUtil;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityFurnace;
public class ContainerFurnaceBrick extends Container {
private TileEntityFurnaceBrick furnace;
public ContainerFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tedf) {
furnace = tedf;
//input
this.addSlotToContainer(new Slot(tedf, 0, 62, 35));
//fuel
this.addSlotToContainer(new Slot(tedf, 1, 35, 17));
//output
this.addSlotToContainer(new SlotSmelting(invPlayer.player, tedf, 2, 116, 35));
//ash
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 3, 35, 53));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if(var4 != null && var4.getHasStack()) {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 <= 3) {
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
return null;
}
} else {
if(!TileEntityFurnace.isItemFuel(var5)) {
if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false))
return null;
} else {
if(!this.mergeItemStack(var5, 1, 2, false) && !this.mergeItemStack(var5, 0, 1, false)) return null;
}
}
if(var5.stackSize == 0) {
var4.putStack((ItemStack) null);
} else {
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return furnace.isUseableByPlayer(player);
}
}

View File

@ -0,0 +1,96 @@
package com.hbm.inventory.container;
import com.hbm.inventory.recipes.LemegetonRecipes;
import com.hbm.items.ModItems;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryCraftResult;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.inventory.SlotCrafting;
import net.minecraft.item.ItemStack;
public class ContainerLemegeton extends Container {
public InventoryCrafting craftMatrix = new InventoryCrafting(this, 1, 1);
public IInventory craftResult = new InventoryCraftResult();
public ContainerLemegeton(InventoryPlayer inventory) {
this.addSlotToContainer(new SlotCrafting(inventory.player, this.craftMatrix, this.craftResult, 0, 107, 35));
this.addSlotToContainer(new Slot(this.craftMatrix, 0, 49, 35));
for(int l = 0; l < 3; ++l) {
for(int i1 = 0; i1 < 9; ++i1) {
this.addSlotToContainer(new Slot(inventory, i1 + l * 9 + 9, 8 + i1 * 18, 84 + l * 18));
}
}
for(int l = 0; l < 9; ++l) {
this.addSlotToContainer(new Slot(inventory, l, 8 + l * 18, 142));
}
this.onCraftMatrixChanged(this.craftMatrix);
}
public void onCraftMatrixChanged(IInventory inventory) {
this.craftResult.setInventorySlotContents(0, LemegetonRecipes.getRecipe(this.craftMatrix.getStackInSlot(0)));
}
public void onContainerClosed(EntityPlayer player) {
super.onContainerClosed(player);
if(!player.worldObj.isRemote) {
ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(0);
if(itemstack != null) player.dropPlayerItemWithRandomChoice(itemstack, false);
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int slotNo) {
ItemStack itemstack = null;
Slot slot = (Slot) this.inventorySlots.get(slotNo);
if(slot != null && slot.getHasStack()) {
ItemStack itemstack1 = slot.getStack();
itemstack = itemstack1.copy();
if(slotNo <= 1) {
if(!this.mergeItemStack(itemstack1, 2, this.inventorySlots.size(), true)) {
return null;
}
slot.onSlotChange(itemstack1, itemstack);
} else if(!this.mergeItemStack(itemstack1, 1, 2, false)) {
return null;
}
if(itemstack1.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
if(itemstack1.stackSize == itemstack.stackSize) {
return null;
}
slot.onPickupFromSlot(p_82846_1_, itemstack1);
}
return itemstack;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return player.inventory.hasItem(ModItems.book_lemegeton);
}
@Override
public boolean func_94530_a(ItemStack stack, Slot slot) {
return slot.inventory != this.craftResult && super.func_94530_a(stack, slot);
}
}

View File

@ -44,6 +44,7 @@ public class GUIAnvil extends GuiContainer {
int size;
int selection;
private GuiTextField search;
private InventoryPlayer playerInventory;
public GUIAnvil(InventoryPlayer player, int tier) {
super(new ContainerAnvil(player, tier));
@ -51,7 +52,8 @@ public class GUIAnvil extends GuiContainer {
this.tier = tier;
this.xSize = 176;
this.ySize = 222;
this.playerInventory = player;
for(AnvilConstructionRecipe recipe : AnvilRecipes.getConstruction()) {
if(recipe.isTierValid(this.tier))
this.originList.add(recipe);
@ -243,7 +245,7 @@ public class GUIAnvil extends GuiContainer {
if(this.selection >= 0) {
AnvilConstructionRecipe recipe = recipes.get(this.selection);
List<String> list = recipeToList(recipe);
List<String> list = recipeToList(recipe, playerInventory);
int longest = 0;
for(String s : list) {
@ -274,25 +276,55 @@ public class GUIAnvil extends GuiContainer {
* @param recipe
* @return
*/
public List<String> recipeToList(AnvilConstructionRecipe recipe) {
public List<String> recipeToList(AnvilConstructionRecipe recipe, InventoryPlayer inventory) {
List<String> list = new ArrayList();
list.add(EnumChatFormatting.YELLOW + "Inputs:");
for(AStack stack : recipe.input) {
if(stack instanceof ComparableStack) {
if(stack instanceof ComparableStack) {
ItemStack input = ((ComparableStack) stack).toStack();
list.add(">" + input.stackSize + "x " + input.getDisplayName());
boolean hasItem = false;
int amount = 0;
for(int i = 0; i < inventory.mainInventory.length; i++) {
ItemStack stackItem = inventory.mainInventory[i];
if(stackItem == null) {
continue;
}
if(stackItem.getItem() == input.getItem() && input.getItemDamage() == stackItem.getItemDamage()) {
hasItem = true;
amount += stackItem.stackSize;
}
}
if(hasItem && amount >= stack.stacksize) {
list.add(">" + input.stackSize + "x " + input.getDisplayName());
} else {
list.add(EnumChatFormatting.RED + ">" + input.stackSize + "x " + input.getDisplayName());
}
} else if(stack instanceof OreDictStack) {
OreDictStack input = (OreDictStack) stack;
ArrayList<ItemStack> ores = OreDictionary.getOres(input.name);
if(ores.size() > 0) {
boolean hasItem = false;
int amount = 0;
for(int i = 0; i < inventory.mainInventory.length; i++) {
ItemStack stackItem = inventory.mainInventory[i];
if(stackItem == null) {
continue;
}
if(input.matchesRecipe(stackItem, true)) {
hasItem = true;
amount += stackItem.stackSize;
}
}
ItemStack inStack = ores.get((int) (Math.abs(System.currentTimeMillis() / 1000) % ores.size()));
list.add(">" + input.stacksize + "x " + inStack.getDisplayName());
if(hasItem && amount >= stack.stacksize) {
list.add(">" + input.stacksize + "x " + inStack.getDisplayName());
} else {
list.add(EnumChatFormatting.RED + ">" + input.stacksize + "x " + inStack.getDisplayName());
}
} else {
list.add("I AM ERROR");
}
@ -301,11 +333,11 @@ public class GUIAnvil extends GuiContainer {
list.add("");
list.add(EnumChatFormatting.YELLOW + "Outputs:");
for(AnvilOutput stack : recipe.output) {
list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)" ) : ""));
list.add(">" + stack.stack.stackSize + "x " + stack.stack.getDisplayName() + (stack.chance != 1F ? (" (" + (stack.chance * 100) + "%)") : ""));
}
return list;
}

View File

@ -16,6 +16,8 @@ public class GUIBook extends GuiContainer {
public GUIBook(InventoryPlayer player) {
super(new ContainerBook(player));
this.xSize = 176;
this.ySize = 166;
}
protected void drawGuiContainerForegroundLayer(int mX, int mY) {
@ -25,7 +27,6 @@ public class GUIBook extends GuiContainer {
}
protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(texture);
int left = (this.width - this.xSize) / 2;

View File

@ -0,0 +1,44 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerFurnaceBrick;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityFurnaceBrick;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIFurnaceBrick extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_brick.png");
private TileEntityFurnaceBrick furnace;
public GUIFurnaceBrick(InventoryPlayer invPlayer, TileEntityFurnaceBrick tile) {
super(new ContainerFurnaceBrick(invPlayer, tile));
this.furnace = tile;
}
protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) {
String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff);
this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 0xffffff);
}
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(texture);
this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize);
if(furnace.isInvalid() && furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord) instanceof TileEntityFurnaceBrick)
furnace = (TileEntityFurnaceBrick) furnace.getWorldObj().getTileEntity(furnace.xCoord, furnace.yCoord, furnace.zCoord);
if(this.furnace.burnTime > 0) {
int b = furnace.burnTime * 13 / furnace.maxBurnTime;
this.drawTexturedModalRect(guiLeft + 62, guiTop + 54 + 12 - b, 176, 12 - b, 14, b + 1);
int p = this.furnace.progress * 24 / 200;
this.drawTexturedModalRect(guiLeft + 85, guiTop + 34, 176, 14, p + 1, 16);
}
}
}

View File

@ -0,0 +1,40 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerLemegeton;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUILemegeton extends GuiContainer {
public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_lemegeton.png");
public GUILemegeton(InventoryPlayer player) {
super(new ContainerLemegeton(player));
this.xSize = 176;
this.ySize = 166;
}
protected void drawGuiContainerForegroundLayer(int mX, int mY) {
Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Material Upgrade Conversion", 28, 6, 4210752);
Minecraft.getMinecraft().standardGalacticFontRenderer.drawString("Standard Inventory", 8, this.ySize - 96 + 2, 4210752);
}
protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(texture);
int left = (this.width - this.xSize) / 2;
int top = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(left, top, 0, 0, this.xSize, this.ySize);
if(this.inventorySlots.getSlot(0).getHasStack())
this.drawTexturedModalRect(left + 7, top + 22, 0, 166, 162, 42);
}
}

View File

@ -186,6 +186,7 @@ public class GUIScreenTemplateFolder extends GuiScreen {
this.search.setDisabledTextColour(0xffffff);
this.search.setEnableBackgroundDrawing(false);
this.search.setMaxStringLength(100);
this.search.setFocused(true);
}
@Override

View File

@ -277,13 +277,13 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800);
makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600);
makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250);
makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2) }, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250);
makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350);
makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400);
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);

View File

@ -44,7 +44,7 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50)));
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100)));
//recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250)));
recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250)));
recipes.put(MOLYSITE.dust(), new Pair(new ItemStack(Items.iron_ingot), new FluidStack(Fluids.CHLORINE, 250)));
recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100)));
recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100)));

View File

@ -0,0 +1,78 @@
package com.hbm.inventory.recipes;
import java.util.HashMap;
import java.util.Map.Entry;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.items.ModItems;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
public class LemegetonRecipes {
public static HashMap<AStack, ItemStack> recipes = new HashMap();
public static void register() {
recipes.put(new OreDictStack(IRON.ingot()), new ItemStack(ModItems.ingot_steel));
recipes.put(new OreDictStack(STEEL.ingot()), new ItemStack(ModItems.ingot_dura_steel));
recipes.put(new OreDictStack(DURA.ingot()), new ItemStack(ModItems.ingot_tcalloy));
recipes.put(new OreDictStack(TCALLOY.ingot()), new ItemStack(ModItems.ingot_combine_steel));
recipes.put(new OreDictStack(CMB.ingot()), new ItemStack(ModItems.ingot_dineutronium));
recipes.put(new OreDictStack(TI.ingot()), new ItemStack(ModItems.ingot_saturnite));
recipes.put(new OreDictStack(BIGMT.ingot()), new ItemStack(ModItems.ingot_starmetal));
recipes.put(new OreDictStack(CU.ingot()), new ItemStack(ModItems.ingot_red_copper));
recipes.put(new OreDictStack(MINGRADE.ingot()), new ItemStack(ModItems.ingot_advanced_alloy));
recipes.put(new OreDictStack(ALLOY.ingot()), new ItemStack(ModItems.ingot_desh));
recipes.put(new OreDictStack(PB.ingot()), new ItemStack(Items.gold_ingot));
recipes.put(new OreDictStack(GOLD.ingot()), new ItemStack(ModItems.ingot_bismuth));
recipes.put(new OreDictStack(BI.ingot()), new ItemStack(ModItems.ingot_osmiridium));
recipes.put(new OreDictStack(TH232.ingot()), new ItemStack(ModItems.ingot_uranium));
recipes.put(new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_u238));
recipes.put(new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_u235));
recipes.put(new OreDictStack(U235.ingot()), new ItemStack(ModItems.ingot_plutonium));
recipes.put(new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_pu238));
recipes.put(new OreDictStack(PU238.ingot()), new ItemStack(ModItems.ingot_pu239));
recipes.put(new OreDictStack(PU239.ingot()), new ItemStack(ModItems.ingot_pu240));
recipes.put(new OreDictStack(PU240.ingot()), new ItemStack(ModItems.ingot_pu241));
recipes.put(new OreDictStack(PU241.ingot()), new ItemStack(ModItems.ingot_am241));
recipes.put(new OreDictStack(AM241.ingot()), new ItemStack(ModItems.ingot_am242));
recipes.put(new OreDictStack(RA226.ingot()), new ItemStack(ModItems.ingot_polonium));
recipes.put(new OreDictStack(PO210.ingot()), new ItemStack(ModItems.ingot_technetium));
recipes.put(new OreDictStack(POLYMER.ingot()), new ItemStack(ModItems.ingot_pc));
recipes.put(new OreDictStack(BAKELITE.ingot()), new ItemStack(ModItems.ingot_pvc));
recipes.put(new OreDictStack(LATEX.ingot()), new ItemStack(ModItems.ingot_rubber));
recipes.put(new OreDictStack(COAL.gem()), new ItemStack(ModItems.ingot_graphite));
recipes.put(new OreDictStack(GRAPHITE.ingot()), new ItemStack(Items.diamond));
recipes.put(new OreDictStack(DIAMOND.gem()), new ItemStack(ModItems.ingot_cft));
recipes.put(new OreDictStack(F.dust()), new ItemStack(ModItems.gem_sodalite));
recipes.put(new OreDictStack(SODALITE.gem()), new ItemStack(ModItems.gem_volcanic));
recipes.put(new OreDictStack(VOLCANIC.gem()), new ItemStack(ModItems.gem_rad));
recipes.put(new ComparableStack(ModItems.gem_rad), new ItemStack(ModItems.gem_alexandrite));
recipes.put(new OreDictStack(KEY_SAND), new ItemStack(ModItems.ingot_fiberglass));
recipes.put(new OreDictStack(FIBER.ingot()), new ItemStack(ModItems.ingot_asbestos));
}
public static ItemStack getRecipe(ItemStack ingredient) {
for(Entry<AStack, ItemStack> entry : recipes.entrySet()) {
if(entry.getKey().matchesRecipe(ingredient, true)) {
return entry.getValue().copy();
}
}
return null;
}
}

View File

@ -16,6 +16,7 @@ import com.hbm.interfaces.Untested;
import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre;
import com.hbm.main.MainRegistry;
@ -205,6 +206,8 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(Items.apple, new ItemStack(Items.sugar, 1));
ShredderRecipes.setRecipe(Items.carrot, new ItemStack(Items.sugar, 1));
ShredderRecipes.setRecipe(ModItems.can_empty, new ItemStack(ModItems.powder_aluminium, 2));
ShredderRecipes.setRecipe(ModBlocks.machine_well, new ItemStack(ModItems.powder_steel, 32));
ShredderRecipes.setRecipe(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), new ItemStack(ModItems.powder_desh_mix));
List<ItemStack> logs = OreDictionary.getOres("logWood");
List<ItemStack> planks = OreDictionary.getOres("plankWood");

View File

@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.AssemblerRecipes;
import com.hbm.items.ItemAmmoEnums.*;
import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.items.ModItems;
import com.hbm.items.food.ItemFlask.EnumInfusion;
@ -703,6 +704,20 @@ public class AnvilRecipes {
public static void registerConstructionRecycling() {
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)),
new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.fragment_boron)),
new AnvilOutput(new ItemStack(ModItems.fragment_boron), 0.5F),
new AnvilOutput(new ItemStack(ModItems.fragment_lanthanium), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fragment_cobalt)),
new AnvilOutput(new ItemStack(ModItems.fragment_cobalt), 0.5F),
new AnvilOutput(new ItemStack(ModItems.fragment_cerium), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fragment_neodymium), 0.5F),
new AnvilOutput(new ItemStack(ModItems.fragment_niobium), 0.5F),
}
).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.heater_firebox),
new AnvilOutput[] {

View File

@ -50,6 +50,10 @@ public class ItemEnums {
MUSTARDWILLOW
}
public static enum EnumChunkType {
RARE
}
public static enum EnumAchievementType {
GOFISH,
ACID,

View File

@ -552,6 +552,7 @@ public class ModItems {
public static Item fragment_boron;
public static Item fragment_meteorite;
public static Item fragment_coltan;
public static Item chunk_ore;
public static Item biomass;
public static Item biomass_compressed;
@ -2090,6 +2091,7 @@ public class ModItems {
public static Item chlorophyte_pickaxe;
public static Item mese_pickaxe;
public static Item dnt_sword;
public static Item dwarven_pickaxe;
public static Item meteorite_sword;
public static Item meteorite_sword_seared;
@ -2345,6 +2347,7 @@ public class ModItems {
public static Item key;
public static Item key_red;
public static Item key_red_cracked;
public static Item key_kit;
public static Item key_fake;
public static Item pin;
@ -2384,6 +2387,7 @@ public class ModItems {
public static Item book_secret;
public static Item book_of_;
public static Item page_of_;
public static Item book_lemegeton;
public static Item burnt_bark;
public static Item smoke1;
@ -2983,6 +2987,7 @@ public class ModItems {
fragment_boron = new Item().setUnlocalizedName("fragment_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_boron");
fragment_meteorite = new Item().setUnlocalizedName("fragment_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_meteorite");
fragment_coltan = new Item().setUnlocalizedName("fragment_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_coltan");
chunk_ore = new ItemEnumMulti(EnumChunkType.class, true, true).setUnlocalizedName("chunk_ore").setCreativeTab(MainRegistry.partsTab);
biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass");
biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed");
@ -4330,30 +4335,30 @@ public class ModItems {
glowing_stew = new ItemSoup(6).setUnlocalizedName("glowing_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glowing_stew");
balefire_scrambled = new ItemSoup(6).setUnlocalizedName("balefire_scrambled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_scrambled");
balefire_and_ham = new ItemSoup(6).setUnlocalizedName("balefire_and_ham").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_and_ham");
lemon = new ItemLemon(3, 5, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon");
definitelyfood = new ItemLemon(2, 5, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood");
lemon = new ItemLemon(3, 0.5F, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon");
definitelyfood = new ItemLemon(3, 0.5F, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood");
med_ipecac = new ItemLemon(0, 0, false).setUnlocalizedName("med_ipecac").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ipecac_new");
med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new");
med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new");
loops = new ItemLemon(4, 5, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops");
loop_stew = new ItemLemon(10, 10, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew");
spongebob_macaroni = new ItemLemon(5, 5, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni");
fooditem = new ItemLemon(2, 5, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem");
twinkie = new ItemLemon(3, 5, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie");
static_sandwich = new ItemLemon(6, 5, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich");
pudding = new ItemLemon(6, 15, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding");
loops = new ItemLemon(4, 0.25F, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops");
loop_stew = new ItemLemon(10, 0.5F, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew");
spongebob_macaroni = new ItemLemon(5, 1F, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni");
fooditem = new ItemLemon(2, 5F, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem");
twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie");
static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich");
pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding");
canteen_13 = new ItemCanteen(1 * 60).setUnlocalizedName("canteen_13").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_13");
canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka");
canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab");
pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake");
nugget = new ItemLemon(200, 200, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget");
nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget");
peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas");
marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow");
cheese = new ItemLemon(5, 10, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese");
quesadilla = new ItemLemon(8, 10, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla");
cheese = new ItemLemon(5, 0.75F, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese");
quesadilla = new ItemLemon(8, 1F, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla");
mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango");
glyphid_meat = new ItemLemon(3, 3, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat");
glyphid_meat_grilled = new ItemLemon(8, 8, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled");
glyphid_meat = new ItemLemon(3, 0.5F, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat");
glyphid_meat_grilled = new ItemLemon(8, 0.75F, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled");
egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid");
defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser");
@ -4641,6 +4646,7 @@ public class ModItems {
key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key");
key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red");
key_red_cracked = new ItemCustomLore().setUnlocalizedName("key_red_cracked").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red_cracked");
key_kit = new ItemCounterfitKeys().setUnlocalizedName("key_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_pair");
key_fake = new ItemKey().setUnlocalizedName("key_fake").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_gold");
pin = new ItemCustomLore().setUnlocalizedName("pin").setMaxStackSize(8).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pin");
@ -5318,6 +5324,10 @@ public class ModItems {
dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword");
ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper));
dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER)
.addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe");
ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa));
meteorite_sword = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword");
meteorite_sword_seared = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword");
@ -5458,6 +5468,7 @@ public class ModItems {
book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret");
book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_");
page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_");
book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton");
burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark");
smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1");
@ -5970,6 +5981,7 @@ public class ModItems {
GameRegistry.registerItem(fragment_boron, fragment_boron.getUnlocalizedName());
GameRegistry.registerItem(fragment_meteorite, fragment_meteorite.getUnlocalizedName());
GameRegistry.registerItem(fragment_coltan, fragment_coltan.getUnlocalizedName());
GameRegistry.registerItem(chunk_ore, chunk_ore.getUnlocalizedName());
//Things that look like rotten flesh but aren't
GameRegistry.registerItem(biomass, biomass.getUnlocalizedName());
@ -6862,6 +6874,7 @@ public class ModItems {
//Keys and Locks
GameRegistry.registerItem(key, key.getUnlocalizedName());
GameRegistry.registerItem(key_red, key_red.getUnlocalizedName());
GameRegistry.registerItem(key_red_cracked, key_red_cracked.getUnlocalizedName());
GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName());
GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName());
GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName());
@ -7461,6 +7474,7 @@ public class ModItems {
GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName());
//Tools
GameRegistry.registerItem(dwarven_pickaxe, dwarven_pickaxe.getUnlocalizedName());
GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName());
GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName());
GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName());
@ -8055,6 +8069,7 @@ public class ModItems {
GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName());
GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName());
GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName());
GameRegistry.registerItem(book_lemegeton, book_lemegeton.getUnlocalizedName());
GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName());
//Kits

View File

@ -105,33 +105,33 @@ public class ItemConserve extends ItemEnumMulti {
}
public static enum EnumFoodType {
BEEF(8, 5F),
TUNA(4, 5F),
MYSTERY(6, 5F),
PASHTET(4, 5F),
CHEESE(3, 5F),
BEEF(8, 0.75F),
TUNA(4, 0.75F),
MYSTERY(6, 0.5F),
PASHTET(4, 0.5F),
CHEESE(3, 1F),
JIZZ(15, 5F), // :3
MILK(5, 5F),
ASS(6, 5F), // :3
PIZZA(8, 5F),
TUBE(2, 5F),
TOMATO(4, 5F),
ASBESTOS(7, 5F),
BHOLE(10, 5F),
HOTDOGS(5, 5F),
LEFTOVERS(1, 5F),
YOGURT(3, 5F),
STEW(5, 5F),
CHINESE(6, 5F),
OIL(3, 5F),
FIST(6, 5F),
SPAM(8, 5F),
FRIED(10, 5F),
NAPALM(6, 5F),
DIESEL(6, 5F),
KEROSENE(6, 4F),
RECURSION(1, 5F),
BARK(2, 5F);
MILK(5, 0.25F),
ASS(6, 0.75F), // :3
PIZZA(8, 075F),
TUBE(2, 0.25F),
TOMATO(4, 0.5F),
ASBESTOS(7, 1F),
BHOLE(10, 1F),
HOTDOGS(5, 0.75F),
LEFTOVERS(1, 0.1F),
YOGURT(3, 0.5F),
STEW(5, 0.5F),
CHINESE(6, 0.1F),
OIL(3, 1F),
FIST(6, 0.75F),
SPAM(8, 1F),
FRIED(10, 0.75F),
NAPALM(6, 1F),
DIESEL(6, 1F),
KEROSENE(6, 1F),
RECURSION(1, 1F),
BARK(2, 1F);
protected int foodLevel;
protected float saturation;

View File

@ -33,15 +33,6 @@ public class ItemLemon extends ItemFood {
list.add("Eh, good enough.");
}
if(this == ModItems.definitelyfood) {
list.add("A'right, I got sick and tired of");
list.add("having to go out, kill things just");
list.add("to get food and not die, so here is ");
list.add("my absolutely genius solution:");
list.add("");
list.add("Have some edible dirt.");
}
if(this == ModItems.med_ipecac) {
list.add("Bitter juice that will cause your stomach");
list.add("to forcefully eject its contents.");

View File

@ -43,37 +43,4 @@ public class ItemBook extends Item implements IGUIProvider {
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIBook(player.inventory);
}
/*@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if(world.isRemote)
return stack;
if(!player.isSneaking()) {
List list = world.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - 10, player.posY - 2, player.posZ - 10, player.posX + 10, player.posY + 2, player.posZ + 10));
for(Object o : list) {
if(o instanceof EntityLivingBase) {
EntityLivingBase entity = (EntityLivingBase)o;
entity.addPotionEffect(new PotionEffect(HbmPotion.telekinesis.id, 20, 0));
}
}
} else {
if(player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 1)) &&
player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 2)) &&
player.inventory.hasItemStack(new ItemStack(ModItems.ingot_u238m2, 1, 3))) {
player.inventory.clearInventory(ModItems.ingot_u238m2, 1);
player.inventory.clearInventory(ModItems.ingot_u238m2, 2);
player.inventory.clearInventory(ModItems.ingot_u238m2, 3);
player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_u238m2));
player.inventoryContainer.detectAndSendChanges();
}
}
return stack;
}*/
}

View File

@ -0,0 +1,35 @@
package com.hbm.items.tool;
import com.hbm.inventory.container.ContainerLemegeton;
import com.hbm.inventory.gui.GUILemegeton;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IGUIProvider;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemBookLemegeton extends Item implements IGUIProvider {
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0);
return stack;
}
@Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerLemegeton(player.inventory);
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUILemegeton(player.inventory);
}
}

View File

@ -16,6 +16,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
@ -92,7 +93,7 @@ public class ItemPipette extends Item implements IFillableItem {
stack.stackTagCompound.setShort("capacity", (short) a);
player.addChatMessage(new ChatComponentText(a + "/" + this.getMaxFill() + "mB"));
} else {
player.addChatMessage(new ChatComponentText(I18nUtil.resolveKey("desc.item.pipette.noEmpty")));
player.addChatMessage(new ChatComponentTranslation("desc.item.pipette.noEmpty"));
}
}
return stack;

View File

@ -1,16 +1,6 @@
package com.hbm.items.tool;
import com.hbm.items.machine.ItemSatChip;
import com.hbm.lib.Library;
import com.hbm.saveddata.SatelliteSavedData;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.saveddata.satellites.Satellite.Interfaces;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ItemSatRelay extends ItemSatChip {
//Schrabby doesn't fucking know how this works so I HOPE it will create a new item that works without fucking everything up

View File

@ -4,10 +4,6 @@ import java.util.List;
import com.hbm.entity.effect.EntityNukeTorex;
import com.hbm.lib.Library;
import com.hbm.util.BobMathUtil;
import com.hbm.util.TrackerUtil;
import com.hbm.world.WorldUtil;
import com.hbm.world.biome.BiomeGenCraterBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -71,11 +67,7 @@ public class ItemWandD extends Item {
if(!del.isEmpty()) {
for(EntityNukeTorex torex : del) torex.setDead();
} else {
EntityNukeTorex torex = new EntityNukeTorex(world);
torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0);
torex.setScale((float) BobMathUtil.squirt( 1.5 ) * 1.5F);
world.spawnEntityInWorld(torex);
TrackerUtil.setTrackingRange(world, torex, 1000);
EntityNukeTorex.statFac(world, pos.blockX, pos.blockY + 1, pos.blockZ, 150);
}
/*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker();

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (4851)";
public static final String VERSION = "1.0.27 BETA (4859)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -223,7 +223,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() });
addRecipeAuto(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head });
addRecipeAuto(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head });
addRecipeAuto(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', STEEL.plate() });
addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, "treeSapling" });
addShapelessAuto(new ItemStack(ModItems.definitelyfood, 4), new Object[] { ANY_RUBBER.ingot(), Items.wheat, Items.rotten_flesh, Items.wheat_seeds, Items.wheat_seeds, Items.wheat_seeds });
addRecipeAuto(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', DURA.ingot() });
addRecipeAuto(new ItemStack(ModItems.ring_starmetal, 1), new Object[] { " S ", "S S", " S ", 'S', STAR.ingot() });
addRecipeAuto(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "IBI", "BTB", "IBI", 'B', BE.block(), 'I', IRON.plateCast(), 'T', ModItems.bolt_compound });
@ -324,6 +325,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel });
addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate });
addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars });
addRecipeAuto(new ItemStack(ModBlocks.machine_furnace_brick_off), new Object[] { "III", "I I", "BBB", 'I', Items.brick, 'B', Blocks.stone });
addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick });
addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor });
addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() });

View File

@ -347,7 +347,9 @@ public class MainRegistry {
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.bathwater), 1, 1, 1));
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.serum), 1, 1, 5));
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.no9), 1, 1, 5));
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5));
ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1));
ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.key_red_cracked), 1, 1, 5));
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1));
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.heart_piece), 1, 1, 1));
ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.scrumpy), 1, 1, 1));
@ -843,6 +845,7 @@ public class MainRegistry {
TileEntityNukeFurnace.registerFuels();
AssemblerRecipes.loadRecipes();
MagicRecipes.register();
LemegetonRecipes.register();
SILEXRecipes.register();
AnvilRecipes.register();
RefineryRecipes.registerRefinery();
@ -1211,6 +1214,10 @@ public class MainRegistry {
ignoreMappings.add("hbm:tile.reactor_computer");
ignoreMappings.add("hbm:tile.ff");
ignoreMappings.add("hbm:tile.muffler");
ignoreMappings.add("hbm:tile.basalt_sulfur");
ignoreMappings.add("hbm:tile.basalt_fluorite");
ignoreMappings.add("hbm:tile.basalt_asbestos");
ignoreMappings.add("hbm:tile.basalt_gem");
/// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -322,8 +322,9 @@ public class ModEventHandler {
event.entityLiving.dropItem(ModItems.bandaid, 1);
}
if(event.entityLiving instanceof IMob && event.entityLiving.getRNG().nextInt(1000) == 0) {
event.entityLiving.dropItem(ModItems.heart_piece, 1);
if(event.entityLiving instanceof IMob) {
if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1);
if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1);
}
if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) {

View File

@ -16,6 +16,7 @@ import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.RenderBlocks;
@ -377,10 +378,14 @@ public class ModEventHandlerRenderer {
public void tintFog(FogColors event) {
EntityPlayer player = MainRegistry.proxy.me();
Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.renderPartialTicks);
event.red = (float) color.xCoord;
event.green = (float) color.yCoord;
event.blue = (float) color.zCoord;
if(player.worldObj.getBlock((int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)).getMaterial() != Material.water) {
Vec3 color = getFogBlendColor(player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posZ), event.red, event.green, event.blue, event.renderPartialTicks);
if(color != null) {
event.red = (float) color.xCoord;
event.green = (float) color.yCoord;
event.blue = (float) color.zCoord;
}
}
float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold);
float sootColor = 0.15F;
@ -408,9 +413,10 @@ public class ModEventHandlerRenderer {
private static int fogX;
private static int fogZ;
private static Vec3 fogRGBMultiplier;
private static boolean doesBiomeApply = false;
/** Same procedure as getting the blended sky color but for fog */
public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, double partialTicks) {
public static Vec3 getFogBlendColor(World world, int playerX, int playerZ, float red, float green, float blue, double partialTicks) {
if(playerX == fogX && playerZ == fogZ && fogInit) return fogRGBMultiplier;
@ -428,11 +434,12 @@ public class ModEventHandlerRenderer {
float b = 0F;
int divider = 0;
doesBiomeApply = false;
for(int x = -distance; x <= distance; x++) {
for(int z = -distance; z <= distance; z++) {
BiomeGenBase biome = world.getBiomeGenForCoords(playerX + x, playerZ + z);
Vec3 color = getBiomeFogColors(world, biome, partialTicks);
Vec3 color = getBiomeFogColors(world, biome, red, green, blue, partialTicks);
r += color.xCoord;
g += color.yCoord;
b += color.zCoord;
@ -443,17 +450,12 @@ public class ModEventHandlerRenderer {
fogX = playerX;
fogZ = playerZ;
fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider);
if(doesBiomeApply) fogRGBMultiplier = Vec3.createVectorHelper(r / divider, g / divider, b / divider);
return fogRGBMultiplier;
}
/** Returns the current biome's fog color adjusted for brightness if in a crater, or the world's cached fog color if not */
public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, double partialTicks) {
Vec3 worldFog = world.getFogColor((float) partialTicks);
double r = worldFog.xCoord;
double g = worldFog.yCoord;
double b = worldFog.zCoord;
public static Vec3 getBiomeFogColors(World world, BiomeGenBase biome, float r, float g, float b, double partialTicks) {
if(biome instanceof BiomeGenCraterBase) {
int color = biome.getSkyColorByTemp(biome.temperature);
@ -466,6 +468,8 @@ public class ModEventHandlerRenderer {
r *= skyBrightness;
g *= skyBrightness;
b *= skyBrightness;
doesBiomeApply = true;
}
return Vec3.createVectorHelper(r, g, b);

View File

@ -2,8 +2,6 @@ package com.hbm.packet;
import com.hbm.config.MobConfig;
import com.hbm.entity.mob.EntityDuck;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.weapon.ItemMissile.PartSize;
import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.tileentity.TileEntityTickingBase;

View File

@ -32,27 +32,29 @@ public class RenderFallingBlockNT extends Render {
int iY = MathHelper.floor_double(entity.posY);
int iZ = MathHelper.floor_double(entity.posZ);
if(block != null && block != world.getBlock(iX, iY, iZ)) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
this.bindEntityTexture(entity);
GL11.glDisable(GL11.GL_LIGHTING);
this.renderBlocks.blockAccess = world;
if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) {
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator);
tessellator.draw();
} else {
this.renderBlocks.setRenderBoundsFromBlock(block);
this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11));
GL11.glPushMatrix();
try {
if(block != null && block != world.getBlock(iX, iY, iZ)) {
GL11.glTranslated(x, y, z);
this.bindEntityTexture(entity);
GL11.glDisable(GL11.GL_LIGHTING);
this.renderBlocks.blockAccess = world;
if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) {
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator);
tessellator.draw();
} else {
this.renderBlocks.setRenderBoundsFromBlock(block);
this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11));
}
GL11.glEnable(GL11.GL_LIGHTING);
}
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
} catch(Exception ex) { }
GL11.glPopMatrix();
}
protected ResourceLocation getEntityTexture(EntityFallingBlockNT entity) {

View File

@ -12,6 +12,7 @@ public class RenderConnector extends RenderPylonBase {
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
TileEntityConnector con = (TileEntityConnector) te;
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPushMatrix();

View File

@ -23,6 +23,8 @@ public class RenderPylon extends RenderPylonBase {
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) {
TileEntityPylon pyl = (TileEntityPylon)te;
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F - ((1F / 16F) * 14F), (float) z + 0.5F);
GL11.glRotatef(180, 0F, 0F, 1F);

View File

@ -14,6 +14,7 @@ public class RenderPylonLarge extends RenderPylonBase {
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
switch(tile.getBlockMetadata() - BlockDummyable.offset) {
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;

View File

@ -274,6 +274,7 @@ public class TileMappings {
put(TileEntityHeaterElectric.class, "tileentity_electric_heater");
put(TileEntityHeaterHeatex.class, "tileentity_heater_heatex");
put(TileEntityFurnaceIron.class, "tileentity_furnace_iron");
put(TileEntityFurnaceBrick.class, "tileentity_furnace_brick");
put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel");
put(TileEntityFurnaceCombination.class, "tileentity_combination_oven");
put(TileEntityStirling.class, "tileentity_stirling");

View File

@ -57,10 +57,10 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn
public int usage;
public int progressFluid;
public static final int processFluidTimeBase = 100;
public static final int processFluidTimeBase = 60;
public int processFluidTime;
public int progressOre;
public static final int processOreTimeBase = 1000;
public static final int processOreTimeBase = 600;
public int processOreTime;
public MaterialStack leftStack;
@ -167,7 +167,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn
toCast.add(this.leftStack);
Vec3 impact = Vec3.createVectorHelper(0, 0, 0);
MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact);
MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact);
if(didPour != null) {
NBTTagCompound data = new NBTTagCompound();
@ -190,7 +190,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn
toCast.add(this.rightStack);
Vec3 impact = Vec3.createVectorHelper(0, 0, 0);
MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact);
MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(3), impact);
if(didPour != null) {
NBTTagCompound data = new NBTTagCompound();

View File

@ -0,0 +1,232 @@
package com.hbm.tileentity.machine;
import java.util.HashMap;
import com.hbm.blocks.machine.MachineBrickFurnace;
import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.container.ContainerFurnaceBrick;
import com.hbm.inventory.gui.GUIFurnaceBrick;
import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.tileentity.TileEntityMachineBase;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.world.World;
public class TileEntityFurnaceBrick extends TileEntityMachineBase implements IGUIProvider {
private static final int[] slotsTop = new int[] { 0 };
private static final int[] slotsBottom = new int[] { 2, 1, 3 };
private static final int[] slotsSides = new int[] {1};
public static HashMap<Item, Integer> burnSpeed = new HashMap();
static {
burnSpeed.put(Items.clay_ball, 4);
burnSpeed.put(ModItems.ball_fireclay, 4);
burnSpeed.put(Item.getItemFromBlock(Blocks.netherrack), 4);
burnSpeed.put(Item.getItemFromBlock(Blocks.cobblestone), 2);
burnSpeed.put(Item.getItemFromBlock(Blocks.sand), 2);
}
public int burnTime;
public int maxBurnTime;
public int progress;
public int ashLevelWood;
public int ashLevelCoal;
public int ashLevelMisc;
public TileEntityFurnaceBrick() {
super(4);
}
@Override
public String getName() {
return "container.furnaceBrick";
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
boolean wasBurning = this.burnTime > 0;
boolean markDirty = false;
if(this.burnTime > 0) {
this.burnTime--;
}
if(this.burnTime != 0 || this.slots[1] != null && this.slots[0] != null) {
if(this.burnTime == 0 && this.canSmelt()) {
this.maxBurnTime = this.burnTime = TileEntityFurnace.getItemBurnTime(this.slots[1]);
if(this.burnTime > 0) {
markDirty = true;
if(this.slots[1] != null) {
this.slots[1].stackSize--;
EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[1]);
if(type == EnumAshType.WOOD) ashLevelWood += burnTime;
if(type == EnumAshType.COAL) ashLevelCoal += burnTime;
if(type == EnumAshType.MISC) ashLevelMisc += burnTime;
int threshold = 2000;
if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold;
if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold;
if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold;
if(this.slots[1].stackSize == 0) {
this.slots[1] = slots[1].getItem().getContainerItem(slots[1]);
}
}
}
}
if(this.burnTime > 0 && this.canSmelt()) {
this.progress += this.getBurnSpeed();
if(this.progress >= 200) {
this.progress = 0;
this.smeltItem();
markDirty = true;
}
} else {
this.progress = 0;
}
}
if(wasBurning != this.burnTime > 0) {
markDirty = true;
MachineBrickFurnace.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
if(markDirty) {
this.markDirty();
}
this.networkPackNT(15);
}
}
public int getBurnSpeed() {
Integer speed = burnSpeed.get(slots[0].getItem());
if(speed != null) return speed;
return 1;
}
@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
return slot >= 2 ? false : (slot == 1 ? TileEntityFurnace.getItemBurnTime(stack) > 0 : true);
}
@Override
public int[] getAccessibleSlotsFromSide(int side) {
return side == 0 ? slotsBottom : (side == 1 ? slotsTop : slotsSides);
}
@Override
public void serialize(ByteBuf buf) {
super.serialize(buf);
buf.writeInt(burnTime);
buf.writeInt(maxBurnTime);
buf.writeInt(progress);
}
@Override public void deserialize(ByteBuf buf) {
super.deserialize(buf);
this.burnTime = buf.readInt();
this.maxBurnTime = buf.readInt();
this.progress = buf.readInt();
}
protected boolean processAsh(int level, EnumAshType type, int threshold) {
if(level >= threshold) {
if(slots[3] == null) {
slots[3] = DictFrame.fromOne(ModItems.powder_ash, type);
return true;
} else if(slots[3].stackSize < slots[3].getMaxStackSize() && slots[3].getItem() == ModItems.powder_ash && slots[3].getItemDamage() == type.ordinal()) {
slots[3].stackSize++;
return true;
}
}
return false;
}
private boolean canSmelt() {
if(this.slots[0] == null) {
return false;
} else {
ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
if(itemstack == null)
return false;
if(this.slots[2] == null)
return true;
if(!this.slots[2].isItemEqual(itemstack))
return false;
int result = slots[2].stackSize + itemstack.stackSize;
return result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize();
}
}
public void smeltItem() {
if(this.canSmelt()) {
ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
if(this.slots[2] == null) {
this.slots[2] = itemstack.copy();
} else if(this.slots[2].getItem() == itemstack.getItem()) {
this.slots[2].stackSize += itemstack.stackSize;
}
--this.slots[0].stackSize;
if(this.slots[0].stackSize <= 0) {
this.slots[0] = null;
}
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.burnTime = nbt.getInteger("burnTime");
this.maxBurnTime = nbt.getInteger("maxBurn");
this.progress = nbt.getInteger("progress");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("burnTime", this.burnTime);
nbt.setInteger("maxBurn", this.maxBurnTime);
nbt.setInteger("progress", this.progress);
}
@Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerFurnaceBrick(player.inventory, this);
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIFurnaceBrick(player.inventory, this);
}
}

View File

@ -36,7 +36,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI
public int progress;
public int processingTime;
public static final int baseTime = 200;
public static final int baseTime = 160;
public ModuleBurnTime burnModule;
@ -63,7 +63,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI
if(!worldObj.isRemote) {
UpgradeManager.eval(slots, 4, 4);
this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3);
this.processingTime = baseTime - ((baseTime / 2) * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3);
wasOn = false;

View File

@ -29,6 +29,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.Compat;
import com.hbm.util.EnumUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.InventoryUtil;
import com.hbm.util.ItemStackUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -673,7 +674,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
if(inv instanceof ISidedInventory) {
ISidedInventory sided = (ISidedInventory) inv;
access = CraneInserter.masquerade(sided, dir.ordinal());
access = InventoryUtil.masquerade(sided, dir.ordinal());
}
for(ItemStack item : items) {

View File

@ -17,6 +17,8 @@ import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemCoordinateBase;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.packet.BufPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.saveddata.SatelliteSavedData;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.saveddata.satellites.SatelliteHorizons;
@ -35,6 +37,7 @@ import api.hbm.entity.IRadarDetectable;
import api.hbm.entity.IRadarDetectableNT;
import api.hbm.entity.IRadarDetectableNT.RadarScanParams;
import api.hbm.entity.RadarEntry;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -205,6 +208,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
screen.refZ = zCoord;
screen.range = this.getRange();
screen.linked = true;
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, pos.getX(), pos.getY(), pos.getZ(), 25));
}
}
}
@ -512,7 +516,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) {
return false;
} else {
return player.getDistance(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128;
return true;
}
}

View File

@ -187,7 +187,6 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
if(level >= threshold) {
if(slots[1] == null) {
slots[1] = DictFrame.fromOne(ModItems.powder_ash, type);
ashLevelWood -= threshold;
return true;
} else if(slots[1].stackSize < slots[1].getMaxStackSize() && slots[1].getItem() == ModItems.powder_ash && slots[1].getItemDamage() == type.ordinal()) {
slots[1].stackSize++;

View File

@ -128,6 +128,8 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements
tank.loadTank(2, 3, slots);
tank.setType(0, 1, slots);
} else {
for(DirPos pos : getConPos()) this.tryUnsubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ());
}
byte comp = this.getComparatorPower(); //comparator shit

View File

@ -9,6 +9,8 @@ import com.hbm.inventory.gui.GUICraneGrabber;
import com.hbm.items.ModItems;
import com.hbm.module.ModulePatternMatcher;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.util.InventoryUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@ -81,7 +83,7 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP
if(te instanceof ISidedInventory) {
sided = (ISidedInventory) te;
access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal());
access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal());
}
if(te instanceof IInventory) {

View File

@ -4,6 +4,8 @@ import com.hbm.blocks.network.CraneInserter;
import com.hbm.inventory.container.ContainerCraneInserter;
import com.hbm.inventory.gui.GUICraneInserter;
import com.hbm.tileentity.IGUIProvider;
import com.hbm.util.InventoryUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.GuiScreen;
@ -42,7 +44,7 @@ public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUI
if(te instanceof ISidedInventory) {
ISidedInventory sided = (ISidedInventory) te;
//access = sided.getAccessibleSlotsFromSide(dir.ordinal());
access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal());
access = InventoryUtil.masquerade(sided, outputSide.getOpposite().ordinal());
}
if(te instanceof IInventory) {

View File

@ -4,16 +4,27 @@ import java.util.List;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput;
import com.hbm.tileentity.machine.TileEntityFurnaceBrick;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraftforge.oredict.OreDictionary;
//'t was about time
public class InventoryUtil {
public static int[] masquerade(ISidedInventory sided, int side) {
if(sided instanceof TileEntityFurnace) return new int[] {1, 0};
if(sided instanceof TileEntityFurnaceBrick) return new int[] {1, 0, 3};
return sided.getAccessibleSlotsFromSide(side);
}
/**
* Will attempt to cram a much of the given itemstack into the stack array as possible
* The rest will be returned

View File

@ -2,12 +2,17 @@ package com.hbm.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
public class ItemStackUtil {
@ -161,4 +166,36 @@ public class ItemStackUtil {
return list;
}
public static void spillItems(World world, int x, int y, int z, Block block, Random rand) {
IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z);
if(tileentityfurnace != null) {
for(int slot = 0; slot < tileentityfurnace.getSizeInventory(); ++slot) {
ItemStack itemstack = tileentityfurnace.getStackInSlot(slot);
if(itemstack != null) {
float oX = rand.nextFloat() * 0.8F + 0.1F;
float oY = rand.nextFloat() * 0.8F + 0.1F;
float oZ = rand.nextFloat() * 0.8F + 0.1F;
while(itemstack.stackSize > 0) {
int j1 = rand.nextInt(21) + 10;
if(j1 > itemstack.stackSize) j1 = itemstack.stackSize;
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(world, x + oX, y + oY, z + oZ, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
float motion = 0.05F;
entityitem.motionX = (float) rand.nextGaussian() * motion;
entityitem.motionY = (float) rand.nextGaussian() * motion + 0.2F;
entityitem.motionZ = (float) rand.nextGaussian() * motion;
world.spawnEntityInWorld(entityitem);
}
}
}
world.func_147453_f(x, y, z, block);
}
}
}

View File

@ -47,7 +47,7 @@ public class TrackerUtil {
if(world instanceof WorldServer) {
WorldServer server = (WorldServer) world;
EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId());
entry.blocksDistanceThreshold = range;
if(entry != null) entry.blocksDistanceThreshold = range;
}
}
}

View File

@ -1,79 +0,0 @@
package com.hbm.world.feature;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.NoiseGeneratorPerlin;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
public class DeepLayer {
NoiseGeneratorPerlin noise;
@SubscribeEvent
public void onDecorate(DecorateBiomeEvent.Pre event) {
World world = event.world;
if(world.provider == null || world.provider.dimensionId != 0) return;
if(this.noise == null) {
this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed() + 19), 4);
}
int cX = event.chunkX;
int cZ = event.chunkZ;
double scale = 0.01D;
int threshold = 2;
for(int x = cX + 8; x < cX + 24; x++) {
for(int z = cZ + 8; z < cZ + 24; z++) {
double n = noise.func_151601_a(x * scale, z * scale);
if(n > threshold) {
int range = (int)((n - threshold) * 8);
if(range > 24)
range = 48 - range;
if(range < 0)
continue;
for(int y = 1; y <= range; y++) {
Block target = world.getBlock(x, y, z);
if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
boolean lava = false;
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
Block neighbor = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
if(neighbor.getMaterial() == Material.lava) {
lava = true;
break;
}
}
if(lava || world.rand.nextInt(10) == 0) {
world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 1, 2);
} else if(world.rand.nextInt(10) == 0 && world.getBlock(x, y + 1, z).getMaterial() == Material.air) {
world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 2, 2);
} else {
world.setBlock(x, y, z, ModBlocks.stone_deep_cobble, 0, 2);
}
}
}
}
}
}
}
}

View File

@ -323,6 +323,7 @@ container.factoryTitanium=Einfache Fabrik
container.fluidtank=Tank
container.forceField=Kraftfeldgenerator
container.frackingTower=Hydraulischer Frackingturm
container.furnaceBrick=Ziegelofen
container.furnaceCombination=Kombinationsofen
container.furnaceIron=Eiserner Ofen
container.furnaceSteel=Stahlofen
@ -1301,6 +1302,7 @@ item.bomb_caller.name=Luftschlag Zielmarker
item.bomb_waffle.name=Massenvernichtungswaffel
item.guide_book.name=Handbuch
item.book_of_.name=Das Buch der Güterwagons
item.book_lemegeton.name=Lemegeton
item.book_secret.name=3-596-50802-9
item.bottle2_empty.name=Leere Glasflasche
item.bottle2_fritz.name=Fritz-Kola
@ -1472,6 +1474,7 @@ item.chopper_head.name=Jagdschrauber Cockpit
item.chopper_tail.name=Jagdschrauber Heck
item.chopper_torso.name=Jagdschrauber Rumpf
item.chopper_wing.name=Jagdschrauber Seitentragfläche
item.chunk_ore.rare.name=Seltenerdenerz-Brocken
item.cigarette.name=FFI-Markenzigarette
item.cinnebar.name=Zinnober
item.circuit_aluminium.name=Einfacher Schaltkreis
@ -1674,7 +1677,7 @@ item.debris_fuel.name=RBMK-Kernbrennstoffbrocken
item.debris_graphite.name=Heißer Graphitbrocken
item.debris_metal.name=Gebrochene Metallleiste
item.debris_shrapnel.name=Wartungssteg-Schrapnell
item.definitelyfood.name=GarantiertKeinDreck-Marken Feldration
item.definitelyfood.name=Feldration
item.defuser.name=High-Tech Bombenentschärfungsgerät
item.defuser_gold.name=Goldener Seitenschneider
item.demon_core_closed.name=Bedeckter Dämonenkern
@ -1735,6 +1738,7 @@ item.drone.request.name=Logistikdrone
item.drone_linker.name=Transportdronen-Linker
item.ducttape.name=Klebeband
item.dust.name=Staub
item.dwarven_pickaxe.name=Zwergenspitzhacke
item.dynosphere_base.name=Blanke Dynosphere
item.dynosphere_desh.name=Desh-Dynosphere
item.dynosphere_desh_charged.name=Desh-Dynosphere (Geladen)
@ -2212,6 +2216,7 @@ item.key.name=Schlüssel
item.key_fake.name=Gefälschter Schlüssel
item.key_kit.name=Schlüssel-Imitationskit
item.key_red.name=Roter Schlüssel
item.key_red_cracked.name=Zerbrochener Schlüssel
item.kit_toolbox.name=Werkzeugkasten
item.kit_toolbox_empty.name=Leerer Werkzeugkasten
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uran-Thorium-Kristallmatrix
@ -3945,6 +3950,8 @@ tile.frozen_dirt.name=Gefrorene Erde
tile.frozen_grass.name=Gefrorenes Gras
tile.frozen_log.name=Gefrorener Baumstamm
tile.frozen_planks.name=Gefrorene Holzbretter
tile.machine_furnace_brick_off.name=Ziegelofen
tile.machine_furnace_brick_on.name=Ziegelofen
tile.furnace_combination.name=Kombinationsofen
tile.furnace_combination.desc=Großer Ofen welcher Holzhokle und Kohlekoks herstellen kann.$Erzeugt flüssige Nebenprodukte.$Wärmetransferrate: ΔT*0.25 TU/t
tile.furnace_iron.name=Eiserner Ofen

View File

@ -682,6 +682,7 @@ container.fluidtank=Tank
container.fileCabinet=Filing Cabinet
container.forceField=Forcefield Emitter
container.frackingTower=Hydraulic Fracking Tower
container.furnaceBrick=Bricked Furnace
container.furnaceCombination=Combination Oven
container.furnaceIron=Iron Furnace
container.furnaceSteel=Steel Furnace
@ -1969,6 +1970,7 @@ item.bomb_caller.name=Airstrike Designator
item.bomb_waffle.name=Waffle of Mass Destruction
item.book_guide.name=Guide Book
item.book_of_.name=The Book of Boxcars
item.book_lemegeton.name=Lemegeton
item.book_secret.name=3-596-50802-9
item.bottle2_empty.name=Empty Bottle
item.bottle2_fritz.name=Fritz Cola
@ -2169,6 +2171,7 @@ item.chopper_head.name=Hunter Chopper Cockpit
item.chopper_tail.name=Hunter Chopper Tail
item.chopper_torso.name=Hunter Chopper Body
item.chopper_wing.name=Hunter Chopper Wing
item.chunk_ore.rare.name=Rare Earth Ore Chunk
item.cigarette.name=FFI-Brand Cigarette
item.cinnebar.name=Cinnabar
item.circuit_aluminium.name=Basic Circuit
@ -2378,7 +2381,7 @@ item.debris_fuel.name=RBMK Fuel Chunk
item.debris_graphite.name=Hot Graphite Chunk
item.debris_metal.name=Broken Metal Bar
item.debris_shrapnel.name=Walkway Shrapnel
item.definitelyfood.name=TotallyNotDirt-Brand MRE
item.definitelyfood.name=MRE
item.defuser.name=High-Tech Bomb Defusing Device
item.defuser_gold.name=Golden Wire Cutter
item.demon_core_closed.name=Closed Demon Core
@ -2444,6 +2447,7 @@ item.dust.name=Dust
item.dust.desc=I hate dust!
item.dust.desc.P11=Another one bites the dust!
item.dust_tiny.name=Tiny Pile of Dust
item.dwarven_pickaxe.name=Dwarven Pickaxe
item.dynosphere_base.name=Blank Dynosphere
item.dynosphere_desh.name=Desh Dynosphere
item.dynosphere_desh_charged.name=Desh Dynosphere (Charged)
@ -2960,6 +2964,9 @@ item.key_kit.name=Key Imitation Kit
item.key_red.name=Red Key
item.key_red.desc=Explore the other side.
item.key_red.desc.P11=§4e§r
item.key_red_cracked.name=Cracked Key
item.key_red_cracked.desc=???
item.key_red.key_red_cracked.P11=§4???§r
item.kit_toolbox.name=Toolbox
item.kit_toolbox_empty.name=Empty Toolbox
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix
@ -4939,6 +4946,8 @@ tile.frozen_dirt.name=Frozen Dirt
tile.frozen_grass.name=Frozen Grass
tile.frozen_log.name=Frozen Log
tile.frozen_planks.name=Frozen Planks
tile.machine_furnace_brick_off.name=Bricked Furnace
tile.machine_furnace_brick_on.name=Bricked Furnace
tile.furnace_combination.name=Combination Oven
tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t
tile.furnace_iron.name=Iron Furnace

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B