Merge branch 'master' into animation-rework
14
changelog
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
172
src/main/java/com/hbm/blocks/machine/MachineBrickFurnace.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 });
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
44
src/main/java/com/hbm/inventory/gui/GUIFurnaceBrick.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
40
src/main/java/com/hbm/inventory/gui/GUILemegeton.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)));
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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");
|
||||
|
||||
@ -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[] {
|
||||
|
||||
@ -50,6 +50,10 @@ public class ItemEnums {
|
||||
MUSTARDWILLOW
|
||||
}
|
||||
|
||||
public static enum EnumChunkType {
|
||||
RARE
|
||||
}
|
||||
|
||||
public static enum EnumAchievementType {
|
||||
GOFISH,
|
||||
ACID,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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.");
|
||||
|
||||
@ -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;
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
35
src/main/java/com/hbm/items/tool/ItemBookLemegeton.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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() });
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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++;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
2311
src/main/resources/assets/hbm/models/machines/hydrotreater.obj
Normal file
|
After Width: | Height: | Size: 405 B |
|
After Width: | Height: | Size: 614 B |
|
After Width: | Height: | Size: 649 B |
|
After Width: | Height: | Size: 678 B |
|
After Width: | Height: | Size: 695 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
BIN
src/main/resources/assets/hbm/textures/items/book_lemegeton.png
Normal file
|
After Width: | Height: | Size: 982 B |
BIN
src/main/resources/assets/hbm/textures/items/chunk_base.png
Normal file
|
After Width: | Height: | Size: 309 B |
BIN
src/main/resources/assets/hbm/textures/items/chunk_ore.rare.png
Normal file
|
After Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 329 B |
BIN
src/main/resources/assets/hbm/textures/items/dwarven_pickaxe.png
Normal file
|
After Width: | Height: | Size: 313 B |
BIN
src/main/resources/assets/hbm/textures/items/key_red_cracked.png
Normal file
|
After Width: | Height: | Size: 268 B |
|
After Width: | Height: | Size: 941 B |