Merge remote-tracking branch 'HbmMods/master'

This commit is contained in:
Vaern 2022-04-10 13:09:35 -07:00
commit ee7642e825
80 changed files with 15282 additions and 317 deletions

View File

@ -1,14 +1,9 @@
package com.hbm.blocks; package com.hbm.blocks;
import java.util.List;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
public class BlockEnumMulti extends BlockMulti { public class BlockEnumMulti extends BlockMulti {

View File

@ -9,7 +9,7 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public abstract class BlockMulti extends BlockBase { public abstract class BlockMulti extends BlockBase implements IBlockMulti {
public BlockMulti() { public BlockMulti() {
super(); super();
@ -35,6 +35,4 @@ public abstract class BlockMulti extends BlockBase {
list.add(new ItemStack(item, 1, i)); list.add(new ItemStack(item, 1, i));
} }
} }
public abstract int getSubCount();
} }

View File

@ -0,0 +1,6 @@
package com.hbm.blocks;
public interface IBlockMulti {
public int getSubCount();
}

View File

@ -22,12 +22,9 @@ import com.hbm.main.MainRegistry;
import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.DoorDecl;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockFalling; import net.minecraft.block.BlockFalling;
import net.minecraft.block.material.*; import net.minecraft.block.material.*;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
@ -325,6 +322,8 @@ public class ModBlocks {
public static Block concrete_colored; public static Block concrete_colored;
public static Block concrete; public static Block concrete;
public static Block concrete_asbestos; public static Block concrete_asbestos;
public static Block concrete_super;
public static Block concrete_super_broken;
public static Block ducrete_smooth; public static Block ducrete_smooth;
public static Block ducrete; public static Block ducrete;
public static Block concrete_pillar; public static Block concrete_pillar;
@ -448,6 +447,8 @@ public class ModBlocks {
public static Block mush_block; public static Block mush_block;
public static Block mush_block_stem; public static Block mush_block_stem;
public static Block plant_flower;
public static Block waste_earth; public static Block waste_earth;
public static Block waste_mycelium; public static Block waste_mycelium;
public static Block waste_trinitite; public static Block waste_trinitite;
@ -742,6 +743,7 @@ public class ModBlocks {
public static Block gas_duct; public static Block gas_duct;
public static Block fluid_duct; public static Block fluid_duct;
public static Block fluid_duct_solid; public static Block fluid_duct_solid;
public static Block fluid_duct_neo;
public static Block conveyor; public static Block conveyor;
@ -945,6 +947,8 @@ public class ModBlocks {
public static Block machine_condenser; public static Block machine_condenser;
public static Block machine_tower_small; public static Block machine_tower_small;
public static Block machine_tower_large; public static Block machine_tower_large;
public static Block machine_electrolyser;
public static Block machine_deaerator; public static Block machine_deaerator;
public static final int guiID_machine_deaerator = 74; public static final int guiID_machine_deaerator = 74;
@ -1456,9 +1460,9 @@ public class ModBlocks {
block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh");
block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel");
block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal");
block_polymer = new BlockBeaconable(Material.ground).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); block_polymer = new BlockBeaconable(Material.rock).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer");
block_bakelite = new BlockBeaconable(Material.ground).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite");
block_rubber = new BlockBeaconable(Material.ground).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber");
block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake");
block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side");
block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side");
@ -1543,6 +1547,8 @@ public class ModBlocks {
concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete");
concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile");
concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos");
concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F);
concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken");
concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side");
brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete");
brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy");
@ -1665,6 +1671,8 @@ public class ModBlocks {
mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush");
mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin");
mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem");
plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth");
waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side");
@ -1875,6 +1883,7 @@ public class ModBlocks {
fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon");
fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid");
conveyor = new BlockConveyor(Material.iron).setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor = new BlockConveyor(Material.iron).setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor");
fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo");
chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain");
@ -2136,6 +2145,8 @@ public class ModBlocks {
machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_solidifier = new MachineSolidifier().setBlockName("machine_solidifier").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_solidifier = new MachineSolidifier().setBlockName("machine_solidifier").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine");
machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine");
anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron");
anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead");
anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel");
@ -2586,6 +2597,8 @@ public class ModBlocks {
GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName()); GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName());
GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName());
GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(concrete_super, ItemBlockBlastInfo.class, concrete_super.getUnlocalizedName());
GameRegistry.registerBlock(concrete_super_broken, ItemBlockBlastInfo.class, concrete_super_broken.getUnlocalizedName());
GameRegistry.registerBlock(ducrete_smooth, ItemBlockBlastInfo.class, ducrete_smooth.getUnlocalizedName()); GameRegistry.registerBlock(ducrete_smooth, ItemBlockBlastInfo.class, ducrete_smooth.getUnlocalizedName());
GameRegistry.registerBlock(ducrete, ItemBlockBlastInfo.class, ducrete.getUnlocalizedName()); GameRegistry.registerBlock(ducrete, ItemBlockBlastInfo.class, ducrete.getUnlocalizedName());
GameRegistry.registerBlock(concrete_pillar, ItemBlockBlastInfo.class, concrete_pillar.getUnlocalizedName()); GameRegistry.registerBlock(concrete_pillar, ItemBlockBlastInfo.class, concrete_pillar.getUnlocalizedName());
@ -2688,6 +2701,7 @@ public class ModBlocks {
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName());
GameRegistry.registerBlock(plant_flower, ItemBlockBase.class, plant_flower.getUnlocalizedName());
GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
@ -2996,6 +3010,7 @@ public class ModBlocks {
GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName());
GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName());
GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName());
GameRegistry.registerBlock(fluid_duct_neo, ItemBlockBase.class, fluid_duct_neo.getUnlocalizedName());
GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName());
GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName());
GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(chain, chain.getUnlocalizedName());
@ -3054,6 +3069,7 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName());
GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName());
GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName());
GameRegistry.registerBlock(machine_electrolyser, machine_electrolyser.getUnlocalizedName());
GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName());
GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName());
GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName());

View File

@ -0,0 +1,107 @@
package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.blocks.BlockEnumMulti;
import com.hbm.blocks.ITooltipProvider;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.EnumPlantType;
import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, ITooltipProvider {
public BlockNTMFlower() {
super(Material.plants, EnumFlowerType.class, true, true);
}
public static enum EnumFlowerType {
FOXGLOVE,
TOBACCO,
NIGHTSHADE,
WEED
}
@Override
public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z) {
return EnumPlantType.Plains;
}
@Override
public Block getPlant(IBlockAccess world, int x, int y, int z) {
return this;
}
@Override
public int getPlantMetadata(IBlockAccess world, int x, int y, int z) {
return world.getBlockMetadata(x, y, z);
}
@Override
public boolean canPlaceBlockAt(World world, int x, int y, int z) {
return super.canPlaceBlockAt(world, x, y, z) && this.canBlockStay(world, x, y, z);
}
protected boolean canPlaceBlockOn(Block block) {
return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland;
}
@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
super.onNeighborBlockChange(world, x, y, z, block);
this.checkAndDropBlock(world, x, y, z);
}
protected void checkAndDropBlock(World world, int x, int y, int z) {
if(!this.canBlockStay(world, x, y, z)) {
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
world.setBlock(x, y, z, getBlockById(0), 0, 2);
}
}
@Override
public boolean canBlockStay(World world, int x, int y, int z) {
return world.getBlock(x, y - 1, z).canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, this);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
return null;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public int getRenderType() {
return 1;
}
@Override
public int damageDropped(int meta) {
return meta;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
if(stack.getItemDamage() == 3) {
list.add("haha get it? it's funny because drugs");
}
}
}

View File

@ -0,0 +1,91 @@
package com.hbm.blocks.generic;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import com.hbm.blocks.BlockBase;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityFallingBlock;
import net.minecraft.init.Blocks;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import scala.actors.threadpool.Arrays;
public class BlockUberConcrete extends BlockBase {
public BlockUberConcrete() {
super();
this.setTickRandomly(true);
}
@SideOnly(Side.CLIENT)
protected IIcon[] brokenIcons;
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
super.registerBlockIcons(iconRegister);
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":concrete_super");
brokenIcons = new IIcon[4];
for(int i = 0; i < 4; i++) {
this.brokenIcons[i] = iconRegister.registerIcon(RefStrings.MODID + ":concrete_super_m" + i);
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
if(meta == 15) return brokenIcons[3];
if(meta == 14) return brokenIcons[2];
if(meta > 11) return brokenIcons[1];
if(meta > 9) return brokenIcons[0];
return this.blockIcon;
}
public void updateTick(World world, int x, int y, int z, Random rand) {
int meta = world.getBlockMetadata(x, y, z);
if(rand.nextInt(meta + 1) > 0)
return;
if(meta < 15) {
world.setBlockMetadataWithNotify(x, y, z, meta + 1, 3);
} else {
world.setBlockToAir(x, y, z);
if(world.getBlock(x, y - 1, z) == Blocks.air) {
world.setBlock(x, y, z, ModBlocks.concrete_super_broken);
return;
}
List<Integer> sides = new ArrayList(); //i wish the fucking homunculus that made the standard list implementation the nastiest fucking diarrhea of his life
Collections.addAll(sides, 2, 3, 4, 5);
Collections.shuffle(sides);
for(Integer i : sides) {
ForgeDirection dir = ForgeDirection.getOrientation(i);
if(world.getBlock(x + dir.offsetX, y, z + dir.offsetZ) == Blocks.air && world.getBlock(x + dir.offsetX, y - 1, z + dir.offsetZ) == Blocks.air) {
EntityFallingBlock debris = new EntityFallingBlock(world, x + 0.5 + dir.offsetX, y + 0.5, z + 0.5 + dir.offsetZ, ModBlocks.concrete_super_broken);
debris.field_145812_b = 2;
debris.field_145813_c = false;
debris.func_145806_a(true);
world.spawnEntityInWorld(debris);
return;
}
}
world.setBlock(x, y, z, ModBlocks.concrete_super_broken);
}
}
}

View File

@ -12,7 +12,6 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.entity.item.EntityFallingBlock;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;

View File

@ -1,16 +1,23 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ILookOverlay;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityDeuteriumTower; import com.hbm.tileentity.machine.TileEntityDeuteriumTower;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class DeuteriumTower extends BlockDummyable { public class DeuteriumTower extends BlockDummyable implements ILookOverlay {
public DeuteriumTower(Material mat) { public DeuteriumTower(Material mat) {
super(mat); super(mat);
@ -30,7 +37,7 @@ public class DeuteriumTower extends BlockDummyable {
@Override @Override
public int[] getDimensions() { public int[] getDimensions() {
return new int[] {9, 0, 1, 0, 0, 1}; return new int[] { 9, 0, 1, 0, 0, 1 };
} }
@Override @Override
@ -45,10 +52,33 @@ public class DeuteriumTower extends BlockDummyable {
x = x + dir.offsetX * o; x = x + dir.offsetX * o;
z = z + dir.offsetZ * o; z = z + dir.offsetZ * o;
ForgeDirection dr2 = dir.getRotation(ForgeDirection.UP); ForgeDirection dr2 = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x - dir.offsetX - dr2.offsetX, y, z - dir.offsetZ - dr2.offsetZ); this.makeExtra(world, x - dir.offsetX - dr2.offsetX, y, z - dir.offsetZ - dr2.offsetZ);
this.makeExtra(world, x, y, z - dir.offsetZ - dr2.offsetZ); this.makeExtra(world, x, y, z - dir.offsetZ - dr2.offsetZ);
this.makeExtra(world, x - dir.offsetX - dr2.offsetX, y, z); this.makeExtra(world, x - dir.offsetX - dr2.offsetX, y, z);
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityDeuteriumTower))
return;
TileEntityDeuteriumTower tower = (TileEntityDeuteriumTower) te;
List<String> text = new ArrayList();
text.add((tower.power < tower.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE");
for(int i = 0; i < tower.tanks.length; i++)
text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
} }
} }

View File

@ -1,64 +1,64 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityMachineChemfac; import com.hbm.tileentity.machine.TileEntityMachineChemfac;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class MachineChemfac extends BlockDummyable { public class MachineChemfac extends BlockDummyable {
public MachineChemfac(Material mat) { public MachineChemfac(Material mat) {
super(mat); super(mat);
} }
@Override @Override
public TileEntity createNewTileEntity(World world, int meta) { public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityMachineChemfac(); if(meta >= 12) return new TileEntityMachineChemfac();
if(meta >= 6) return new TileEntityProxyCombo(false, true, true); if(meta >= 6) return new TileEntityProxyCombo(false, true, true);
return null; return null;
} }
@Override @Override
public int[] getDimensions() { public int[] getDimensions() {
return new int[] {3, 0, 4, 3, 4, 3}; return new int[] {3, 0, 4, 3, 4, 3};
} }
@Override @Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return this.standardOpenBehavior(world, x, y, z, player, 0); return this.standardOpenBehavior(world, x, y, z, player, 0);
} }
@Override @Override
public int getOffset() { public int getOffset() {
return 3; return 3;
} }
@Override @Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o); super.fillSpace(world, x, y, z, dir, o);
x += dir.offsetX * o; x += dir.offsetX * o;
z += dir.offsetZ * o; z += dir.offsetZ * o;
ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN);
this.safeRem = true; this.safeRem = true;
for(int i = -3; i < 3; i++) { for(int i = -3; i < 3; i++) {
this.makeExtra(world, x + rot.offsetX * 2 + dir.offsetX * i, y + 3, z + rot.offsetZ * 2 + dir.offsetZ * i); this.makeExtra(world, x + rot.offsetX * 2 + dir.offsetX * i, y + 3, z + rot.offsetZ * 2 + dir.offsetZ * i);
this.makeExtra(world, x - rot.offsetX * 3 + dir.offsetX * i, y + 3, z - rot.offsetZ * 3 + dir.offsetZ * i); this.makeExtra(world, x - rot.offsetX * 3 + dir.offsetX * i, y + 3, z - rot.offsetZ * 3 + dir.offsetZ * i);
this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * i, y + 1, z + rot.offsetZ * 3 + dir.offsetZ * i); this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * i, y + 1, z + rot.offsetZ * 3 + dir.offsetZ * i);
this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * i, y + 2, z + rot.offsetZ * 3 + dir.offsetZ * i); this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * i, y + 2, z + rot.offsetZ * 3 + dir.offsetZ * i);
this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * i, y + 1, z - rot.offsetZ * 4 + dir.offsetZ * i); this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * i, y + 1, z - rot.offsetZ * 4 + dir.offsetZ * i);
this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * i, y + 2, z - rot.offsetZ * 4 + dir.offsetZ * i); this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * i, y + 2, z - rot.offsetZ * 4 + dir.offsetZ * i);
} }
this.safeRem = false; this.safeRem = false;
} }
} }

View File

@ -1,7 +1,13 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ILookOverlay;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityDeuteriumExtractor; import com.hbm.tileentity.machine.TileEntityDeuteriumExtractor;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -9,10 +15,12 @@ import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
public class MachineDeuteriumExtractor extends BlockContainer { public class MachineDeuteriumExtractor extends BlockContainer implements ILookOverlay {
public MachineDeuteriumExtractor(Material mat) { public MachineDeuteriumExtractor(Material mat) {
super(mat); super(mat);
@ -43,4 +51,23 @@ public class MachineDeuteriumExtractor extends BlockContainer {
return blockIcon; return blockIcon;
} }
} }
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(!(te instanceof TileEntityDeuteriumExtractor))
return;
TileEntityDeuteriumExtractor extractor = (TileEntityDeuteriumExtractor) te;
List<String> text = new ArrayList();
text.add((extractor.power < extractor.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE");
for(int i = 0; i < extractor.tanks.length; i++)
text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase()) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
} }

View File

@ -0,0 +1,76 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityElectrolyser;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineElectrolyser extends BlockDummyable {
public MachineElectrolyser() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityElectrolyser();
if(meta >= 6) return new TileEntityProxyCombo(false, true, true);
return null;
}
@Override
public int[] getDimensions() {
return new int[] {0, 0, 4, 4, 2, 2};
}
@Override
public int getOffset() {
return 4;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return this.standardOpenBehavior(world, x, y, z, player, 0);
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, this, dir);
}
@Override
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, x, y, z, dir)) return false;
return true;
}
}

View File

@ -1,21 +1,28 @@
package com.hbm.blocks.network; package com.hbm.blocks.network;
import java.util.List;
import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.test.TestPipe;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
public class FluidDuctStandard extends FluidDuctBase { public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
protected IIcon[] icon; protected IIcon[] icon;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
protected IIcon[] overlay; protected IIcon[] overlay;
protected FluidDuctStandard(Material mat) { public FluidDuctStandard(Material mat) {
super(mat); super(mat);
} }
@ -40,6 +47,13 @@ public class FluidDuctStandard extends FluidDuctBase {
return side == 0 ? this.icon[rectify(metadata)] : this.overlay[rectify(metadata)]; return side == 0 ? this.icon[rectify(metadata)] : this.overlay[rectify(metadata)];
} }
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for(int i = 0; i < 3; ++i) {
list.add(new ItemStack(item, 1, i));
}
}
public int damageDropped(int meta) { public int damageDropped(int meta) {
return rectify(meta); return rectify(meta);
} }
@ -47,4 +61,24 @@ public class FluidDuctStandard extends FluidDuctBase {
private int rectify(int meta) { private int rectify(int meta) {
return Math.abs(meta % 3); return Math.abs(meta % 3);
} }
@Override
public int getRenderType() {
return TestPipe.renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public int getSubCount() {
return 3;
}
} }

View File

@ -20,6 +20,7 @@ public class CommonConfig {
public static final String CATEGORY_TOOLS = "11_tools"; public static final String CATEGORY_TOOLS = "11_tools";
public static final String CATEGORY_MOBS = "12_mobs"; public static final String CATEGORY_MOBS = "12_mobs";
public static final String CATEGORY_RADIATION = "13_radiation"; public static final String CATEGORY_RADIATION = "13_radiation";
public static final String CATEGORY_HAZARD = "14_hazard";
public static final String CATEGORY_528 = "528"; public static final String CATEGORY_528 = "528";

View File

@ -24,6 +24,7 @@ public class GeneralConfig {
public static boolean enableBabyMode = false; public static boolean enableBabyMode = false;
public static boolean enableReflectorCompat = false; public static boolean enableReflectorCompat = false;
public static boolean enableRenderDistCheck = true; public static boolean enableRenderDistCheck = true;
public static boolean enableCustomDashKeybind = false;
public static boolean enable528 = false; public static boolean enable528 = false;
public static boolean enable528ReasimBoilers = true; public static boolean enable528ReasimBoilers = true;
@ -57,6 +58,7 @@ public class GeneralConfig {
enableBabyMode = config.get(CATEGORY_GENERAL, "1.23_enableBabyMode", false).getBoolean(false); enableBabyMode = config.get(CATEGORY_GENERAL, "1.23_enableBabyMode", false).getBoolean(false);
enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false).getBoolean(false); enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false).getBoolean(false);
enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true).getBoolean(true); enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true).getBoolean(true);
enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false).getBoolean(false);
final String CATEGORY_528 = CommonConfig.CATEGORY_528; final String CATEGORY_528 = CommonConfig.CATEGORY_528;

View File

@ -1,7 +1,6 @@
package com.hbm.config; package com.hbm.config;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
public class RadiationConfig { public class RadiationConfig {
@ -15,6 +14,14 @@ public class RadiationConfig {
public static boolean enableContamination = true; public static boolean enableContamination = true;
public static boolean enableChunkRads = true; public static boolean enableChunkRads = true;
public static boolean disableAsbestos = false;
public static boolean disableCoal = false;
public static boolean disableHot = false;
public static boolean disableExplosive = false;
public static boolean disableHydro = false;
public static boolean disableBlinding = false;
public static boolean disableFibrosis = false;
public static void loadFromConfig(Configuration config) { public static void loadFromConfig(Configuration config) {
@ -32,5 +39,15 @@ public class RadiationConfig {
enableChunkRads = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_01_enableChunkRads", "Toggles the world radiation system (chunk radiation only, some blocks use an AoE!)", true); enableChunkRads = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_01_enableChunkRads", "Toggles the world radiation system (chunk radiation only, some blocks use an AoE!)", true);
fogCh = CommonConfig.setDef(fogCh, 20); fogCh = CommonConfig.setDef(fogCh, 20);
final String CATEGORY_HAZ = CommonConfig.CATEGORY_HAZARD;
disableAsbestos = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_00_disableAsbestos", "When turned off, all asbestos hazards are disabled", false);
disableCoal = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_01_disableCoaldust", "When turned off, all coal dust hazards are disabled", false);
disableHot = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_02_disableHot", "When turned off, all hot hazards are disabled", false);
disableExplosive = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_03_disableExplosive", "When turned off, all explosive hazards are disabled", false);
disableHydro = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_04_disableHydroactive", "When turned off, all hydroactive hazards are disabled", false);
disableBlinding = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_05_disableBlinding", "When turned off, all blinding hazards are disabled", false);
disableFibrosis = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_06_disableFibrosis", "When turned off, all firbosis hazards are disabled", false);
} }
} }

View File

@ -76,7 +76,6 @@ public class HbmLivingProps implements IExtendedEntityProperties {
} }
public static void incrementRadiation(EntityLivingBase entity, float rad) { public static void incrementRadiation(EntityLivingBase entity, float rad) {
if(!RadiationConfig.enableContamination) if(!RadiationConfig.enableContamination)
return; return;
@ -189,10 +188,12 @@ public class HbmLivingProps implements IExtendedEntityProperties {
/// ASBESTOS /// /// ASBESTOS ///
public static int getAsbestos(EntityLivingBase entity) { public static int getAsbestos(EntityLivingBase entity) {
if(RadiationConfig.disableAsbestos) return 0;
return getData(entity).asbestos; return getData(entity).asbestos;
} }
public static void setAsbestos(EntityLivingBase entity, int asbestos) { public static void setAsbestos(EntityLivingBase entity, int asbestos) {
if(RadiationConfig.disableAsbestos) return;
getData(entity).asbestos = asbestos; getData(entity).asbestos = asbestos;
if(asbestos >= maxAsbestos) { if(asbestos >= maxAsbestos) {
@ -202,6 +203,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
} }
public static void incrementAsbestos(EntityLivingBase entity, int asbestos) { public static void incrementAsbestos(EntityLivingBase entity, int asbestos) {
if(RadiationConfig.disableAsbestos) return;
setAsbestos(entity, getAsbestos(entity) + asbestos); setAsbestos(entity, getAsbestos(entity) + asbestos);
incrementFibrosis(entity, asbestos); incrementFibrosis(entity, asbestos);
} }
@ -209,10 +211,12 @@ public class HbmLivingProps implements IExtendedEntityProperties {
/// BLACK LUNG DISEASE /// /// BLACK LUNG DISEASE ///
public static int getBlackLung(EntityLivingBase entity) { public static int getBlackLung(EntityLivingBase entity) {
if(RadiationConfig.disableCoal) return 0;
return getData(entity).blacklung; return getData(entity).blacklung;
} }
public static void setBlackLung(EntityLivingBase entity, int blacklung) { public static void setBlackLung(EntityLivingBase entity, int blacklung) {
if(RadiationConfig.disableCoal) return;
getData(entity).blacklung = blacklung; getData(entity).blacklung = blacklung;
if(blacklung >= maxBlacklung) { if(blacklung >= maxBlacklung) {
@ -222,16 +226,19 @@ public class HbmLivingProps implements IExtendedEntityProperties {
} }
public static void incrementBlackLung(EntityLivingBase entity, int blacklung) { public static void incrementBlackLung(EntityLivingBase entity, int blacklung) {
if(RadiationConfig.disableCoal) return;
setBlackLung(entity, getBlackLung(entity) + blacklung); setBlackLung(entity, getBlackLung(entity) + blacklung);
incrementFibrosis(entity, blacklung); incrementFibrosis(entity, blacklung);
} }
/// PULMONARY FIBROSIS /// /// PULMONARY FIBROSIS ///
public static int getFibrosis(EntityLivingBase entity) { public static int getFibrosis(EntityLivingBase entity) {
if(RadiationConfig.disableFibrosis) return 0;
return getData(entity).fibrosis; return getData(entity).fibrosis;
} }
public static void setFibrosis(EntityLivingBase entity, int fibrosis) { public static void setFibrosis(EntityLivingBase entity, int fibrosis) {
if(RadiationConfig.disableFibrosis) return;
getData(entity).fibrosis = fibrosis; getData(entity).fibrosis = fibrosis;
if (fibrosis >= maxFibrosis) { if (fibrosis >= maxFibrosis) {
@ -241,6 +248,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
} }
public static void incrementFibrosis(EntityLivingBase entity, int fibrosis) { public static void incrementFibrosis(EntityLivingBase entity, int fibrosis) {
if(RadiationConfig.disableFibrosis) return;
setFibrosis(entity, getFibrosis(entity) + fibrosis); setFibrosis(entity, getFibrosis(entity) + fibrosis);
} }

View File

@ -20,6 +20,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
private boolean[] keysPressed = new boolean[EnumKeybind.values().length]; private boolean[] keysPressed = new boolean[EnumKeybind.values().length];
public boolean dashActivated = true;
public static final int dashCooldownLength = 5; public static final int dashCooldownLength = 5;
public int dashCooldown = 0; public int dashCooldown = 0;

View File

@ -11,6 +11,7 @@ import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmLivingProps;
import com.hbm.extprop.HbmPlayerProps; import com.hbm.extprop.HbmPlayerProps;
import com.hbm.extprop.HbmLivingProps.ContaminationEffect; import com.hbm.extprop.HbmLivingProps.ContaminationEffect;
import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.IArmorModDash; import com.hbm.interfaces.IArmorModDash;
import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSB;
@ -454,6 +455,15 @@ public class EntityEffectHandler {
} }
int dashCount = armorDashCount + armorModDashCount; int dashCount = armorDashCount + armorModDashCount;
boolean dashActivated = false;
if(!GeneralConfig.enableCustomDashKeybind) {
dashActivated = !player.capabilities.isFlying && player.isSneaking();
} else {
dashActivated = props.getKeyPressed(EnumKeybind.DASH);
}
//System.out.println(dashCount); //System.out.println(dashCount);
@ -470,7 +480,7 @@ public class EntityEffectHandler {
if(props.getDashCooldown() <= 0) { if(props.getDashCooldown() <= 0) {
if(!player.capabilities.isFlying && player.isSneaking() && stamina >= perDash) { if(dashActivated && stamina >= perDash) {
Vec3 lookingIn = player.getLookVec(); Vec3 lookingIn = player.getLookVec();
Vec3 strafeVec = player.getLookVec(); Vec3 strafeVec = player.getLookVec();

View File

@ -31,6 +31,7 @@ public class GUIHandler implements IGuiHandler {
if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); }
if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); }
if(entity instanceof TileEntityMachineChemfac) { return new ContainerChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new ContainerChemfac(player.inventory, (TileEntityMachineChemfac) entity); }
if(entity instanceof TileEntityElectrolyser) { return new ContainerElectrolyser(player.inventory, (TileEntityElectrolyser) entity); }
switch(ID) { switch(ID) {
case ModBlocks.guiID_test_difurnace: { case ModBlocks.guiID_test_difurnace: {
@ -872,6 +873,7 @@ public class GUIHandler implements IGuiHandler {
if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); }
if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); }
if(entity instanceof TileEntityMachineChemfac) { return new GUIChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new GUIChemfac(player.inventory, (TileEntityMachineChemfac) entity); }
if(entity instanceof TileEntityElectrolyser) { return new GUIElectrolyser(player.inventory, (TileEntityElectrolyser) entity); }
switch(ID) { switch(ID) {
case ModBlocks.guiID_test_difurnace: { case ModBlocks.guiID_test_difurnace: {

View File

@ -1,75 +1,79 @@
package com.hbm.handler; package com.hbm.handler;
import com.hbm.inventory.gui.GUICalculator; import com.hbm.inventory.gui.GUICalculator;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import com.hbm.extprop.HbmPlayerProps; import com.hbm.extprop.HbmPlayerProps;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.packet.KeybindPacket; import com.hbm.packet.KeybindPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.settings.KeyBinding;
public class HbmKeybinds { public class HbmKeybinds {
public static final String category = "hbm.key"; public static final String category = "hbm.key";
public static KeyBinding calculatorKey = new KeyBinding(category + ".calculator", Keyboard.KEY_N, category); public static KeyBinding calculatorKey = new KeyBinding(category + ".calculator", Keyboard.KEY_N, category);
public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category);
public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category);
public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category);
public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_F, category);
public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category);
public static KeyBinding craneDownKey = new KeyBinding(category + ".craneMoveDown", Keyboard.KEY_DOWN, category); public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category);
public static KeyBinding craneLeftKey = new KeyBinding(category + ".craneMoveLeft", Keyboard.KEY_LEFT, category); public static KeyBinding craneDownKey = new KeyBinding(category + ".craneMoveDown", Keyboard.KEY_DOWN, category);
public static KeyBinding craneRightKey = new KeyBinding(category + ".craneMoveRight", Keyboard.KEY_RIGHT, category); public static KeyBinding craneLeftKey = new KeyBinding(category + ".craneMoveLeft", Keyboard.KEY_LEFT, category);
public static KeyBinding craneLoadKey = new KeyBinding(category + ".craneLoad", Keyboard.KEY_RETURN, category); public static KeyBinding craneRightKey = new KeyBinding(category + ".craneMoveRight", Keyboard.KEY_RIGHT, category);
public static KeyBinding craneLoadKey = new KeyBinding(category + ".craneLoad", Keyboard.KEY_RETURN, category);
public static void register() {
ClientRegistry.registerKeyBinding(calculatorKey); public static void register() {
ClientRegistry.registerKeyBinding(jetpackKey); ClientRegistry.registerKeyBinding(calculatorKey);
ClientRegistry.registerKeyBinding(hudKey); ClientRegistry.registerKeyBinding(jetpackKey);
ClientRegistry.registerKeyBinding(reloadKey); ClientRegistry.registerKeyBinding(hudKey);
ClientRegistry.registerKeyBinding(reloadKey);
ClientRegistry.registerKeyBinding(craneUpKey); ClientRegistry.registerKeyBinding(dashKey);
ClientRegistry.registerKeyBinding(craneDownKey);
ClientRegistry.registerKeyBinding(craneLeftKey); ClientRegistry.registerKeyBinding(craneUpKey);
ClientRegistry.registerKeyBinding(craneRightKey); ClientRegistry.registerKeyBinding(craneDownKey);
ClientRegistry.registerKeyBinding(craneLoadKey); ClientRegistry.registerKeyBinding(craneLeftKey);
} ClientRegistry.registerKeyBinding(craneRightKey);
ClientRegistry.registerKeyBinding(craneLoadKey);
@SubscribeEvent }
public void keyEvent(KeyInputEvent event) {
if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only @SubscribeEvent
FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); public void keyEvent(KeyInputEvent event) {
} if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only
FMLCommonHandler.instance().showGuiScreen(new GUICalculator());
HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); }
for(EnumKeybind key : EnumKeybind.values()) { HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me());
boolean last = props.getKeyPressed(key);
boolean current = MainRegistry.proxy.getIsKeyPressed(key); for(EnumKeybind key : EnumKeybind.values()) {
boolean last = props.getKeyPressed(key);
if(last != current) { boolean current = MainRegistry.proxy.getIsKeyPressed(key);
PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current));
props.setKeyPressed(key, current); if(last != current) {
} PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current));
} props.setKeyPressed(key, current);
} System.out.println(key);
}
public static enum EnumKeybind { }
JETPACK, }
TOGGLE_JETPACK,
TOGGLE_HEAD, public static enum EnumKeybind {
RELOAD, JETPACK,
CRANE_UP, TOGGLE_JETPACK,
CRANE_DOWN, TOGGLE_HEAD,
CRANE_LEFT, RELOAD,
CRANE_RIGHT, DASH,
CRANE_LOAD CRANE_UP,
} CRANE_DOWN,
} CRANE_LEFT,
CRANE_RIGHT,
CRANE_LOAD
}
}

View File

@ -206,6 +206,7 @@ public abstract class ToolAbility {
EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch);
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
player.getHeldItem().damageItem(1, player);
} }
@Override @Override
@ -252,6 +253,7 @@ public abstract class ToolAbility {
EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune);
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
player.getHeldItem().damageItem(1, player);
} }
@Override @Override
@ -294,6 +296,7 @@ public abstract class ToolAbility {
} }
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
player.getHeldItem().damageItem(1, player);
for(ItemStack stack : drops) for(ItemStack stack : drops)
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy()));
@ -335,6 +338,7 @@ public abstract class ToolAbility {
if(result != null && result.getItem() != ModItems.scrap) { if(result != null && result.getItem() != ModItems.scrap) {
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy()));
player.getHeldItem().damageItem(1, player);
} }
} }
@ -373,6 +377,7 @@ public abstract class ToolAbility {
if(result != null) { if(result != null) {
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
player.getHeldItem().damageItem(1, player);
for(ItemStack st : result) { for(ItemStack st : result) {
if(st != null) if(st != null)
@ -417,6 +422,7 @@ public abstract class ToolAbility {
if(result != null) { if(result != null) {
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy()));
player.getHeldItem().damageItem(1, player);
} }
} }
@ -460,6 +466,7 @@ public abstract class ToolAbility {
if(mercury > 0) { if(mercury > 0) {
world.setBlockToAir(x, y, z); world.setBlockToAir(x, y, z);
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury)));
player.getHeldItem().damageItem(1, player);
} }
} }

View File

@ -146,7 +146,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler {
if(recipe.getKey() instanceof ItemStack) { if(recipe.getKey() instanceof ItemStack) {
if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()))
this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue())); this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue()));
} else if (recipe.getKey() instanceof ArrayList) { } else if (recipe.getKey() instanceof ArrayList) {
@ -154,7 +154,7 @@ public class SILEXRecipeHandler extends TemplateRecipeHandler {
for(Object o : (ArrayList)recipe.getKey()) { for(Object o : (ArrayList)recipe.getKey()) {
ItemStack stack = (ItemStack)o; ItemStack stack = (ItemStack)o;
if (NEIServerUtils.areStacksSameType(ingredient, stack)) if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, stack))
this.arecipes.add(new RecipeSet(stack, recipe.getValue())); this.arecipes.add(new RecipeSet(stack, recipe.getValue()));
} }
} }

View File

@ -22,7 +22,7 @@ public class HazardTransformerRadiationME extends HazardTransformerBase {
float radiation = 0; float radiation = 0;
for(ItemStack held : stacks) { for(ItemStack held : stacks) {
radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION); radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION) * held.stackSize;
} }
if(radiation > 0) { if(radiation > 0) {

View File

@ -2,6 +2,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.RadiationConfig;
import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmLivingProps;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry;
@ -20,6 +21,9 @@ public class HazardTypeAsbestos extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableAsbestos)
return;
if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_FINE)) if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_FINE))
HbmLivingProps.incrementAsbestos(target, (int) Math.min(level, 10)); HbmLivingProps.incrementAsbestos(target, (int) Math.min(level, 10));
else else

View File

@ -2,6 +2,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.RadiationConfig;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
@ -19,6 +20,9 @@ public class HazardTypeBlinding extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableBlinding)
return;
if(!ArmorRegistry.hasProtection(target, 3, HazardClass.LIGHT)) { if(!ArmorRegistry.hasProtection(target, 3, HazardClass.LIGHT)) {
target.addPotionEffect(new PotionEffect(Potion.blindness.id, (int)Math.ceil(level), 0)); target.addPotionEffect(new PotionEffect(Potion.blindness.id, (int)Math.ceil(level), 0));

View File

@ -2,6 +2,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.RadiationConfig;
import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmLivingProps;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry;
@ -20,6 +21,9 @@ public class HazardTypeCoal extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableCoal)
return;
if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_COARSE)) if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_COARSE))
HbmLivingProps.incrementBlackLung(target, (int) Math.min(level, 10)); HbmLivingProps.incrementBlackLung(target, (int) Math.min(level, 10));
else else

View File

@ -2,6 +2,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.RadiationConfig;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
@ -15,6 +16,9 @@ public class HazardTypeExplosive extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableExplosive)
return;
if(!target.worldObj.isRemote && target.isBurning()) { if(!target.worldObj.isRemote && target.isBurning()) {
stack.stackSize = 0; stack.stackSize = 0;
@ -24,6 +28,10 @@ public class HazardTypeExplosive extends HazardTypeBase {
@Override @Override
public void updateEntity(EntityItem item, float level) { public void updateEntity(EntityItem item, float level) {
if(RadiationConfig.disableExplosive)
return;
if(item.isBurning()) { if(item.isBurning()) {
item.setDead(); item.setDead();
item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true);

View File

@ -3,6 +3,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.GeneralConfig; import com.hbm.config.GeneralConfig;
import com.hbm.config.RadiationConfig;
import com.hbm.handler.ArmorModHandler; import com.hbm.handler.ArmorModHandler;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -21,6 +22,9 @@ public class HazardTypeHot extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableHot)
return;
boolean reacher = false; boolean reacher = false;
boolean gloves = false; boolean gloves = false;

View File

@ -2,6 +2,7 @@ package com.hbm.hazard.type;
import java.util.List; import java.util.List;
import com.hbm.config.RadiationConfig;
import com.hbm.hazard.modifier.HazardModifier; import com.hbm.hazard.modifier.HazardModifier;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
@ -16,6 +17,10 @@ public class HazardTypeHydroactive extends HazardTypeBase {
@Override @Override
public void onUpdate(EntityLivingBase target, float level, ItemStack stack) { public void onUpdate(EntityLivingBase target, float level, ItemStack stack) {
if(RadiationConfig.disableHydro)
return;
if(target.isWet()) { if(target.isWet()) {
stack.stackSize = 0; stack.stackSize = 0;
target.worldObj.newExplosion(null, target.posX, target.posY + target.getEyeHeight() - target.getYOffset(), target.posZ, level, false, true); target.worldObj.newExplosion(null, target.posX, target.posY + target.getEyeHeight() - target.getYOffset(), target.posZ, level, false, true);
@ -24,6 +29,10 @@ public class HazardTypeHydroactive extends HazardTypeBase {
@Override @Override
public void updateEntity(EntityItem item, float level) { public void updateEntity(EntityItem item, float level) {
if(RadiationConfig.disableHydro)
return;
if(item.worldObj.getBlock((int)Math.floor(item.posX), (int)Math.floor(item.posY), (int)Math.floor(item.posZ)).getMaterial() == Material.water) { if(item.worldObj.getBlock((int)Math.floor(item.posX), (int)Math.floor(item.posY), (int)Math.floor(item.posZ)).getMaterial() == Material.water) {
item.setDead(); item.setDead();
item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true);

View File

@ -0,0 +1,87 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.tileentity.machine.TileEntityElectrolyser;
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;
public class ContainerElectrolyser extends Container {
TileEntityElectrolyser electrolyser;
public ContainerElectrolyser(InventoryPlayer invPlayer, TileEntityElectrolyser tile) {
electrolyser = tile;
//0 - battery
//1-2 - upgrade slots
//3-4 - fluid ID
//5-10 - fluid I/O
//11-13 - dissolved outputs
//14 - crystal input
//15 - niter input
//16-17 - casting slots
//18-23 - other material outputs
this.addSlotToContainer(new Slot(tile, 0, 186, 109));
this.addSlotToContainer(new Slot(tile, 1, 186, 140));
this.addSlotToContainer(new Slot(tile, 2, 186, 158));
this.addSlotToContainer(new Slot(tile, 3, 6, 18));
this.addSlotToContainer(new SlotMachineOutput(tile, 4, 6, 54));
this.addSlotToContainer(new Slot(tile, 5, 24, 18));
this.addSlotToContainer(new SlotMachineOutput(tile, 6, 24, 54));
this.addSlotToContainer(new Slot(tile, 7, 78, 18));
this.addSlotToContainer(new SlotMachineOutput(tile, 8, 78, 54));
this.addSlotToContainer(new Slot(tile, 9, 134, 18));
this.addSlotToContainer(new SlotMachineOutput(tile, 10, 134, 54));
for(int i = 0; i < 3; i++) {
this.addSlotToContainer(new SlotMachineOutput(tile, 11+i, 154, 18+(18*i)));
}
this.addSlotToContainer(new Slot(tile, 14, 10, 90));
this.addSlotToContainer(new Slot(tile, 15, 37, 122));
this.addSlotToContainer(new SlotMachineOutput(tile, 16, 60, 112));
this.addSlotToContainer(new SlotMachineOutput(tile, 16, 98, 112));
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 3; j++) {
this.addSlotToContainer(new SlotMachineOutput(tile, 17+(i*3)+j, 136+(18*i), 86+(18*j)));
}
}
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, 165 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 223));
}
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return electrolyser.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
return null;
}
}

View File

@ -0,0 +1,51 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerElectrolyser;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityElectrolyser;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.util.ResourceLocation;
public class GUIElectrolyser extends GuiInfoContainer {
public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electrolyser.png");
private TileEntityElectrolyser electrolyser;
public GUIElectrolyser(InventoryPlayer invPlayer, TileEntityElectrolyser electrolyser) {
super(new ContainerElectrolyser(invPlayer, electrolyser));
this.electrolyser = electrolyser;
this.xSize = 210;
this.ySize = 247;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
}
@Override
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);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.electrolyser.hasCustomInventoryName() ? this.electrolyser.getInventoryName() : I18n.format(this.electrolyser.getInventoryName());
this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 16, 7, 0xffffff);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 94, 4210752);
}
}

View File

@ -284,6 +284,10 @@ public class AnvilRecipes {
new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7)); new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7));
pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3); pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3);
constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new ComparableStack(ModItems.ingot_arsenic), new OreDictStack(REDSTONE.dust(), 4), new OreDictStack(ASBESTOS.ingot(), 2)},
new AnvilOutput(new ItemStack(ModItems.circuit_arsenic_raw))).setTier(5));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4));

View File

@ -61,16 +61,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask {
@Override @Override
public void addDesc(List list, ItemStack stack, ItemStack armor) { public void addDesc(List list, ItemStack stack, ItemStack armor) {
int i = 0;
ItemStack filter = ArmorUtil.getGasMaskFilter(stack);
if(filter != null) {
i = filter.getItemDamage() / filter.getMaxDamage();
}
list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)");
ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false); ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false);
} }
@ -87,6 +78,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask {
EntityPlayer player = event.entityPlayer; EntityPlayer player = event.entityPlayer;
modelM65.isSneak = model.isSneak; modelM65.isSneak = model.isSneak;
modelM65.isChild = renderer.modelBipedMain.isChild;
float interp = event.partialRenderTick; float interp = event.partialRenderTick;
float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp;

View File

@ -3,22 +3,25 @@ package com.hbm.items.block;
import java.util.List; import java.util.List;
import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.BlockEnumMulti;
import com.hbm.blocks.BlockMulti; import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
import com.hbm.util.EnumUtil; import com.hbm.util.EnumUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity; import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
public class ItemBlockBase extends ItemBlock { public class ItemBlockBase extends ItemBlock {
public ItemBlockBase(Block block) { public ItemBlockBase(Block block) {
super(block); super(block);
if(block instanceof BlockMulti) { if(block instanceof IBlockMulti) {
this.setMaxDamage(0); this.setMaxDamage(0);
this.setHasSubtypes(true); this.setHasSubtypes(true);
} }
@ -26,7 +29,7 @@ public class ItemBlockBase extends ItemBlock {
@Override @Override
public int getMetadata(int meta) { public int getMetadata(int meta) {
if(field_150939_a instanceof BlockMulti) if(field_150939_a instanceof IBlockMulti)
return meta; return meta;
else else
return super.getMetadata(meta); return super.getMetadata(meta);
@ -52,6 +55,11 @@ public class ItemBlockBase extends ItemBlock {
} }
} }
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta) {
return this.field_150939_a.getIcon(1, meta); //fuck you mojang
}
@Override @Override
public EnumRarity getRarity(ItemStack stack) { public EnumRarity getRarity(ItemStack stack) {

View File

@ -102,7 +102,7 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier {
} }
} }
//world.markBlockForUpdate(x, y, z); world.markBlockForUpdate(x, y, z);
player.swingItem(); player.swingItem();
} }

View File

@ -212,6 +212,8 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc
} }
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
System.out.println("PRE " + world.isRemote + " " + stack.getItemDamage());
if(world.isRemote || this.breakAbility.size() < 2 || !canOperate(stack)) if(world.isRemote || this.breakAbility.size() < 2 || !canOperate(stack))
return super.onItemRightClick(stack, world, player); return super.onItemRightClick(stack, world, player);
@ -241,6 +243,8 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc
} }
world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F);
System.out.println("POST " + world.isRemote + " " + stack.getItemDamage());
return stack; return stack;
} }

View File

@ -2,6 +2,7 @@ package com.hbm.items.tool;
import java.util.List; import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.mob.siege.EntitySiegeTunneler; import com.hbm.entity.mob.siege.EntitySiegeTunneler;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.special.ItemKitCustom; import com.hbm.items.special.ItemKitCustom;
@ -29,13 +30,6 @@ public class ItemWandD extends Item {
if(pos != null) { if(pos != null) {
List<EntityZombie> zombies = world.getEntitiesWithinAABB(EntityZombie.class, AxisAlignedBB.getBoundingBox(pos.blockX - 2, pos.blockY - 2, pos.blockZ - 2, pos.blockX + 2, pos.blockY + 2, pos.blockZ + 2));
for(EntityZombie zombie : zombies) {
zombie.setChild(true);
zombie.setCurrentItemOrArmor(4, new ItemStack(ModItems.gas_mask_m65));
}
/*EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); /*EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world);
tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ);
tunneler.onSpawnWithEgg(null); tunneler.onSpawnWithEgg(null);
@ -43,17 +37,19 @@ public class ItemWandD extends Item {
//CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand);
/*int r = 5; int r = 5;
int x = pos.blockX;
int y = pos.blockY;
int z = pos.blockZ;
for(int i = x - r; i <= x + r; i++) { for(int i = x - r; i <= x + r; i++) {
for(int j = y - r; j <= y + r; j++) { for(int j = y - r; j <= y + r; j++) {
for(int k = z - r; k <= z + r; k++) { for(int k = z - r; k <= z + r; k++) {
if(world.getBlock(i, j, k) == ModBlocks.concrete_super)
world.setBlock(i, j, k, ModBlocks.vacuum); world.getBlock(i, j, k).updateTick(world, i, j, k, world.rand);
//world.getBlock(i, j, k).updateTick(world, i, j, k, world.rand);
} }
} }
}*/ }
//new Bunker().generate(world, world.rand, x, y, z); //new Bunker().generate(world, world.rand, x, y, z);

View File

@ -4,6 +4,7 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockMotherOfAllOres;
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
import com.hbm.config.GeneralConfig; import com.hbm.config.GeneralConfig;
import com.hbm.config.WorldConfig; import com.hbm.config.WorldConfig;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -44,6 +45,8 @@ import net.minecraft.tileentity.TileEntitySkull;
import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.BiomeGenForest;
import net.minecraft.world.biome.BiomeGenJungle;
import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraft.world.gen.feature.WorldGenMinable;
import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.IWorldGenerator;
@ -66,6 +69,22 @@ public class HbmWorldGen implements IWorldGenerator {
} }
private void generateSurface(World world, Random rand, int i, int j) { private void generateSurface(World world, Random rand, int i, int j) {
BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(i, j);
if(biome instanceof BiomeGenForest && rand.nextInt(16) == 0) {
DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE.ordinal());
}
if(biome == BiomeGenBase.roofedForest && rand.nextInt(8) == 0) {
DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE.ordinal());
}
if(biome instanceof BiomeGenJungle && rand.nextInt(8) == 0) {
DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.plant_flower, EnumFlowerType.TOBACCO.ordinal());
}
if(rand.nextInt(64) == 0) {
DungeonToolbox.generateFlowers(world, rand, i, j, ModBlocks.plant_flower, EnumFlowerType.WEED.ordinal());
}
if(WorldConfig.oilcoalSpawn > 0 && rand.nextInt(WorldConfig.oilcoalSpawn) == 0) if(WorldConfig.oilcoalSpawn > 0 && rand.nextInt(WorldConfig.oilcoalSpawn) == 0)
DungeonToolbox.generateOre(world, rand, i, j, 1, 64, 32, 32, ModBlocks.ore_coal_oil); DungeonToolbox.generateOre(world, rand, i, j, 1, 64, 32, 32, ModBlocks.ore_coal_oil);
@ -176,8 +195,6 @@ public class HbmWorldGen implements IWorldGenerator {
if (GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { if (GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) {
BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(i, j);
if (biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { if (biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) {
if (WorldConfig.radioStructure > 0 && rand.nextInt(WorldConfig.radioStructure) == 0) { if (WorldConfig.radioStructure > 0 && rand.nextInt(WorldConfig.radioStructure) == 0) {
for (int a = 0; a < 1; a++) { for (int a = 0; a < 1; a++) {

View File

@ -28,6 +28,8 @@ import com.hbm.tileentity.machine.TileEntityDummy;
import api.hbm.energy.IBatteryItem; import api.hbm.energy.IBatteryItem;
import api.hbm.energy.IEnergyConnector; import api.hbm.energy.IEnergyConnector;
import api.hbm.energy.IEnergyConnectorBlock; import api.hbm.energy.IEnergyConnectorBlock;
import api.hbm.fluid.IFluidConnector;
import api.hbm.fluid.IFluidConnectorBlock;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -128,6 +130,31 @@ public class Library {
return false; return false;
} }
public static boolean canConnectFluid(IBlockAccess world, int x, int y, int z, ForgeDirection dir, FluidType type) {
if(y > 255 || y < 0)
return false;
Block b = world.getBlock(x, y, z);
TileEntity te = world.getTileEntity(x, y, z);
if(b instanceof IFluidConnectorBlock) {
IFluidConnectorBlock con = (IFluidConnectorBlock) b;
if(con.canConnect(type, world, x, y, z, dir))
return true;
}
if(te instanceof IFluidConnector) {
IFluidConnector con = (IFluidConnector) te;
if(con.canConnect(type, dir))
return true;
}
return false;
}
public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type)
{ {

View File

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

View File

@ -241,6 +241,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser());
//AMS //AMS
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter());
@ -387,7 +388,7 @@ public class ClientProxy extends ServerProxy {
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_schrabidium, new ItemRenderWeaponFFColt(ResourceManager.ff_schrabidium, ResourceManager.ff_schrabidium, ResourceManager.ff_gun_dark)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_schrabidium, new ItemRenderWeaponFFColt(ResourceManager.ff_schrabidium, ResourceManager.ff_schrabidium, ResourceManager.ff_gun_dark));
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_cursed, new ItemRenderWeaponFFCursed()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_cursed, new ItemRenderWeaponFFCursed());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare, new ItemRenderWeaponFFNightmare()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare, new ItemRenderWeaponFFNightmare());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare2, new ItemRenderRevolverNightmare(ModItems.gun_revolver_nightmare2)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_nightmare2, new ItemRenderWeaponFFNightmareDark());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_fatman, new ItemRenderFatMan());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_proto, new ItemRenderFatMan()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_proto, new ItemRenderFatMan());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_mirv, new ItemRenderMIRVLauncher()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_mirv, new ItemRenderMIRVLauncher());
@ -1631,6 +1632,7 @@ public class ClientProxy extends ServerProxy {
case TOGGLE_JETPACK: return HbmKeybinds.jetpackKey.getIsKeyPressed(); case TOGGLE_JETPACK: return HbmKeybinds.jetpackKey.getIsKeyPressed();
case TOGGLE_HEAD: return HbmKeybinds.hudKey.getIsKeyPressed(); case TOGGLE_HEAD: return HbmKeybinds.hudKey.getIsKeyPressed();
case RELOAD: return HbmKeybinds.reloadKey.getIsKeyPressed(); case RELOAD: return HbmKeybinds.reloadKey.getIsKeyPressed();
case DASH: return HbmKeybinds.dashKey.getIsKeyPressed();
case CRANE_UP: return HbmKeybinds.craneUpKey.getIsKeyPressed(); case CRANE_UP: return HbmKeybinds.craneUpKey.getIsKeyPressed();
case CRANE_DOWN: return HbmKeybinds.craneDownKey.getIsKeyPressed(); case CRANE_DOWN: return HbmKeybinds.craneDownKey.getIsKeyPressed();
case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed(); case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed();

View File

@ -14,6 +14,7 @@ import net.minecraft.stats.Achievement;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.AchievementPage;
import net.minecraftforge.common.ChestGenHooks; import net.minecraftforge.common.ChestGenHooks;
import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager;
@ -39,6 +40,7 @@ import org.apache.logging.log4j.Logger;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockMotherOfAllOres;
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
import com.hbm.config.*; import com.hbm.config.*;
import com.hbm.creativetabs.*; import com.hbm.creativetabs.*;
import com.hbm.entity.effect.*; import com.hbm.entity.effect.*;
@ -981,6 +983,12 @@ public class MainRegistry {
new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur
new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos
//new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70);
//imagine adding flower entries but they don't actually do shit with the world generator
//"well but at least they work with bone meal, as advertised" except they fucking don't
/*BiomeGenBase.plains.addFlower(ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE.ordinal(), 10);
BiomeGenBase.roofedForest.addFlower(ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE.ordinal(), 10);
BiomeGenBase.jungle.addFlower(ModBlocks.plant_flower, EnumFlowerType.TOBACCO.ordinal(), 10);*/
} }
@EventHandler @EventHandler

View File

@ -291,6 +291,9 @@ public class ResourceManager {
//Radiolysis //Radiolysis
public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj")); public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj"));
//Electrolyser
public static final IModelCustom electrolyser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/electrolyser.obj"));
////Textures TEs ////Textures TEs
public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
@ -597,6 +600,9 @@ public class ResourceManager {
//Radiolysis //Radiolysis
public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png"); public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png");
//Electrolyser
public static final ResourceLocation electrolyser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electrolyser.png");
////Obj Items ////Obj Items
//Shimmer Sledge //Shimmer Sledge
@ -632,6 +638,7 @@ public class ResourceManager {
public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj")); public static final IModelCustom cursed_revolver = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cursed.obj"));
public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj")); public static final IModelCustom detonator_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/detonator_laser.obj"));
public static final IModelCustom spas_12 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/spas-12.obj")); public static final IModelCustom spas_12 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/spas-12.obj"));
public static final IModelCustom nightmare_dark = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/nightmare_dark.obj"));
public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj"));
@ -719,6 +726,7 @@ public class ResourceManager {
public static final ResourceLocation ff_wood = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/wood.png"); public static final ResourceLocation ff_wood = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/wood.png");
public static final ResourceLocation ff_wood_red = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/wood_red.png"); public static final ResourceLocation ff_wood_red = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/wood_red.png");
public static final ResourceLocation ff_cursed = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/cursed.png"); public static final ResourceLocation ff_cursed = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/cursed.png");
public static final ResourceLocation ff_nightmare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/nightmare.png");
public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png"); public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png");
public static final ResourceLocation grenade_aschrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_aschrab.png"); public static final ResourceLocation grenade_aschrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_aschrab.png");

View File

@ -3,6 +3,9 @@ package com.hbm.render.block;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.blocks.test.TestPipe; import com.hbm.blocks.test.TestPipe;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.lib.Library;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil; import com.hbm.render.util.ObjUtil;
import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.tileentity.network.TileEntityPipeBaseNT;
@ -24,7 +27,8 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler {
GL11.glPushMatrix(); GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, 0); IIcon iicon = block.getIcon(0, metadata);
IIcon overlay = block.getIcon(1, metadata);
tessellator.setColorOpaque_F(1, 1, 1); tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) { if(renderer.hasOverrideBlockTexture()) {
@ -39,6 +43,14 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pZ", iicon, tessellator, 0, false); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pZ", iicon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nZ", iicon, tessellator, 0, false); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nZ", iicon, tessellator, 0, false);
tessellator.draw(); tessellator.draw();
tessellator.startDrawingQuads();
ObjUtil.setColor(Fluids.NONE.getColor());
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pX", overlay, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nX", overlay, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "pZ", overlay, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_neo, "nZ", overlay, tessellator, 0, false);
ObjUtil.clearColor();
tessellator.draw();
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
@ -47,35 +59,39 @@ public class RenderTestPipe implements ISimpleBlockRenderingHandler {
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, 0); int meta = world.getBlockMetadata(x, y, z);
IIcon overlay = block.getIcon(1, 0); IIcon iicon = block.getIcon(0, meta);
IIcon overlay = block.getIcon(1, meta);
tessellator.setColorOpaque_F(1, 1, 1); tessellator.setColorOpaque_F(1, 1, 1);
if(renderer.hasOverrideBlockTexture()) { if(renderer.hasOverrideBlockTexture()) {
iicon = renderer.overrideBlockTexture; iicon = renderer.overrideBlockTexture;
} }
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
boolean pX = world.getTileEntity(x + 1, y, z) instanceof IFluidConnector;
boolean nX = world.getTileEntity(x - 1, y, z) instanceof IFluidConnector;
boolean pY = world.getTileEntity(x, y + 1, z) instanceof IFluidConnector;
boolean nY = world.getTileEntity(x, y - 1, z) instanceof IFluidConnector;
boolean pZ = world.getTileEntity(x, y, z + 1) instanceof IFluidConnector;
boolean nZ = world.getTileEntity(x, y, z - 1) instanceof IFluidConnector;
int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0);
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);
TileEntity te = world.getTileEntity(x, y, z); TileEntity te = world.getTileEntity(x, y, z);
int color = 0xff00ff; int color = 0xff00ff;
FluidType type = Fluids.NONE;
if(te instanceof TileEntityPipeBaseNT) { if(te instanceof TileEntityPipeBaseNT) {
color = ((TileEntityPipeBaseNT) te).getType().getColor(); TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te;
color = pipe.getType().getColor();
type = pipe.getType();
} }
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type);
boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.POS_X, type);
boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.NEG_Y, type);
boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.POS_Y, type);
boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.NEG_Z, type);
boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.POS_Z, type);
int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0);
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);
if(mask == 0) { if(mask == 0) {
renderDuct(iicon, overlay, color, tessellator, "pX"); renderDuct(iicon, overlay, color, tessellator, "pX");

View File

@ -1237,6 +1237,17 @@ public class ItemRenderLibrary {
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
}}); }});
renderers.put(Item.getItemFromBlock(ModBlocks.machine_electrolyser), new ItemRenderBase( ) {
public void renderInventory() {
GL11.glScaled(3, 3, 3);
}
public void renderCommon() {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.electrolyser_tex); ResourceManager.electrolyser.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}});
renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) { renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) {
public void renderInventory() { public void renderInventory() {
GL11.glTranslated(0, -5, 0); GL11.glTranslated(0, -5, 0);

View File

@ -0,0 +1,91 @@
package com.hbm.render.item.weapon;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
public class ItemRenderWeaponFFNightmareDark implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type) {
case EQUIPPED:
case EQUIPPED_FIRST_PERSON:
case ENTITY:
case INVENTORY:
return true;
default: return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
switch(type) {
case EQUIPPED_FIRST_PERSON:
double s0 = 0.4D;
GL11.glTranslated(0.75, 0.45, 0);
GL11.glScaled(s0, s0, s0);
GL11.glRotated(170, 0, 1, 0);
GL11.glRotated(25, 0, 0, -1);
break;
case EQUIPPED:
double scale = 0.4D;
GL11.glRotated(105, 0, 1, 0);
GL11.glRotated(-10, 1, 0, 0);
GL11.glRotated(10, 0, 0, 1);
GL11.glTranslated(-0.125, 0.1, 0.5);
GL11.glScaled(scale, scale, scale);
break;
case ENTITY:
double s1 = 0.25D;
GL11.glScaled(s1, s1, s1);
GL11.glRotated(90, 0, 1, 0);
break;
case INVENTORY:
GL11.glEnable(GL11.GL_LIGHTING);
double s = 3D;
GL11.glTranslated(10, 9, 0);
GL11.glRotated(-135, 0, 0, 1);
GL11.glRotated(180, 0, 1, 0);
GL11.glScaled(s, s, -s);
break;
default: break;
}
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_nightmare_tex);
ResourceManager.nightmare_dark.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.machine.TileEntityElectrolyser;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderElectrolyser extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
TileEntityElectrolyser electrolyser = (TileEntityElectrolyser) te;
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
switch(te.getBlockMetadata() - BlockDummyable.offset) {
case 4: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glRotated(180, 0, 1, 0);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.electrolyser_tex);
ResourceManager.electrolyser.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -85,11 +85,16 @@ public class ObjUtil {
normal.rotateAroundY(rot); normal.rotateAroundY(rot);
tes.setNormal((float)normal.xCoord, (float)normal.yCoord, (float)normal.zCoord); tes.setNormal((float)normal.xCoord, (float)normal.yCoord, (float)normal.zCoord);
if(shadow) { if(shadow || hasColor) {
float brightness = ((float)normal.yCoord + 0.7F) * 0.9F - (float)Math.abs(normal.xCoord) * 0.1F + (float)Math.abs(normal.zCoord) * 0.1F;
float brightness = 1.0F;
if(brightness < 0.45F)
brightness = 0.45F; if(shadow) {
brightness = ((float)normal.yCoord + 0.7F) * 0.9F - (float)Math.abs(normal.xCoord) * 0.1F + (float)Math.abs(normal.zCoord) * 0.1F;
if(brightness < 0.45F)
brightness = 0.45F;
}
if(hasColor) { if(hasColor) {
tes.setColorOpaque((int)(red * brightness), (int)(green * brightness), (int)(blue * brightness)); tes.setColorOpaque((int)(red * brightness), (int)(green * brightness), (int)(blue * brightness));

View File

@ -250,6 +250,7 @@ public class TileMappings {
put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower");
put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor");
put(TileEntityMachineSolidifier.class, "tileentity_solidifier"); put(TileEntityMachineSolidifier.class, "tileentity_solidifier");
put(TileEntityElectrolyser.class, "tileentity_electrolyser");
put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); put(TileEntityMachineChemplant.class, "tileentity_chemical_plant");
put(TileEntityMachineChemfac.class, "tileentity_chemfac"); put(TileEntityMachineChemfac.class, "tileentity_chemfac");

View File

@ -87,7 +87,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
} }
public boolean hasPower() { public boolean hasPower() {
return power > 0; return power >= maxPower / 10;
} }
public boolean hasEnoughWater() { public boolean hasEnoughWater() {
@ -195,5 +195,4 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
public long getMaxPower() { public long getMaxPower() {
return maxPower; return maxPower;
} }
} }

View File

@ -119,4 +119,9 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor {
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {
return 65536.0D; return 65536.0D;
} }
@Override
public long getMaxPower() {
return maxPower;
}
} }

View File

@ -0,0 +1,187 @@
package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor{
public long power;
public static final long maxPower = 20000000;
public static final int usageBase = 10000;
public int usage;
public int progressFluid;
public static final int processFluidTimeBase = 100;
public int processFluidTime;
public int progressOre;
public static final int processOreTimeBase = 1000;
public int processOreTime;
public FluidTank[] tanks;
public TileEntityElectrolyser() {
super(24);
tanks = new FluidTank[3];
tanks[0] = new FluidTank(Fluids.WATER, 16000, 0);
tanks[1] = new FluidTank(Fluids.HYDROGEN, 16000, 1);
tanks[2] = new FluidTank(Fluids.OXYGEN, 16000, 2);
}
@Override
public String getName() {
return "container.machineElectrolyser";
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", this.power);
data.setInteger("progressFluid", this.progressFluid);
data.setInteger("progressOre", this.progressOre);
data.setInteger("usage", this.usage);
data.setInteger("processFluidTime", this.processFluidTime);
data.setInteger("processOreTime", this.processOreTime);
this.networkPack(data, 50);
fillFluidInit(tanks[1].getTankType());
fillFluidInit(tanks[2].getTankType());
}
}
@Override
public void fillFluidInit(FluidType type) {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type);
fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type);
fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type);
fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type);
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 3,
yCoord - 0,
zCoord - 4,
xCoord + 3,
yCoord + 4,
zCoord + 4
);
}
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
@Override
public long getPower() {
return this.power;
}
@Override
public long getMaxPower() {
return maxPower;
}
@Override
public void setFillForSync(int fill, int index) {
tanks[index].setFill(fill);
}
@Override
public void setFluidFill(int fill, FluidType type) {
for(int i = 0; i < 3; i++) {
if(type == tanks[i].getTankType())
tanks[i].setFill(fill);
}
}
@Override
public void setTypeForSync(FluidType type, int index) {
tanks[index].setTankType(type);
}
@Override
public int getFluidFill(FluidType type) {
for(int i = 0; i < 3; i++) {
if(type == tanks[i].getTankType() && tanks[i].getFill() != 0)
return tanks[i].getFill();
}
return 0;
}
@Override
public int getMaxFluidFill(FluidType type) {
for(int i = 0; i < 3; i++) {
if(type == tanks[i].getTankType() && tanks[i].getMaxFill() != 0)
return tanks[i].getMaxFill();
}
return 0;
}
@Override
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public boolean getTact() {
return worldObj.getTotalWorldTime() % 20 < 10;
}
@Override
public List<IFluidAcceptor> getFluidList(FluidType type) {
return new ArrayList<IFluidAcceptor>();
}
@Override
public void clearFluidList(FluidType type) {
return;
}
@Override
public void setPower(long power) {
this.power = power;
}
}

View File

@ -227,7 +227,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements
} }
public boolean hasPower() { public boolean hasPower() {
return power > 0; return power >= 250;
} }
public boolean isProcessing() { public boolean isProcessing() {
@ -317,7 +317,6 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements
//TODO: fix this punjabi trash //TODO: fix this punjabi trash
@Override @Override
public void updateEntity() { public void updateEntity() {
this.hasPower();
boolean flag1 = false; boolean flag1 = false;
if(!worldObj.isRemote) { if(!worldObj.isRemote) {

View File

@ -261,7 +261,7 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem
heat -= 30; heat -= 30;
} }
if(power > 0) { if(power >= 150) {
power -= 150; power -= 150;
heat += Math.min(((double)power / (double)maxPower * 300), 150); heat += Math.min(((double)power / (double)maxPower * 300), 150);
} else { } else {

View File

@ -1,81 +1,81 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import com.hbm.inventory.FluidTank; import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityTowerLarge extends TileEntityCondenser { public class TileEntityTowerLarge extends TileEntityCondenser {
public TileEntityTowerLarge() { public TileEntityTowerLarge() {
tanks = new FluidTank[2]; tanks = new FluidTank[2];
tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 10000, 0); tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 10000, 0);
tanks[1] = new FluidTank(Fluids.WATER, 10000, 1); tanks[1] = new FluidTank(Fluids.WATER, 10000, 1);
} }
@Override @Override
public void updateEntity() { public void updateEntity() {
super.updateEntity(); super.updateEntity();
if(worldObj.isRemote) { if(worldObj.isRemote) {
if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0) { if(this.waterTimer > 0 && this.worldObj.getTotalWorldTime() % 4 == 0) {
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();
data.setString("type", "tower"); data.setString("type", "tower");
data.setFloat("lift", 0.5F); data.setFloat("lift", 0.5F);
data.setFloat("base", 1F); data.setFloat("base", 1F);
data.setFloat("max", 10F); data.setFloat("max", 10F);
data.setInteger("life", 750 + worldObj.rand.nextInt(250)); data.setInteger("life", 750 + worldObj.rand.nextInt(250));
data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5); data.setDouble("posX", xCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5);
data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5); data.setDouble("posZ", zCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5);
data.setDouble("posY", yCoord + 1); data.setDouble("posY", yCoord + 1);
MainRegistry.proxy.effectNT(data); MainRegistry.proxy.effectNT(data);
} }
} }
} }
@Override @Override
public void fillFluidInit(FluidType type) { public void fillFluidInit(FluidType type) {
for(int i = 2; i <= 6; i++) { for(int i = 2; i <= 6; i++) {
ForgeDirection dir = ForgeDirection.getOrientation(i); ForgeDirection dir = ForgeDirection.getOrientation(i);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
fillFluid(xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, getTact(), type); fillFluid(xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, getTact(), type);
fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, getTact(), type); fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, getTact(), type);
fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, getTact(), type); fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, getTact(), type);
} }
} }
AxisAlignedBB bb = null; AxisAlignedBB bb = null;
@Override @Override
public AxisAlignedBB getRenderBoundingBox() { public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) { if(bb == null) {
bb = AxisAlignedBB.getBoundingBox( bb = AxisAlignedBB.getBoundingBox(
xCoord - 4, xCoord - 4,
yCoord, yCoord,
zCoord - 4, zCoord - 4,
xCoord + 5, xCoord + 5,
yCoord + 13, yCoord + 13,
zCoord + 5 zCoord + 5
); );
} }
return bb; return bb;
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {
return 65536.0D; return 65536.0D;
} }
} }

View File

@ -7,17 +7,25 @@ import api.hbm.fluid.IFluidConductor;
import api.hbm.fluid.IPipeNet; import api.hbm.fluid.IPipeNet;
import api.hbm.fluid.PipeNet; import api.hbm.fluid.PipeNet;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor { public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor {
private IPipeNet network; private IPipeNet network;
protected FluidType type = Fluids.NONE; protected FluidType type = Fluids.NONE;
protected FluidType lastType = Fluids.NONE;
@Override @Override
public void updateEntity() { public void updateEntity() {
if(worldObj.isRemote && lastType != type) {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
lastType = type;
}
if(!worldObj.isRemote && canUpdate()) { if(!worldObj.isRemote && canUpdate()) {
@ -40,10 +48,13 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor
this.type = type; this.type = type;
this.markDirty(); this.markDirty();
if(worldObj instanceof WorldServer) { if(this.network != null)
WorldServer world = (WorldServer) worldObj; this.network.destroy();
world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); }
}
@Override
public boolean canConnect(FluidType type, ForgeDirection dir) {
return dir != ForgeDirection.UNKNOWN && type == this.type;
} }
protected void connect() { protected void connect() {
@ -113,6 +124,18 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor
this.network = network; this.network = network;
} }
@Override
public Packet getDescriptionPacket() {
NBTTagCompound nbt = new NBTTagCompound();
this.writeToNBT(nbt);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt);
}
@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
this.readFromNBT(pkt.func_148857_g());
}
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);

View File

@ -9,6 +9,7 @@ import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenFlowers;
import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraft.world.gen.feature.WorldGenMinable;
public class DungeonToolbox { public class DungeonToolbox {
@ -87,4 +88,13 @@ public class DungeonToolbox {
(new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z); (new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z);
} }
} }
private static WorldGenFlowers genFlowers = new WorldGenFlowers(null);
public static void generateFlowers(World world, Random rand, int chunkX, int chunkZ, Block flower, int meta) {
int x = chunkX + rand.nextInt(16);
int z = chunkZ + rand.nextInt(16);
int y = world.getHeightValue(x, z);
genFlowers.func_150550_a(flower, meta);
genFlowers.generate(world, rand, x, y, z);
}
} }

View File

@ -109,6 +109,7 @@ bomb.triggered=Erfolgreich ausgelöst!
book.test.page1=Testseite 1 book.test.page1=Testseite 1
chem.ARSENIC=Arsenextraktion
chem.ASPHALT=Asphaltherstellung chem.ASPHALT=Asphaltherstellung
chem.BAKELITE=Bakelitherstellung chem.BAKELITE=Bakelitherstellung
chem.BALEFIRE=BF-Raketentreibstoffherstellung chem.BALEFIRE=BF-Raketentreibstoffherstellung
@ -527,6 +528,7 @@ hbmfluid.schrabidic=Schrabidische Säure
hbmfluid.smear=Industrieöl hbmfluid.smear=Industrieöl
hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.spentsteam=Niedrigdruckdampf
hbmfluid.steam=Dampf hbmfluid.steam=Dampf
hbmfluid.sulfuric_acid=Schwefelsäure
hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.superhotsteam=Superverdichteter Dampf
hbmfluid.tritium=Tritium hbmfluid.tritium=Tritium
hbmfluid.uf6=Uranhexafluorid hbmfluid.uf6=Uranhexafluorid
@ -938,6 +940,7 @@ item.briquette_lignite.name=Braunkohlebrikett
item.bucket_acid.name=Säureeimer item.bucket_acid.name=Säureeimer
item.bucket_mud.name=Eimer mit giftigem Schlamm item.bucket_mud.name=Eimer mit giftigem Schlamm
item.bucket_schrabidic_acid.name=Eimer mit Schrabidischer Säure item.bucket_schrabidic_acid.name=Eimer mit Schrabidischer Säure
item.bucket_sulfuric_acid.name=Eimer mit Schwefelsäure
item.bucket_toxic.name=Eimer mit stereotypischem grünen Schleim item.bucket_toxic.name=Eimer mit stereotypischem grünen Schleim
item.burnt_bark.name=Verbrannte Rinde item.burnt_bark.name=Verbrannte Rinde
item.can_bepis.name=Bepis item.can_bepis.name=Bepis
@ -2139,7 +2142,7 @@ item.pin.name=Haarklammer
item.pipes_steel.name=Stahlrohre item.pipes_steel.name=Stahlrohre
item.pirfenidone.name=Pirfenidon item.pirfenidone.name=Pirfenidon
item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet.
item.piston_selenium.name=Sternmotorenkolben item.piston_selenium.name=Motorkolben
item.plan_c.name=Plan C item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte
item.plate_aluminium.name=Aluminiumplatte item.plate_aluminium.name=Aluminiumplatte
@ -3072,6 +3075,8 @@ tile.concrete_colored.white.name=Weißer Beton
tile.concrete_colored.yellow.name=Gelber Beton tile.concrete_colored.yellow.name=Gelber Beton
tile.concrete_pillar.name=Stahlbetonsäule tile.concrete_pillar.name=Stahlbetonsäule
tile.concrete_smooth.name=Beton tile.concrete_smooth.name=Beton
tile.concrete_super.name=Super Beton
tile.concrete_super_broken.name=Schimmliger Schutt
tile.corium_block.name=Corium tile.corium_block.name=Corium
tile.crashed_bomb.name=Blindgänger tile.crashed_bomb.name=Blindgänger
tile.crate.name=Vorratskiste tile.crate.name=Vorratskiste
@ -3257,6 +3262,7 @@ tile.lamp_tritium_green_off.name=Grüne Tritiumlampe
tile.lamp_tritium_green_on.name=Grüne Tritiumlampe tile.lamp_tritium_green_on.name=Grüne Tritiumlampe
tile.launch_pad.name=Raketenabschussrampe tile.launch_pad.name=Raketenabschussrampe
tile.launch_table.name=Große Startrampe tile.launch_table.name=Große Startrampe
tile.leaves_layer.name=Totes Laub
tile.lox_barrel.name=LOX-Fass tile.lox_barrel.name=LOX-Fass
tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_amgen.name=Umgebungsstrahlungs-Generator
tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_off.name=Lichtbogenofen
@ -3473,6 +3479,10 @@ tile.pink_log.name=Pinkes Holz
tile.pink_planks.name=Pinke Holzbretter tile.pink_planks.name=Pinke Holzbretter
tile.pink_slab.name=Pinke Holzstufe tile.pink_slab.name=Pinke Holzstufe
tile.pink_stairs.name=Pinke Holztreppen tile.pink_stairs.name=Pinke Holztreppen
tile.plant_flower.foxglove.name=Roter Fingerhut
tile.plant_flower.nightshade.name=Schwarze Tollkirsche
tile.plant_flower.tobacco.name=Tabakpflanze
tile.plant_flower.weed.name=Weed Version 420(0)
tile.plasma.name=Plasma tile.plasma.name=Plasma
tile.plasma_heater.name=Plasmaerhitzer tile.plasma_heater.name=Plasmaerhitzer
tile.pole_satellite_receiver.name=Satellitenschüssel tile.pole_satellite_receiver.name=Satellitenschüssel
@ -3574,6 +3584,7 @@ tile.steel_poles.name=Stahlmasten
tile.steel_roof.name=Flaches Stachldach tile.steel_roof.name=Flaches Stachldach
tile.steel_scaffold.name=Stahlgerüst tile.steel_scaffold.name=Stahlgerüst
tile.steel_wall.name=Stahlwand tile.steel_wall.name=Stahlwand
tile.stone_cracked.name=Rissiger Stein
tile.stone_depth.name=Tiefenfels tile.stone_depth.name=Tiefenfels
tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_depth_nether.name=Nether-Tiefenfels
tile.stone_gneiss.name=Graphitschiefer tile.stone_gneiss.name=Graphitschiefer

View File

@ -277,6 +277,7 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea
#book.rbmk.title16=Meltdown #book.rbmk.title16=Meltdown
#book.rbmk.page16=§4§lAvoid. #book.rbmk.page16=§4§lAvoid.
chem.ARSENIC=Arsenic Extraction
chem.ASPHALT=Asphalt Production chem.ASPHALT=Asphalt Production
chem.BAKELITE=Bakelite Production chem.BAKELITE=Bakelite Production
chem.BALEFIRE=BF Rocket Fuel Mixing chem.BALEFIRE=BF Rocket Fuel Mixing
@ -652,6 +653,7 @@ hbm.key.craneMoveDown=Move Crane Backward
hbm.key.craneMoveLeft=Move Crane Left hbm.key.craneMoveLeft=Move Crane Left
hbm.key.craneMoveRight=Move Crane Right hbm.key.craneMoveRight=Move Crane Right
hbm.key.craneMoveUp=Move Crane Forward hbm.key.craneMoveUp=Move Crane Forward
hbm.key.dash=Dash (Unbind from Crouch in config)
hbm.key.toggleBack=Toggle Backpack hbm.key.toggleBack=Toggle Backpack
hbm.key.toggleHUD=Toggle HUD hbm.key.toggleHUD=Toggle HUD
hbm.key.reload=Reload hbm.key.reload=Reload
@ -720,6 +722,7 @@ hbmfluid.schrabidic=Schrabidic Acid
hbmfluid.smear=Industrial Oil hbmfluid.smear=Industrial Oil
hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.spentsteam=Low-Pressure Steam
hbmfluid.steam=Steam hbmfluid.steam=Steam
hbmfluid.sulfuric_acid=Sulfuric Acid
hbmfluid.superhotsteam=Super Dense Steam hbmfluid.superhotsteam=Super Dense Steam
hbmfluid.tritium=Tritium hbmfluid.tritium=Tritium
hbmfluid.uf6=Uranium Hexafluoride hbmfluid.uf6=Uranium Hexafluoride
@ -1147,6 +1150,7 @@ item.briquette_lignite.name=Lignite Briquette
item.bucket_acid.name=Bucket of Acid item.bucket_acid.name=Bucket of Acid
item.bucket_mud.name=Bucket of Poisonous Mud item.bucket_mud.name=Bucket of Poisonous Mud
item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid
item.bucket_sulfuric_acid.name=Bucket of Sulfuric Acid
item.bucket_toxic.name=Bucket of Stereotypical Green Ooze item.bucket_toxic.name=Bucket of Stereotypical Green Ooze
item.burnt_bark.name=Burnt Bark item.burnt_bark.name=Burnt Bark
item.burnt_bark.desc=A piece of bark from an exploded golden oak tree. item.burnt_bark.desc=A piece of bark from an exploded golden oak tree.
@ -2429,7 +2433,7 @@ item.pin.desc="*Unmodified* success rate of picking a standard lock is ~10%.
item.pipes_steel.name=Steel Pipes item.pipes_steel.name=Steel Pipes
item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.pipes_steel.desc=Uncrafting was omitted due to tax evasion.
item.pirfenidone.name=Pirfenidone item.pirfenidone.name=Pirfenidone
item.piston_selenium.name=Radial Engine Piston item.piston_selenium.name=Combustion Engine Piston
item.plan_c.name=Plan C item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Advanced Alloy Plate item.plate_advanced_alloy.name=Advanced Alloy Plate
item.plate_aluminium.name=Aluminium Plate item.plate_aluminium.name=Aluminium Plate
@ -3444,6 +3448,8 @@ tile.concrete_colored.white.name=White Concrete
tile.concrete_colored.yellow.name=Yellow Concrete tile.concrete_colored.yellow.name=Yellow Concrete
tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar
tile.concrete_smooth.name=Concrete tile.concrete_smooth.name=Concrete
tile.concrete_super.name=Über Concrete
tile.concrete_super_broken.name=Moldy Debris
tile.corium_block.name=Corium tile.corium_block.name=Corium
tile.crashed_bomb.name=Dud tile.crashed_bomb.name=Dud
tile.crate.name=Supply Crate tile.crate.name=Supply Crate
@ -3629,6 +3635,7 @@ tile.lamp_tritium_green_off.name=Green Tritium Lamp
tile.lamp_tritium_green_on.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp
tile.launch_pad.name=Missile Launch Pad tile.launch_pad.name=Missile Launch Pad
tile.launch_table.name=Large Launch Pad tile.launch_table.name=Large Launch Pad
tile.leaves_layer.name=Fallen Leaves
tile.lox_barrel.name=LOX Barrel tile.lox_barrel.name=LOX Barrel
tile.machine_amgen.name=Ambience Radiation Generator tile.machine_amgen.name=Ambience Radiation Generator
tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_off.name=Arc Furnace
@ -3846,6 +3853,10 @@ tile.pink_log.name=Pink Log
tile.pink_planks.name=Pink Wood Planks tile.pink_planks.name=Pink Wood Planks
tile.pink_slab.name=Pink Wood Slab tile.pink_slab.name=Pink Wood Slab
tile.pink_stairs.name=Pink Wood Stairs tile.pink_stairs.name=Pink Wood Stairs
tile.plant_flower.foxglove.name=Foxglove
tile.plant_flower.nightshade.name=Deadly Nightshade
tile.plant_flower.tobacco.name=Tobacco Plant
tile.plant_flower.weed.name=Weed Version 420(0)
tile.plasma.name=Plasma tile.plasma.name=Plasma
tile.plasma_heater.name=Plasma Heater tile.plasma_heater.name=Plasma Heater
tile.pole_satellite_receiver.name=Satellite Dish tile.pole_satellite_receiver.name=Satellite Dish
@ -3947,6 +3958,7 @@ tile.steel_poles.name=Steel Pole
tile.steel_roof.name=Flat Steel Roof tile.steel_roof.name=Flat Steel Roof
tile.steel_scaffold.name=Steel Scaffold tile.steel_scaffold.name=Steel Scaffold
tile.steel_wall.name=Steel Wall tile.steel_wall.name=Steel Wall
tile.stone_cracked.name=Cracked Stone
tile.stone_depth.name=Depth Rock tile.stone_depth.name=Depth Rock
tile.stone_depth_nether.name=Nether Depth Rock tile.stone_depth_nether.name=Nether Depth Rock
tile.stone_gneiss.name=Graphitic Schist tile.stone_gneiss.name=Graphitic Schist

View File

@ -301,6 +301,7 @@ hbm.key.craneMoveDown=Двигать кран назад
hbm.key.craneMoveLeft=Двигать кран влево hbm.key.craneMoveLeft=Двигать кран влево
hbm.key.craneMoveRight=Двигать кран вправо hbm.key.craneMoveRight=Двигать кран вправо
hbm.key.craneMoveUp=Двигать кран вперёд hbm.key.craneMoveUp=Двигать кран вперёд
hbm.key.dash=Деш
hbm.key.toggleBack=Включить ранец hbm.key.toggleBack=Включить ранец
hbm.key.toggleHUD=Включить HUD hbm.key.toggleHUD=Включить HUD
hbm.key.reload=Перезарядить hbm.key.reload=Перезарядить
@ -854,6 +855,7 @@ hbmfluid.coalgas=Угольный газ
hbmfluid.enderjuice=Эндер-сок hbmfluid.enderjuice=Эндер-сок
hbmfluid.xpjuice=Жидкий опыт hbmfluid.xpjuice=Жидкий опыт
hbmfluid.coalgas_leaded=Этилированный угольный газ hbmfluid.coalgas_leaded=Этилированный угольный газ
hbmfluid.sulfuric_acid=Серная кислота
//Special for 1.12.2 version// //Special for 1.12.2 version//
fluid.hbmsteam=Пар fluid.hbmsteam=Пар
@ -1035,6 +1037,7 @@ chem.PETROIL_LEADED=Смешивание этилированного бензи
chem.RUBBER=Производство резины chem.RUBBER=Производство резины
chem.TNT=Синтез ТНТ chem.TNT=Синтез ТНТ
chem.DYNAMITE=Синтез динамита chem.DYNAMITE=Синтез динамита
chem.ARSENIC=Экстракция мышьяка
item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core
item.record.ss.desc=Valve - Sector Sweep item.record.ss.desc=Valve - Sector Sweep
@ -1897,6 +1900,8 @@ item.ingot_fiberglass.name=Стекловолокно
item.ingot_fiberglass.desc=С высоким содержанием волокна, с высоким содержанием стекла. Все, что нужно организму. item.ingot_fiberglass.desc=С высоким содержанием волокна, с высоким содержанием стекла. Все, что нужно организму.
item.ingot_asbestos.name=Асбестовый лист item.ingot_asbestos.name=Асбестовый лист
item.ingot_asbestos.desc=§o"Наполненный жизнью, неуверенностью в себе и асбестом. Это приходит вместе с воздухом."§r item.ingot_asbestos.desc=§o"Наполненный жизнью, неуверенностью в себе и асбестом. Это приходит вместе с воздухом."§r
item.ingot_arsenic.name=Слиток мышьяка
item.nugget_arsenic.name=Самородок мышьяка
item.solid_fuel.name=Твердое топливо item.solid_fuel.name=Твердое топливо
item.solid_fuel_presto.name=Топливное полено item.solid_fuel_presto.name=Топливное полено
@ -1999,6 +2004,7 @@ item.wire_gold.name=Золотой провод
item.wire_schrabidium.name=Шрабидиевый провод item.wire_schrabidium.name=Шрабидиевый провод
item.circuit_raw.name=Сборка простой микросхемы item.circuit_raw.name=Сборка простой микросхемы
item.circuit_bismuth_raw.name=Сборка универсального чипсета item.circuit_bismuth_raw.name=Сборка универсального чипсета
item.circuit_arsenic_raw.name=Сборка гибкой микросхемы
item.circuit_tantalium_raw.name=Сборка конденсаторной платы item.circuit_tantalium_raw.name=Сборка конденсаторной платы
item.circuit_aluminium.name=Простая микросхема item.circuit_aluminium.name=Простая микросхема
item.circuit_copper.name=Продвинутая микросхема item.circuit_copper.name=Продвинутая микросхема
@ -2006,6 +2012,7 @@ item.circuit_red_copper.name=Усовершенствованная микрос
item.circuit_gold.name=Разогнанная микросхема item.circuit_gold.name=Разогнанная микросхема
item.circuit_schrabidium.name=Высокопроизводительная микросхема item.circuit_schrabidium.name=Высокопроизводительная микросхема
item.circuit_bismuth.name=Универсальный чипсет item.circuit_bismuth.name=Универсальный чипсет
item.circuit_arsenic.name=Гибкая микросхема
item.circuit_tantalium.name=Конденсаторная плата item.circuit_tantalium.name=Конденсаторная плата
item.circuit_targeting_tier1.name=Печатная плата военного класса (Уровень 1) item.circuit_targeting_tier1.name=Печатная плата военного класса (Уровень 1)
item.circuit_targeting_tier2.name=Печатная плата военного класса (Уровень 2) item.circuit_targeting_tier2.name=Печатная плата военного класса (Уровень 2)
@ -2072,7 +2079,7 @@ item.assembly_actionexpress.name=Сборка .50 AE пули
item.assembly_calamity.name=Сборка .50 BMG пули item.assembly_calamity.name=Сборка .50 BMG пули
item.assembly_lacunae.name=Сборка .5мм пули item.assembly_lacunae.name=Сборка .5мм пули
item.piston_selenium.name=Поршень радиального двигателя item.piston_selenium.name=Поршень двигателя внутреннего сгорания
tile.block_aluminium.name=Алюминиевый блок tile.block_aluminium.name=Алюминиевый блок
tile.block_copper.name=Медный блок tile.block_copper.name=Медный блок
@ -2284,7 +2291,12 @@ tile.block_cap_sunset.name=Блок крышек от Сансет Сарсап
tile.block_tritium.name=Блок тритиевых пробирок tile.block_tritium.name=Блок тритиевых пробирок
tile.hazmat.name=Блок защитной ткани tile.hazmat.name=Блок защитной ткани
tile.deco_emitter.name=Декоративный источник света tile.deco_emitter.name=Декоративный источник света
tile.plant_flower.foxglove.name=Наперстянка
tile.plant_flower.nightshade.name=Белладонна
tile.plant_flower.tobacco.name=Табак
tile.plant_flower.weed.name=Травка Версия 420(0)
tile.stone_cracked.name=Треснутый камень
tile.reinforced_brick.name=Усиленный камень tile.reinforced_brick.name=Усиленный камень
tile.reinforced_glass.name=Усиленное стекло tile.reinforced_glass.name=Усиленное стекло
tile.reinforced_sand.name=Усиленный песчаник tile.reinforced_sand.name=Усиленный песчаник
@ -2396,6 +2408,8 @@ tile.ladder_sturdy.name=Прочная деревянная лестница
tile.ladder_titanium.name=Титановая лестница tile.ladder_titanium.name=Титановая лестница
tile.ladder_tungsten.name=Вольфрамовая лестница tile.ladder_tungsten.name=Вольфрамовая лестница
tile.volcano_core.name=Вулканическое ядро tile.volcano_core.name=Вулканическое ядро
tile.concrete_super.name=Убер-бетон
tile.concrete_super_broken.name=Замшелый бетонные обломки
tile.gravel_obsidian.name=Измельченный обсидиан tile.gravel_obsidian.name=Измельченный обсидиан
tile.gravel_diamond.name=Измельченные алмазы tile.gravel_diamond.name=Измельченные алмазы
@ -2995,11 +3009,13 @@ tile.dirt_oily.name=Пропитанная нефтью земля
tile.waste_trinitite.name=Тринититовая руда tile.waste_trinitite.name=Тринититовая руда
tile.waste_trinitite_red.name=Красная тринититовая руда tile.waste_trinitite_red.name=Красная тринититовая руда
tile.waste_leaves.name=Мёртвые листья tile.waste_leaves.name=Мёртвые листья
tile.leaves_layer.name=Упавшие листья
tile.waste_log.name=Обугленное бревно tile.waste_log.name=Обугленное бревно
tile.waste_planks.name=Обугленные деревянные доски tile.waste_planks.name=Обугленные деревянные доски
item.trinitite.name=Тринитит item.trinitite.name=Тринитит
item.nuclear_waste.name=Ядерные отходы item.nuclear_waste.name=Ядерные отходы
item.scrap_nuclear.name=Радиоактивный мусор item.scrap_nuclear.name=Радиоактивный мусор
item.scrap_oil.name=Нефтяные отходы
item.scrap_plastic.name=Куски пластмассы item.scrap_plastic.name=Куски пластмассы
item.nuclear_waste_tiny.name=Маленькая кучка ядерных отходов item.nuclear_waste_tiny.name=Маленькая кучка ядерных отходов
item.nuclear_waste_vitrified.name=Остеклованные ядерные отходы item.nuclear_waste_vitrified.name=Остеклованные ядерные отходы
@ -4289,6 +4305,7 @@ tile.toxic_block.name=Стереотипная зелёная слизь
fluid.toxic_fluid=Стереотипная зелёная слизь fluid.toxic_fluid=Стереотипная зелёная слизь
item.bucket_toxic.name=Ведро стереотипной зелёной слизи item.bucket_toxic.name=Ведро стереотипной зелёной слизи
item.bucket_schrabidic_acid.name=Ведро шрабидиевой кислоты item.bucket_schrabidic_acid.name=Ведро шрабидиевой кислоты
item.bucket_sulfuric_acid.name=Ведро серной кислоты
item.tank_waste_0.name=Контейнер с отходами item.tank_waste_0.name=Контейнер с отходами
item.tank_waste_1.name=Контейнер с отходами item.tank_waste_1.name=Контейнер с отходами
item.tank_waste_2.name=Контейнер с отходами item.tank_waste_2.name=Контейнер с отходами
@ -4510,6 +4527,7 @@ item.rbmk_tool.linked=Позиция установлена!
item.rbmk_tool.set=РБМК соединён! item.rbmk_tool.set=РБМК соединён!
item.bismuth_tool.name=Магнитный экстрактор item.bismuth_tool.name=Магнитный экстрактор
item.reacher.name=Вольфрамовые хваталки item.reacher.name=Вольфрамовые хваталки
item.power_net_tool.name=Анализатор энергосети
item.multitool_dig.name=Силовая перчатка (Добывающий коготь) item.multitool_dig.name=Силовая перчатка (Добывающий коготь)
item.multitool_silk.name=Силовая перчатка (Коготь шёлкового касания) item.multitool_silk.name=Силовая перчатка (Коготь шёлкового касания)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

View File

@ -3,7 +3,7 @@
"modid": "hbm", "modid": "hbm",
"name": "Hbm's Nuclear Tech", "name": "Hbm's Nuclear Tech",
"description": "A mod that adds weapons, nuclear themed stuff and machines", "description": "A mod that adds weapons, nuclear themed stuff and machines",
"version":"1.0.27_X4193", "version":"1.0.27_X4200",
"mcversion": "1.7.10", "mcversion": "1.7.10",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",