Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Pheonix 2022-03-19 16:42:32 +00:00
commit 4086b8633d
69 changed files with 2922 additions and 1011 deletions

View File

@ -105,19 +105,24 @@ public class PowerNet implements IPowerNet {
if(this.subscribers.isEmpty()) if(this.subscribers.isEmpty())
return power; return power;
List<IEnergyConnector> subList = new ArrayList(subscribers);
List<Long> weight = new ArrayList(); List<Long> weight = new ArrayList();
long totalReq = 0; long totalReq = 0;
for(IEnergyConnector con : this.subscribers) { for(IEnergyConnector con : subList) {
long req = con.getTransferWeight(); long req = con.getTransferWeight();
weight.add(req); weight.add(req);
totalReq += req; totalReq += req;
} }
if(totalReq == 0)
return power;
long totalGiven = 0; long totalGiven = 0;
for(int i = 0; i < this.subscribers.size(); i++) { for(int i = 0; i < subList.size(); i++) {
IEnergyConnector con = this.subscribers.get(i); IEnergyConnector con = subList.get(i);
long req = weight.get(i); long req = weight.get(i);
double fraction = (double)req / (double)totalReq; double fraction = (double)req / (double)totalReq;

View File

@ -1,6 +1,5 @@
package com.hbm.blocks; package com.hbm.blocks;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -29,23 +28,24 @@ public interface ILookOverlay {
int pX = resolution.getScaledWidth() / 2 + 8; int pX = resolution.getScaledWidth() / 2 + 8;
int pZ = resolution.getScaledHeight() / 2; int pZ = resolution.getScaledHeight() / 2;
List<String> exceptions = new ArrayList();
exceptions.add("x");
exceptions.add("y");
exceptions.add("z");
exceptions.add("items");
exceptions.add("id");
mc.fontRenderer.drawString(title, pX + 1, pZ - 9, bgCol); mc.fontRenderer.drawString(title, pX + 1, pZ - 9, bgCol);
mc.fontRenderer.drawString(title, pX, pZ - 10, titleCol); mc.fontRenderer.drawString(title, pX, pZ - 10, titleCol);
for(String line : text) { try {
for(String line : text) {
if(exceptions.contains(line))
continue; int color = 0xFFFFFF;
if(line.startsWith("&[")) {
mc.fontRenderer.drawStringWithShadow(line, pX, pZ, 0xFFFFFF); int end = line.lastIndexOf("&]");
pZ += 10; color = Integer.parseInt(line.substring(2, end));
line = line.substring(end + 2);
}
mc.fontRenderer.drawStringWithShadow(line, pX, pZ, color);
pZ += 10;
}
} catch(Exception ex) {
mc.fontRenderer.drawStringWithShadow(ex.getClass().getSimpleName(), pX, pZ + 10, 0xff0000);
} }
GL11.glDisable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_BLEND);

View File

@ -52,6 +52,8 @@ public class ModBlocks {
public static Block test_conductor; public static Block test_conductor;
public static Block test_ct; public static Block test_ct;
public static Block test_rail; public static Block test_rail;
public static Block test_bb_bork;
public static Block test_bb_inf;
public static Block ore_uranium; public static Block ore_uranium;
public static Block ore_uranium_scorched; public static Block ore_uranium_scorched;
@ -714,6 +716,7 @@ public class ModBlocks {
public static Block substation; public static Block substation;
public static Block cable_switch; public static Block cable_switch;
public static Block cable_detector; public static Block cable_detector;
public static Block cable_diode;
public static Block machine_detector; public static Block machine_detector;
public static Block rf_cable; public static Block rf_cable;
public static Block oil_duct_solid; public static Block oil_duct_solid;
@ -1251,6 +1254,8 @@ public class ModBlocks {
test_conductor = new TestConductor(Material.iron).setBlockName("test_conductor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cable_neo"); test_conductor = new TestConductor(Material.iron).setBlockName("test_conductor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cable_neo");
test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct"); test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct");
test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail"); test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail");
test_bb_bork = new TestBB(Material.iron).setBlockName("test_bb_bork").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_bb_bork");
test_bb_inf = new TestBB(Material.iron).setBlockName("test_bb_inf").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_bb_inf");
ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium");
ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched"); ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched");
@ -1829,6 +1834,7 @@ public class ModBlocks {
substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation"); substation = new Substation(Material.iron).setBlockName("substation").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":substation");
cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode");
machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off");
oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt");
oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt");
@ -2256,6 +2262,8 @@ public class ModBlocks {
GameRegistry.registerBlock(test_conductor, test_conductor.getUnlocalizedName()); GameRegistry.registerBlock(test_conductor, test_conductor.getUnlocalizedName());
GameRegistry.registerBlock(test_ct, test_ct.getUnlocalizedName()); GameRegistry.registerBlock(test_ct, test_ct.getUnlocalizedName());
GameRegistry.registerBlock(test_rail, test_rail.getUnlocalizedName()); GameRegistry.registerBlock(test_rail, test_rail.getUnlocalizedName());
GameRegistry.registerBlock(test_bb_bork, test_bb_bork.getUnlocalizedName());
GameRegistry.registerBlock(test_bb_inf, test_bb_inf.getUnlocalizedName());
//Ores //Ores
GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName()); GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName());
@ -2929,6 +2937,7 @@ public class ModBlocks {
GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName()); GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName());
GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName());
GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName());
GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName());
GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName());
GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName()); GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName());
GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName());

View File

@ -155,7 +155,8 @@ public class Landmine extends BlockContainer implements IBomb {
world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, false, false); world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, false, false);
} }
if(this == ModBlocks.mine_he) { if(this == ModBlocks.mine_he) {
ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 10F, true, false, false); ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 3F, true, false, false);
world.newExplosion(null, x + 0.5, y + 2, z + 0.5, 15F, false, false);
} }
if(this == ModBlocks.mine_shrap) { if(this == ModBlocks.mine_shrap) {
ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false); ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false);

View File

@ -1,12 +1,17 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.List;
import java.util.Random; import java.util.Random;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDiFurnace; import com.hbm.tileentity.machine.TileEntityDiFurnace;
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -25,13 +30,14 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
public class MachineBattery extends BlockContainer { public class MachineBattery extends BlockContainer implements ILookOverlay {
private final Random field_149933_a = new Random(); private final Random field_149933_a = new Random();
private static boolean keepInventory; private static boolean keepInventory;
public long maxPower; public long maxPower;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private IIcon iconTop; private IIcon iconTop;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@ -41,7 +47,7 @@ public class MachineBattery extends BlockContainer {
super(p_i45386_1_); super(p_i45386_1_);
this.maxPower = maxPower; this.maxPower = maxPower;
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) { public void registerBlockIcons(IIconRegister iconRegister) {
@ -71,84 +77,73 @@ public class MachineBattery extends BlockContainer {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":battery_dineutronium_side"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":battery_dineutronium_side");
} }
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) { public IIcon getIcon(int side, int metadata) {
if(side == 0 || side == 1) if(side == 0 || side == 1)
return iconTop; return iconTop;
return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon);
} }
@Override @Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
{ return Item.getItemFromBlock(this);
return Item.getItemFromBlock(this); }
}
@Override @Override
public void onBlockAdded(World world, int x, int y, int z) { public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z); super.onBlockAdded(world, x, y, z);
this.setDefaultDirection(world, x, y, z); this.setDefaultDirection(world, x, y, z);
} }
private void setDefaultDirection(World world, int x, int y, int z) { private void setDefaultDirection(World world, int x, int y, int z) {
if(!world.isRemote) if(!world.isRemote) {
{
Block block1 = world.getBlock(x, y, z - 1); Block block1 = world.getBlock(x, y, z - 1);
Block block2 = world.getBlock(x, y, z + 1); Block block2 = world.getBlock(x, y, z + 1);
Block block3 = world.getBlock(x - 1, y, z); Block block3 = world.getBlock(x - 1, y, z);
Block block4 = world.getBlock(x + 1, y, z); Block block4 = world.getBlock(x + 1, y, z);
byte b0 = 3; byte b0 = 3;
if(block1.func_149730_j() && !block2.func_149730_j()) if(block1.func_149730_j() && !block2.func_149730_j()) {
{
b0 = 3; b0 = 3;
} }
if(block2.func_149730_j() && !block1.func_149730_j()) if(block2.func_149730_j() && !block1.func_149730_j()) {
{
b0 = 2; b0 = 2;
} }
if(block3.func_149730_j() && !block4.func_149730_j()) if(block3.func_149730_j() && !block4.func_149730_j()) {
{
b0 = 5; b0 = 5;
} }
if(block4.func_149730_j() && !block3.func_149730_j()) if(block4.func_149730_j() && !block3.func_149730_j()) {
{
b0 = 4; b0 = 4;
} }
world.setBlockMetadataWithNotify(x, y, z, b0, 2); world.setBlockMetadataWithNotify(x, y, z, b0, 2);
} }
} }
@Override @Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0) if(i == 0) {
{
world.setBlockMetadataWithNotify(x, y, z, 2, 2); world.setBlockMetadataWithNotify(x, y, z, 2, 2);
} }
if(i == 1) if(i == 1) {
{
world.setBlockMetadataWithNotify(x, y, z, 5, 2); world.setBlockMetadataWithNotify(x, y, z, 5, 2);
} }
if(i == 2) if(i == 2) {
{
world.setBlockMetadataWithNotify(x, y, z, 3, 2); world.setBlockMetadataWithNotify(x, y, z, 3, 2);
} }
if(i == 3) if(i == 3) {
{
world.setBlockMetadataWithNotify(x, y, z, 4, 2); world.setBlockMetadataWithNotify(x, y, z, 4, 2);
} }
if(itemStack.hasDisplayName()) if(itemStack.hasDisplayName()) {
{ ((TileEntityDiFurnace) world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
((TileEntityDiFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
} }
} }
@ -156,17 +151,14 @@ public class MachineBattery extends BlockContainer {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineBattery(); return new TileEntityMachineBattery();
} }
@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) {
if(world.isRemote) if(world.isRemote) {
{
return true; return true;
} else if(!player.isSneaking()) } else if(!player.isSneaking()) {
{
TileEntityMachineBattery entity = (TileEntityMachineBattery) world.getTileEntity(x, y, z); TileEntityMachineBattery entity = (TileEntityMachineBattery) world.getTileEntity(x, y, z);
if(entity != null) if(entity != null) {
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_battery, world, x, y, z); FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_battery, world, x, y, z);
} }
return true; return true;
@ -174,57 +166,70 @@ public class MachineBattery extends BlockContainer {
return false; return false;
} }
} }
@Override @Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) {
{ if(!keepInventory) {
if (!keepInventory) TileEntityMachineBattery tileentityfurnace = (TileEntityMachineBattery) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
{
TileEntityMachineBattery tileentityfurnace = (TileEntityMachineBattery)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null) if(tileentityfurnace != null) {
{ for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null) if(itemstack != null) {
{ float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0) while(itemstack.stackSize > 0) {
{ int j1 = this.field_149933_a.nextInt(21) + 10;
int j1 = this.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize) if(j1 > itemstack.stackSize) {
{ j1 = itemstack.stackSize;
j1 = itemstack.stackSize; }
}
itemstack.stackSize -= j1; itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound()) if(itemstack.hasTagCompound()) {
{ entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); }
}
float f3 = 0.05F; float f3 = 0.05F;
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem); p_149749_1_.spawnEntityInWorld(entityitem);
} }
} }
} }
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
} }
} }
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
} }
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(!(te instanceof TileEntityMachineBattery))
return;
TileEntityMachineBattery battery = (TileEntityMachineBattery) te;
List<String> text = new ArrayList();
text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE");
double percent = (double) battery.getPower() / (double) battery.getMaxPower();
int charge = (int) Math.floor(percent * 10_000D);
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
text.add("&[" + color + "&]" + (charge / 100D) + "%");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
} }

View File

@ -132,6 +132,6 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver
for(int i = 0; i < cracker.tanks.length; i++) for(int i = 0; i < cracker.tanks.length; i++)
text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x808000, text); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
} }
} }

View File

@ -1,17 +1,25 @@
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.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU; import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
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.client.event.RenderGameOverlayEvent.Pre;
public class MachineFENSU extends BlockDummyable { public class MachineFENSU extends BlockDummyable implements ILookOverlay {
public MachineFENSU(Material mat) { public MachineFENSU(Material mat) {
super(mat); super(mat);
@ -58,4 +66,29 @@ public class MachineFENSU extends BlockDummyable {
} }
} }
@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 TileEntityMachineBattery))
return;
TileEntityMachineBattery battery = (TileEntityMachineBattery) te;
List<String> text = new ArrayList();
text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE");
double percent = (double) battery.getPower() / (double) battery.getMaxPower();
int charge = (int) Math.floor(percent * 10_000D);
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
text.add("&[" + color + "&]" + (charge / 100D) + "%");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
} }

View File

@ -118,6 +118,6 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay
for(int i = 0; i < cracker.tanks.length; i++) for(int i = 0; i < cracker.tanks.length; i++)
text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x808000, text); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
} }
} }

View File

@ -6,11 +6,9 @@ import org.lwjgl.input.Keyboard;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ITooltipProvider;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
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.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@ -69,7 +69,9 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
list.add(EnumChatFormatting.YELLOW + "beb"); list.add(EnumChatFormatting.YELLOW + "A universal machine fitted with cooling systems and other");
list.add(EnumChatFormatting.YELLOW + "versatile tools for turning fluids solid using various");
list.add(EnumChatFormatting.YELLOW + "processes such as freezing and petrochemical polymerization.");
} else { } else {
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +

View File

@ -0,0 +1,210 @@
package com.hbm.blocks.network;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil;
import api.hbm.block.IToolable;
import api.hbm.energy.IEnergyUser;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
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.util.EnumChatFormatting;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class CableDiode extends BlockContainer implements ILookOverlay, IToolable, ITooltipProvider {
public CableDiode(Material mat) {
super(mat);
}
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
@Override
public int getRenderType() {
return renderID;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) {
return true;
}
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) {
int l = BlockPistonBase.determineOrientation(world, x, y, z, player);
world.setBlockMetadataWithNotify(x, y, z, l, 2);
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
TileEntityDiode te = (TileEntityDiode)world.getTileEntity(x, y, z);
if(world.isRemote)
return true;
if(tool == ToolType.SCREWDRIVER) {
if(te.level < 11)
te.level++;
te.markDirty();
world.markBlockForUpdate(x, y, z);
return true;
}
if(tool == ToolType.HAND_DRILL) {
if(te.level > 1)
te.level--;
te.markDirty();
world.markBlockForUpdate(x, y, z);
return true;
}
return false;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.GOLD + "Limits throughput and restricts flow direction");
list.add(EnumChatFormatting.YELLOW + "Use screwdriver to increase throughput");
list.add(EnumChatFormatting.YELLOW + "Use hand drill to decrease throughput");
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(!(te instanceof TileEntityDiode))
return;
TileEntityDiode diode = (TileEntityDiode) te;
List<String> text = new ArrayList();
text.add("Max.: " + BobMathUtil.getShortNumber(diode.getMaxPower()) + "HE/pulse");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityDiode();
}
public static class TileEntityDiode extends TileEntity implements IEnergyUser {
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
level = nbt.getInteger("level");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("level", level);
}
@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());
}
int level = 1;
private ForgeDirection getDir() {
return ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite();
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
if(dir == getDir())
continue;
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
}
}
}
private boolean recursionBrake = false;
private long subBuffer;
@Override
public long transferPower(long power) {
if(recursionBrake)
return power;
//this part turns "maxPower" from a glorified transfer weight into an actual transfer cap
long overShoot = Math.max(0, power - getMaxPower());
power = Math.min(power, getMaxPower());
recursionBrake = true;
this.subBuffer = power;
ForgeDirection dir = getDir();
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
long ret = this.subBuffer;
this.subBuffer = 0;
recursionBrake = false;
return ret + overShoot;
}
@Override
public long getMaxPower() {
return (long) Math.pow(10, level);
}
@Override
public long getPower() {
return subBuffer;
}
@Override
public void setPower(long power) {
this.subBuffer = power;
}
}
}

View File

@ -0,0 +1,18 @@
package com.hbm.blocks.test;
import com.hbm.blocks.ModBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class TestBB extends Block {
public TestBB(Material mat) {
super(mat);
if(this == ModBlocks.test_bb_bork)
this.setBlockBounds(-1000F, -1000F, -1000F, 1001F, 1001F, 1001F);
else
this.setBlockBounds(Float.NEGATIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY, Float.POSITIVE_INFINITY);
}
}

View File

@ -78,7 +78,7 @@ public class ArmorRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_boots, 1), new Object[] { ModItems.ajr_boots, KEY_RED, KEY_BLACK }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ajro_boots, 1), new Object[] { ModItems.ajr_boots, KEY_RED, KEY_BLACK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', ModItems.circuit_targeting_tier4, 'I', STAR.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', ModItems.circuit_targeting_tier4, 'I', STAR.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', ModItems.circuit_targeting_tier5 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', ModItems.circuit_targeting_tier5 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.ordinal()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter });
@ -97,6 +97,10 @@ public class ArmorRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_plate, 1), new Object[] { "P P", "MLM", "PKP", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_plate, 1), new Object[] { "P P", "MLM", "PKP", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_legs, 1), new Object[] { "MPM", "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_legs, 1), new Object[] { "MPM", "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr, 'M', ModItems.motor_desh });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_boots, 1), new Object[] { "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rpa_boots, 1), new Object[] { "KLK", "P P", 'L', DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), 'K', ModItems.plate_kevlar, 'P', ModItems.plate_armor_ajr });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_helmet, 1), new Object[] { "DCD", "CXC", " F ", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_helmet, 'F', ModItems.gas_mask_filter });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_plate, 1), new Object[] { "C C", "DXD", "CFC", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_plate, 'F', ModItems.tank_steel });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_legs, 1), new Object[] { "CCC", "DXD", "C C", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_legs });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_boots, 1), new Object[] { "C C", "DXD", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_boots });
//Bismuth fursui- I mean armor //Bismuth fursui- I mean armor
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag });

View File

@ -67,8 +67,6 @@ public class EntityMinecartTest extends EntityMinecartModBase
this.explodeCart(d0); this.explodeCart(d0);
} }
} }
System.out.println(this.rotationYaw);
} }
@Override @Override

View File

@ -11,7 +11,9 @@ import com.hbm.explosion.vanillant.interfaces.IExplosionSFX;
import com.hbm.explosion.vanillant.interfaces.IPlayerProcessor; import com.hbm.explosion.vanillant.interfaces.IPlayerProcessor;
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
import com.hbm.explosion.vanillant.standard.CustomDamageHandlerAmat;
import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard;
import com.hbm.explosion.vanillant.standard.ExplosionEffectAmat;
import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard;
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
@ -127,4 +129,16 @@ public class ExplosionVNT {
this.setSFX(new ExplosionEffectStandard()); this.setSFX(new ExplosionEffectStandard());
return this; return this;
} }
public ExplosionVNT makeAmat() {
this.setBlockAllocator(new BlockAllocatorStandard(this.size < 15 ? 16 : 32));
this.setBlockProcessor(new BlockProcessorStandard()
.setNoDrop());
this.setEntityProcessor(new EntityProcessorStandard()
.withRangeMod(2F)
.withDamageMod(new CustomDamageHandlerAmat(50F)));
this.setPlayerProcessor(new PlayerProcessorStandard());
this.setSFX(new ExplosionEffectAmat());
return this;
}
} }

View File

@ -0,0 +1,10 @@
package com.hbm.explosion.vanillant.interfaces;
import com.hbm.explosion.vanillant.ExplosionVNT;
import net.minecraft.entity.Entity;
public interface ICustomDamageHandler {
public void handleAttack(ExplosionVNT explosion, Entity entity, double distanceScaled);
}

View File

@ -0,0 +1,8 @@
package com.hbm.explosion.vanillant.interfaces;
import com.hbm.explosion.vanillant.ExplosionVNT;
public interface IEntityRangeMutator {
public float mutateRange(ExplosionVNT explosion, float range);
}

View File

@ -0,0 +1,25 @@
package com.hbm.explosion.vanillant.standard;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
public class CustomDamageHandlerAmat implements ICustomDamageHandler {
protected float radiation;
public CustomDamageHandlerAmat(float radiation) {
this.radiation = radiation;
}
@Override
public void handleAttack(ExplosionVNT explosion, Entity entity, double distanceScaled) {
if(entity instanceof EntityLivingBase)
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float) (radiation * (1D - distanceScaled) * explosion.size));
}
}

View File

@ -4,7 +4,9 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler;
import com.hbm.explosion.vanillant.interfaces.IEntityProcessor; import com.hbm.explosion.vanillant.interfaces.IEntityProcessor;
import com.hbm.explosion.vanillant.interfaces.IEntityRangeMutator;
import net.minecraft.enchantment.EnchantmentProtection; import net.minecraft.enchantment.EnchantmentProtection;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -17,6 +19,9 @@ import net.minecraftforge.event.ForgeEventFactory;
public class EntityProcessorStandard implements IEntityProcessor { public class EntityProcessorStandard implements IEntityProcessor {
protected IEntityRangeMutator range;
protected ICustomDamageHandler damage;
@Override @Override
public HashMap<EntityPlayer, Vec3> process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { public HashMap<EntityPlayer, Vec3> process(ExplosionVNT explosion, World world, double x, double y, double z, float size) {
@ -24,6 +29,10 @@ public class EntityProcessorStandard implements IEntityProcessor {
size *= 2.0F; size *= 2.0F;
if(range != null) {
size = range.mutateRange(explosion, size);
}
double minX = x - (double) size - 1.0D; double minX = x - (double) size - 1.0D;
double maxX = x + (double) size + 1.0D; double maxX = x + (double) size + 1.0D;
double minY = y - (double) size - 1.0D; double minY = y - (double) size - 1.0D;
@ -67,10 +76,29 @@ public class EntityProcessorStandard implements IEntityProcessor {
if(entity instanceof EntityPlayer) { if(entity instanceof EntityPlayer) {
affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback)); affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback));
} }
if(damage != null) {
damage.handleAttack(explosion, entity, distanceScaled);
}
} }
} }
} }
return affectedPlayers; return affectedPlayers;
} }
public EntityProcessorStandard withRangeMod(float mod) {
range = new IEntityRangeMutator() {
@Override
public float mutateRange(ExplosionVNT explosion, float range) {
return range * mod;
}
};
return this;
}
public EntityProcessorStandard withDamageMod(ICustomDamageHandler damage) {
this.damage = damage;
return this;
}
} }

View File

@ -0,0 +1,27 @@
package com.hbm.explosion.vanillant.standard;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.interfaces.IExplosionSFX;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ExplosionEffectAmat implements IExplosionSFX {
@Override
public void doEffect(ExplosionVNT explosion, World world, double x, double y, double z, float size) {
if(size < 15)
world.playSoundEffect(x, y, z, "random.explode", 4.0F, (1.4F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.2F) * 0.7F);
else
world.playSoundEffect(x, y, z, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "amat");
data.setFloat("scale", size);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 200));
}
}

View File

@ -526,7 +526,7 @@ public class HazardRegistry {
HazardData data = new HazardData(); HazardData data = new HazardData();
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRTGRadiation(target))); data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRTGRadiation(target)));
if(hot > 0) data.addEntry(new HazardEntry(HOT, hot)); if(hot > 0) data.addEntry(new HazardEntry(HOT, hot));
if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, hot)); if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, blinding));
HazardSystem.register(pellet, data); HazardSystem.register(pellet, data);
} }

View File

@ -1,6 +1,5 @@
package com.hbm.hazard.modifier; package com.hbm.hazard.modifier;
import com.hbm.hazard.HazardRegistry;
import com.hbm.items.machine.ItemFuelRod; import com.hbm.items.machine.ItemFuelRod;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;

View File

@ -27,7 +27,7 @@ public class HazardModifierRBMKRadiation extends HazardModifier {
} else if(stack.getItem() instanceof ItemRBMKPellet) { } else if(stack.getItem() instanceof ItemRBMKPellet) {
level = level + (target - level) * (ItemRBMKPellet.rectify(stack.getItemDamage()) / 4F); level = level + (target - level) * ((ItemRBMKPellet.rectify(stack.getItemDamage()) % 5) / 4F);
if(ItemRBMKPellet.hasXenon(stack.getItemDamage())) if(ItemRBMKPellet.hasXenon(stack.getItemDamage()))
level += HazardRegistry.xe135 * HazardRegistry.nugget; level += HazardRegistry.xe135 * HazardRegistry.nugget;

View File

@ -403,7 +403,7 @@ public class RecipesCommon {
} }
public static class MetaBlock { public static class MetaBlock {
public Block block; public Block block;
public int meta; public int meta;
@ -415,6 +415,14 @@ public class RecipesCommon {
public MetaBlock(Block block) { public MetaBlock(Block block) {
this(block, 0); this(block, 0);
} }
public int getID() {
final int prime = 31;
int result = 1;
result = prime * result + Block.getIdFromBlock(block);
result = prime * result + meta;
return result;
}
} }
} }

View File

@ -2,6 +2,7 @@ package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.SlotMachineOutput;
import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.tileentity.machine.TileEntityNukeFurnace;
import com.hbm.util.InventoryUtil;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
@ -11,116 +12,110 @@ import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ContainerNukeFurnace extends Container { public class ContainerNukeFurnace extends Container {
private TileEntityNukeFurnace diFurnace; private TileEntityNukeFurnace diFurnace;
private int dualCookTime; private int dualCookTime;
private int dualPower; private int dualPower;
private int lastItemBurnTime;
public ContainerNukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) { public ContainerNukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) {
dualCookTime = 0; dualCookTime = 0;
dualPower = 0; dualPower = 0;
lastItemBurnTime = 0;
diFurnace = tedf; diFurnace = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 56, 53)); this.addSlotToContainer(new Slot(tedf, 0, 56, 53) {
@Override
public int getSlotStackLimit() {
return 1;
}
});
this.addSlotToContainer(new Slot(tedf, 1, 56, 17)); this.addSlotToContainer(new Slot(tedf, 1, 56, 17));
this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 116, 35)); this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 116, 35));
for(int i = 0; i < 3; i++) for(int i = 0; i < 3; i++) {
{ for(int j = 0; j < 9; j++) {
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
} }
} }
for(int i = 0; i < 9; i++) for(int i = 0; i < 9; i++) {
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
} }
} }
@Override @Override
public void addCraftingToCrafters(ICrafting crafting) { public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting); super.addCraftingToCrafters(crafting);
crafting.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime); crafting.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime);
crafting.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower); crafting.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower);
} }
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
{
ItemStack var3 = null; ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2); Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack()) if(var4 != null && var4.getHasStack()) {
{
ItemStack var5 = var4.getStack(); ItemStack var5 = var4.getStack();
var3 = var5.copy(); var3 = var5.copy();
if (par2 <= 2) { if(par2 <= 2) {
if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
{
return null; return null;
} }
} } else {
else if (!this.mergeItemStack(var5, 1, 2, false))
{ if(TileEntityNukeFurnace.getFuelValue(var5) > 0) {
if (!this.mergeItemStack(var5, 0, 1, false)) if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false))
return null; return null;
} else {
if(!this.mergeItemStack(var5, 1, 2, false))
return null;
}
} }
if (var5.stackSize == 0) if(var5.stackSize == 0) {
{
var4.putStack((ItemStack) null); var4.putStack((ItemStack) null);
} } else {
else
{
var4.onSlotChanged(); var4.onSlotChanged();
} }
} }
return var3; return var3;
} }
@Override @Override
public boolean canInteractWith(EntityPlayer player) { public boolean canInteractWith(EntityPlayer player) {
return diFurnace.isUseableByPlayer(player); return diFurnace.isUseableByPlayer(player);
} }
@Override @Override
public void detectAndSendChanges() { public void detectAndSendChanges() {
super.detectAndSendChanges(); super.detectAndSendChanges();
for(int i = 0; i < this.crafters.size(); i++) for(int i = 0; i < this.crafters.size(); i++) {
{ ICrafting par1 = (ICrafting) this.crafters.get(i);
ICrafting par1 = (ICrafting)this.crafters.get(i);
if(this.dualCookTime != this.diFurnace.dualCookTime) {
if(this.dualCookTime != this.diFurnace.dualCookTime)
{
par1.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime); par1.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime);
} }
if(this.dualPower != this.diFurnace.dualPower) if(this.dualPower != this.diFurnace.dualPower) {
{
par1.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower); par1.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower);
} }
} }
this.dualCookTime = this.diFurnace.dualCookTime; this.dualCookTime = this.diFurnace.dualCookTime;
this.dualPower = this.diFurnace.dualPower; this.dualPower = this.diFurnace.dualPower;
} }
@Override @Override
public void updateProgressBar(int i, int j) { public void updateProgressBar(int i, int j) {
if(i == 0) if(i == 0) {
{
diFurnace.dualCookTime = j; diFurnace.dualCookTime = j;
} }
if(i == 1) if(i == 1) {
{
diFurnace.dualPower = j; diFurnace.dualPower = j;
} }
} }

View File

@ -1,6 +1,7 @@
package com.hbm.inventory.container; package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityStorageDrum; import com.hbm.tileentity.machine.TileEntityStorageDrum;
import com.hbm.util.InventoryUtil;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
@ -47,10 +48,10 @@ public class ContainerStorageDrum extends Container {
var3 = var5.copy(); var3 = var5.copy();
if(par2 <= drum.getSizeInventory() - 1) { if(par2 <= drum.getSizeInventory() - 1) {
if(!this.mergeItemStack(var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) { if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) {
return null; return null;
} }
} else if(!this.mergeItemStack(var5, 0, drum.getSizeInventory(), false)) { } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, drum.getSizeInventory(), false)) {
return null; return null;
} }

View File

@ -1,6 +1,7 @@
package com.hbm.inventory.container; package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityWasteDrum; import com.hbm.tileentity.machine.TileEntityWasteDrum;
import com.hbm.util.InventoryUtil;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
@ -10,10 +11,10 @@ import net.minecraft.item.ItemStack;
public class ContainerWasteDrum extends Container { public class ContainerWasteDrum extends Container {
private TileEntityWasteDrum diFurnace; private TileEntityWasteDrum drum;
public ContainerWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) { public ContainerWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) {
diFurnace = tedf; drum = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 71, 18)); this.addSlotToContainer(new Slot(tedf, 0, 71, 18));
this.addSlotToContainer(new Slot(tedf, 1, 89, 18)); this.addSlotToContainer(new Slot(tedf, 1, 89, 18));
@ -51,11 +52,11 @@ public class ContainerWasteDrum extends Container {
ItemStack var5 = var4.getStack(); ItemStack var5 = var4.getStack();
var3 = var5.copy(); var3 = var5.copy();
if(par2 <= diFurnace.getSizeInventory() - 1) { if(par2 <= drum.getSizeInventory() - 1) {
if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) {
return null; return null;
} }
} else if(!this.mergeItemStack(var5, 0, 0, false)) { } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, drum.getSizeInventory(), false)) {
return null; return null;
} }
@ -64,6 +65,8 @@ public class ContainerWasteDrum extends Container {
} else { } else {
var4.onSlotChanged(); var4.onSlotChanged();
} }
var4.onPickupFromSlot(p_82846_1_, var5);
} }
return var3; return var3;
@ -71,6 +74,6 @@ public class ContainerWasteDrum extends Container {
@Override @Override
public boolean canInteractWith(EntityPlayer player) { public boolean canInteractWith(EntityPlayer player) {
return diFurnace.isUseableByPlayer(player); return drum.isUseableByPlayer(player);
} }
} }

View File

@ -11,6 +11,7 @@ import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumLegendaryType;
import com.hbm.items.armor.*; import com.hbm.items.armor.*;
import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart;
import com.hbm.items.bomb.*; import com.hbm.items.bomb.*;
import com.hbm.items.food.*; import com.hbm.items.food.*;
import com.hbm.items.machine.*; import com.hbm.items.machine.*;
@ -2270,6 +2271,7 @@ public class ModItems {
public static Item cape_radiation; public static Item cape_radiation;
public static Item cape_gasmask; public static Item cape_gasmask;
public static Item cape_schrabidium; public static Item cape_schrabidium;
public static Item cape_hidden;
/*public static Item cape_hbm; /*public static Item cape_hbm;
public static Item cape_dafnik; public static Item cape_dafnik;
public static Item cape_lpkukin; public static Item cape_lpkukin;
@ -4890,6 +4892,7 @@ public class ModItems {
.setBlastProtection(0.5F) .setBlastProtection(0.5F)
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.addResistance("fall", 0) .addResistance("fall", 0)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet");
t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate");
t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs");
@ -4904,6 +4907,7 @@ public class ModItems {
.setBlastProtection(0.5F) .setBlastProtection(0.5F)
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.addResistance("fall", 0) .addResistance("fall", 0)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet"); .setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet");
steamsuit_plate = new ArmorDesh(aMatDesh, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); steamsuit_plate = new ArmorDesh(aMatDesh, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate");
steamsuit_legs = new ArmorDesh(aMatDesh, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); steamsuit_legs = new ArmorDesh(aMatDesh, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs");
@ -4923,7 +4927,9 @@ public class ModItems {
.setJump("hbm:step.iron_jump") .setJump("hbm:step.iron_jump")
.setFall("hbm:step.iron_land") .setFall("hbm:step.iron_land")
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.addResistance("fall", 0).setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); .addResistance("fall", 0)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet");
ajr_plate = new ArmorAJR(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); ajr_plate = new ArmorAJR(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate");
ajr_legs = new ArmorAJR(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); ajr_legs = new ArmorAJR(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs");
ajr_boots = new ArmorAJR(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); ajr_boots = new ArmorAJR(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots");
@ -4940,7 +4946,9 @@ public class ModItems {
.setJump("hbm:step.iron_jump") .setJump("hbm:step.iron_jump")
.setFall("hbm:step.iron_land") .setFall("hbm:step.iron_land")
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.addResistance("fall", 0).setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); .addResistance("fall", 0)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet");
ajro_plate = new ArmorAJRO(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate"); ajro_plate = new ArmorAJRO(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate");
ajro_legs = new ArmorAJRO(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); ajro_legs = new ArmorAJRO(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs");
ajro_boots = new ArmorAJRO(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); ajro_boots = new ArmorAJRO(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots");
@ -4957,7 +4965,9 @@ public class ModItems {
.setStep("hbm:step.powered") .setStep("hbm:step.powered")
.setJump("hbm:step.powered") .setJump("hbm:step.powered")
.setFall("hbm:step.powered") .setFall("hbm:step.powered")
.addResistance("fall", 0).setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); .addResistance("fall", 0)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet");
rpa_plate = new ArmorRPA(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); rpa_plate = new ArmorRPA(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate");
rpa_legs = new ArmorRPA(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs"); rpa_legs = new ArmorRPA(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs");
rpa_boots = new ArmorRPA(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots"); rpa_boots = new ArmorRPA(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots");
@ -4976,13 +4986,12 @@ public class ModItems {
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))
.setBlastProtection(0.5F) .setBlastProtection(0.5F)
.setProtectionLevel(500F) .setProtectionLevel(500F)
//.setGravity(0.02D)
.setStep("hbm:step.metal") .setStep("hbm:step.metal")
.setJump("hbm:step.iron_jump") .setJump("hbm:step.iron_jump")
.setFall("hbm:step.iron_land") .setFall("hbm:step.iron_land")
.addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); .addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet");
bj_plate = new ArmorBJ(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); bj_plate = new ArmorBJ(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate");
bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).hides(EnumPlayerPart.LEFT_ARM, EnumPlayerPart.RIGHT_ARM).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack");
bj_legs = new ArmorBJ(aMatBJ, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); bj_legs = new ArmorBJ(aMatBJ, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs");
bj_boots = new ArmorBJ(aMatBJ, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); bj_boots = new ArmorBJ(aMatBJ, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots");
@ -4997,7 +5006,9 @@ public class ModItems {
.setHasCustomGeiger(true) .setHasCustomGeiger(true)
.addResistance("fall", 0.5F) .addResistance("fall", 0.5F)
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.addResistance("onFire", 0F).setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); .addResistance("onFire", 0F)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet");
hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate");
hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs");
hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots");
@ -5020,9 +5031,11 @@ public class ModItems {
.setProtectionLevel(1000F) .setProtectionLevel(1000F)
.addResistance("fall", 0F) .addResistance("fall", 0F)
.addResistance("monoxide", 0F) .addResistance("monoxide", 0F)
.setFireproof(true).setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); .setFireproof(true)
fau_plate = new ArmorDigamma(aMatFau, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); .hides(EnumPlayerPart.HAT)
fau_legs = new ArmorDigamma(aMatFau, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); .setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet");
fau_plate = new ArmorDigamma(aMatFau, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate");
fau_legs = new ArmorDigamma(aMatFau, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs");
fau_boots = new ArmorDigamma(aMatFau, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); fau_boots = new ArmorDigamma(aMatFau, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots");
ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100);
@ -5038,7 +5051,9 @@ public class ModItems {
.setStep("hbm:step.metal") .setStep("hbm:step.metal")
.setJump("hbm:step.iron_jump") .setJump("hbm:step.iron_jump")
.setFall("hbm:step.iron_land") .setFall("hbm:step.iron_land")
.setFireproof(true).setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); .setFireproof(true)
.hides(EnumPlayerPart.HAT)
.setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet");
dns_plate = new ArmorDNT(aMatDNS, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate"); dns_plate = new ArmorDNT(aMatDNS, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate");
dns_legs = new ArmorDNT(aMatDNS, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); dns_legs = new ArmorDNT(aMatDNS, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs");
dns_boots = new ArmorDNT(aMatDNS, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); dns_boots = new ArmorDNT(aMatDNS, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots");
@ -5401,6 +5416,7 @@ public class ModItems {
cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation");
cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask");
cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 9, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 9, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium");
cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_hidden").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown");
schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer");
shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original"); shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original");
@ -5465,7 +5481,7 @@ public class ModItems {
record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass");
book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide");
holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":holotape"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape");
holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged");
polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID);
@ -7394,6 +7410,7 @@ public class ModItems {
GameRegistry.registerItem(cape_radiation, cape_radiation.getUnlocalizedName()); GameRegistry.registerItem(cape_radiation, cape_radiation.getUnlocalizedName());
GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName()); GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName());
GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName());
GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName());
//Tools //Tools
GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName());

File diff suppressed because it is too large Load Diff

View File

@ -80,7 +80,7 @@ public class ArmorModel extends ItemArmor {
return this.modelHat; return this.modelHat;
} }
} }
if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium) { if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) {
if (armorSlot == 1) { if (armorSlot == 1) {
if (this.modelCloak == null) { if (this.modelCloak == null) {
this.modelCloak = new ModelCloak(); this.modelCloak = new ModelCloak();
@ -111,6 +111,9 @@ public class ArmorModel extends ItemArmor {
if (stack.getItem() == ModItems.cape_schrabidium) { if (stack.getItem() == ModItems.cape_schrabidium) {
return "hbm:textures/models/capes/CapeSchrabidium.png"; return "hbm:textures/models/capes/CapeSchrabidium.png";
} }
if (stack.getItem() == ModItems.cape_hidden) {
return "hbm:textures/models/capes/CapeHidden.png";
}
return "hbm:textures/models/capes/CapeUnknown.png"; return "hbm:textures/models/capes/CapeUnknown.png";
} }

View File

@ -0,0 +1,19 @@
package com.hbm.items.armor;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public interface IArmorDisableModel {
public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part);
public static enum EnumPlayerPart {
HEAD,
HAT,
BODY,
LEFT_ARM,
RIGHT_ARM,
LEFT_LEG,
RIGHT_LEG
}
}

View File

@ -8,7 +8,9 @@ import com.hbm.items.ModItems;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
public class ItemModPads extends ItemArmorMod { public class ItemModPads extends ItemArmorMod {
@ -40,6 +42,13 @@ public class ItemModPads extends ItemArmorMod {
else else
list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)");
} }
@Override
public void modDamage(LivingHurtEvent event, ItemStack armor) {
if(event.source == DamageSource.fall)
event.ammount *= damageMod;
}
@Override @Override
public void modUpdate(EntityLivingBase entity, ItemStack armor) { public void modUpdate(EntityLivingBase entity, ItemStack armor) {

View File

@ -64,9 +64,9 @@ public class ItemPlateFuel extends ItemFuelRod {
switch(this.function) { switch(this.function) {
case LOGARITHM: return (int) (Math.log10(flux + 1) * 0.5D * reactivity); case LOGARITHM: return (int) (Math.log10(flux + 1) * 0.5D * reactivity);
case SQUARE_ROOT: return (int) (Math.sqrt(flux) * this.reactivity / 10); case SQUARE_ROOT: return (int) (Math.sqrt(flux) * this.reactivity / 10D);
case NEGATIVE_QUADRATIC: return (int) (Math.max(flux - (flux * flux / 10000) / 100 * reactivity, 0)); case NEGATIVE_QUADRATIC: return (int) (Math.max((flux - (flux * flux / 10000D)) / 100D * reactivity, 0));
case LINEAR: return (int) (flux / 100 * reactivity); case LINEAR: return (int) (flux / 100D * reactivity);
case PASSIVE: case PASSIVE:
setLifeTime(stack, getLifeTime(stack) + reactivity); setLifeTime(stack, getLifeTime(stack) + reactivity);
return reactivity; return reactivity;

View File

@ -9,15 +9,11 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class ItemRBMKPellet extends ItemNuclearWaste { public class ItemRBMKPellet extends ItemNuclearWaste {

View File

@ -239,7 +239,7 @@ public class ItemRBMKRod extends Item {
case PASSIVE: return selfRate * enrichment; case PASSIVE: return selfRate * enrichment;
case LOG_TEN: return Math.log10(flux + 1) * 0.5D * reactivity; case LOG_TEN: return Math.log10(flux + 1) * 0.5D * reactivity;
case PLATEU: return (1 - Math.pow(Math.E, -flux / 25D)) * reactivity; case PLATEU: return (1 - Math.pow(Math.E, -flux / 25D)) * reactivity;
case ARCH: return Math.max(flux - (flux * flux / 10000D) / 100D * reactivity, 0D); case ARCH: return Math.max((flux - (flux * flux / 10000D)) / 100D * reactivity, 0D);
case SIGMOID: return reactivity / (1 + Math.pow(Math.E, -(flux - 50D) / 10D)); case SIGMOID: return reactivity / (1 + Math.pow(Math.E, -(flux - 50D) / 10D));
case SQUARE_ROOT: return Math.sqrt(flux) * reactivity / 10D; case SQUARE_ROOT: return Math.sqrt(flux) * reactivity / 10D;
case LINEAR: return flux / 100D * reactivity; case LINEAR: return flux / 100D * reactivity;

View File

@ -16,6 +16,7 @@ import com.hbm.explosion.ExplosionChaos;
import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT;
import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.explosion.ExplosionNT.ExAttrib;
import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
@ -85,15 +86,12 @@ public class ItemDrop extends Item {
if (stack.getItem() != null && stack.getItem() == ModItems.cell_antimatter && WeaponConfig.dropCell) { if (stack.getItem() != null && stack.getItem() == ModItems.cell_antimatter && WeaponConfig.dropCell) {
if (!entityItem.worldObj.isRemote) { if (!entityItem.worldObj.isRemote) {
entityItem.worldObj.createExplosion(entityItem, entityItem.posX, entityItem.posY, new ExplosionVNT(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, 3F).makeAmat().explode();
entityItem.posZ, 10.0F, true);
} }
} }
if (stack.getItem() != null && stack.getItem() == ModItems.pellet_antimatter && WeaponConfig.dropCell) { if (stack.getItem() != null && stack.getItem() == ModItems.pellet_antimatter && WeaponConfig.dropCell) {
if (!entityItem.worldObj.isRemote) { if (!entityItem.worldObj.isRemote) {
new ExplosionNT(entityItem.worldObj, entityItem, entityItem.posX, entityItem.posY, entityItem.posZ, 30).overrideResolution(64).addAttrib(ExAttrib.FIRE).addAttrib(ExAttrib.NOSOUND).explode(); new ExplosionVNT(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, 20F).makeAmat().explode();
ExplosionLarge.spawnParticles(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, ExplosionLarge.cloudFunction(100));
entityItem.worldObj.playSoundEffect(entityItem.posX, entityItem.posY, entityItem.posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
} }
} }
if (stack.getItem() != null && stack.getItem() == ModItems.cell_anti_schrabidium && WeaponConfig.dropCell) { if (stack.getItem() != null && stack.getItem() == ModItems.cell_anti_schrabidium && WeaponConfig.dropCell) {

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 (4172)"; public static final String VERSION = "1.0.27 BETA (4178)";
//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

@ -19,6 +19,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; 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.util.MathHelper;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
@ -84,6 +85,7 @@ import com.hbm.tileentity.machine.rbmk.*;
import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.machine.storage.*;
import com.hbm.tileentity.network.*; import com.hbm.tileentity.network.*;
import com.hbm.tileentity.turret.*; import com.hbm.tileentity.turret.*;
import com.hbm.util.BobMathUtil;
import com.hbm.util.SoundUtil; import com.hbm.util.SoundUtil;
import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.ClientRegistry;
@ -93,6 +95,34 @@ import cpw.mods.fml.relauncher.ReflectionHelper;
public class ClientProxy extends ServerProxy { public class ClientProxy extends ServerProxy {
@Override
public void registerRenderInfo() {
registerClientEventHandler(new ModEventHandlerClient());
registerClientEventHandler(new ModEventHandlerRenderer());
AdvancedModelLoader.registerModelHandler(new HmfModelLoader());
ResourceManager.loadAnimatedModels();
registerTileEntitySpecialRenderer();
registerItemRenderer();
registerEntityRenderer();
registerBlockRenderer();
RenderingRegistry.addNewArmourRendererPrefix("5");
RenderingRegistry.addNewArmourRendererPrefix("6");
RenderingRegistry.addNewArmourRendererPrefix("7");
RenderingRegistry.addNewArmourRendererPrefix("8");
RenderingRegistry.addNewArmourRendererPrefix("9");
SoundUtil.addSoundCategory("ntmMachines");
}
private void registerClientEventHandler(Object handler) {
MinecraftForge.EVENT_BUS.register(handler);
FMLCommonHandler.instance().bus().register(handler);
}
@Override @Override
public void registerTileEntitySpecialRenderer() { public void registerTileEntitySpecialRenderer() {
//test crap //test crap
@ -654,6 +684,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerBlockHandler(new RenderBlockCT()); RenderingRegistry.registerBlockHandler(new RenderBlockCT());
RenderingRegistry.registerBlockHandler(new RenderDetCord()); RenderingRegistry.registerBlockHandler(new RenderDetCord());
RenderingRegistry.registerBlockHandler(new RenderBlockMultipass()); RenderingRegistry.registerBlockHandler(new RenderBlockMultipass());
RenderingRegistry.registerBlockHandler(new RenderDiode());
RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite));
RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4));
@ -664,30 +695,6 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerBlockHandler(new RenderPribris()); RenderingRegistry.registerBlockHandler(new RenderPribris());
} }
@Override
public void registerRenderInfo()
{
ModEventHandlerClient handler = new ModEventHandlerClient();
MinecraftForge.EVENT_BUS.register(handler);
FMLCommonHandler.instance().bus().register(handler);
AdvancedModelLoader.registerModelHandler(new HmfModelLoader());
ResourceManager.loadAnimatedModels();
registerTileEntitySpecialRenderer();
registerItemRenderer();
registerEntityRenderer();
registerBlockRenderer();
RenderingRegistry.addNewArmourRendererPrefix("5");
RenderingRegistry.addNewArmourRendererPrefix("6");
RenderingRegistry.addNewArmourRendererPrefix("7");
RenderingRegistry.addNewArmourRendererPrefix("8");
RenderingRegistry.addNewArmourRendererPrefix("9");
SoundUtil.addSoundCategory("ntmMachines");
}
@Override @Override
public void registerMissileItems() { public void registerMissileItems() {
@ -745,7 +752,6 @@ public class ClientProxy extends ServerProxy {
@Deprecated @Deprecated
@Override @Override
public void spawnParticle(double x, double y, double z, String type, float args[]) { public void spawnParticle(double x, double y, double z, String type, float args[]) {
World world = Minecraft.getMinecraft().theWorld; World world = Minecraft.getMinecraft().theWorld;
TextureManager man = Minecraft.getMinecraft().renderEngine; TextureManager man = Minecraft.getMinecraft().renderEngine;
@ -789,6 +795,7 @@ public class ClientProxy extends ServerProxy {
TextureManager man = Minecraft.getMinecraft().renderEngine; TextureManager man = Minecraft.getMinecraft().renderEngine;
EntityPlayer player = Minecraft.getMinecraft().thePlayer; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
int particleSetting = Minecraft.getMinecraft().gameSettings.particleSetting;
Random rand = world.rand; Random rand = world.rand;
String type = data.getString("type"); String type = data.getString("type");
double x = data.getDouble("posX"); double x = data.getDouble("posX");
@ -1095,6 +1102,9 @@ public class ClientProxy extends ServerProxy {
if("jetpack".equals(type)) { if("jetpack".equals(type)) {
if(particleSetting == 2)
return;
Entity ent = world.getEntityByID(data.getInteger("player")); Entity ent = world.getEntityByID(data.getInteger("player"));
if(ent instanceof EntityPlayer) { if(ent instanceof EntityPlayer) {
@ -1132,35 +1142,47 @@ public class ClientProxy extends ServerProxy {
moZ -= look.zCoord * 0.1D; moZ -= look.zCoord * 0.1D;
} }
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz); if(particleSetting == 0) {
Vec3 thrust = Vec3.createVectorHelper(moX, moY, moZ); Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
thrust = thrust.normalize(); Vec3 thrust = Vec3.createVectorHelper(moX, moY, moZ);
Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); thrust = thrust.normalize();
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10);
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true);
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
for(int i = 0; i < (10 - delta.lengthVector()); i++) { Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); for(int i = 0; i < (10 - delta.lengthVector()); i++) {
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta));
}
} }
} }
double motionX = BobMathUtil.safeClamp(p.motionX + moX, -5, 5);
double motionY = BobMathUtil.safeClamp(p.motionY + moY, -2, 2);
double motionZ = BobMathUtil.safeClamp(p.motionZ + moZ, -5, 5);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, p.motionX + moX * 2, p.motionY + moY * 2, p.motionZ + moZ * 2)); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, motionX * 2, motionY * 2, motionZ * 2));
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, p.motionX + moX * 2, p.motionY + moY * 2, p.motionZ + moZ * 2)); Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, motionX * 2, motionY * 2, motionZ * 2));
Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox, iy, iz + oz, p.motionX + moX * 3, p.motionY + moY * 3, p.motionZ + moZ * 3));
Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix - ox, iy, iz - oz, p.motionX + moX * 3, p.motionY + moY * 3, p.motionZ + moZ * 3)); if(particleSetting == 0) {
Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox, iy, iz + oz, motionX * 3, motionY * 3, motionZ * 3));
Minecraft.getMinecraft().effectRenderer.addEffect(new net.minecraft.client.particle.EntitySmokeFX(world, ix - ox, iy, iz - oz, motionX * 3, motionY * 3, motionZ * 3));
}
} }
} }
if("jetpack_bj".equals(type)) { if("jetpack_bj".equals(type)) {
if(particleSetting == 2)
return;
Entity ent = world.getEntityByID(data.getInteger("player")); Entity ent = world.getEntityByID(data.getInteger("player"));
if(ent instanceof EntityPlayer) { if(ent instanceof EntityPlayer) {
@ -1180,22 +1202,24 @@ public class ClientProxy extends ServerProxy {
double ox = offset.xCoord; double ox = offset.xCoord;
double oz = offset.zCoord; double oz = offset.zCoord;
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz); if(particleSetting == 0) {
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0); Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10);
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true);
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
for(int i = 0; i < (10 - delta.lengthVector()); i++) { Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); for(int i = 0; i < (10 - delta.lengthVector()); i++) {
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta));
}
} }
} }
@ -1210,6 +1234,9 @@ public class ClientProxy extends ServerProxy {
if("jetpack_dns".equals(type)) { if("jetpack_dns".equals(type)) {
if(particleSetting == 2)
return;
Entity ent = world.getEntityByID(data.getInteger("player")); Entity ent = world.getEntityByID(data.getInteger("player"));
if(ent instanceof EntityPlayer) { if(ent instanceof EntityPlayer) {
@ -1227,22 +1254,24 @@ public class ClientProxy extends ServerProxy {
double ox = offset.xCoord; double ox = offset.xCoord;
double oz = offset.zCoord; double oz = offset.zCoord;
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz); if(particleSetting == 0) {
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0); Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10); Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true); Vec3 target = pos.addVector(thrust.xCoord * 10, thrust.yCoord * 10, thrust.zCoord * 10);
MovingObjectPosition mop = player.worldObj.func_147447_a(pos, target, false, false, true);
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord); int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
for(int i = 0; i < (10 - delta.lengthVector()); i++) { Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta)); for(int i = 0; i < (10 - delta.lengthVector()); i++) {
vel.rotateAroundY(world.rand.nextFloat() * (float)Math.PI * 2F);
Minecraft.getMinecraft().effectRenderer.addEffect(new EntityBlockDustFX(world, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.1, mop.hitVec.zCoord, vel.xCoord, 0.1, vel.zCoord, b, meta));
}
} }
} }
@ -1372,7 +1401,7 @@ public class ClientProxy extends ServerProxy {
if("vomit".equals(type)) { if("vomit".equals(type)) {
Entity e = world.getEntityByID(data.getInteger("entity")); Entity e = world.getEntityByID(data.getInteger("entity"));
int count = data.getInteger("count"); int count = data.getInteger("count") / (particleSetting + 1);
if(e instanceof EntityLivingBase) { if(e instanceof EntityLivingBase) {
@ -1453,12 +1482,13 @@ public class ClientProxy extends ServerProxy {
fx.setLift(data.getFloat("lift")); fx.setLift(data.getFloat("lift"));
fx.setBaseScale(data.getFloat("base")); fx.setBaseScale(data.getFloat("base"));
fx.setMaxScale(data.getFloat("max")); fx.setMaxScale(data.getFloat("max"));
fx.setLife(data.getInteger("life")); fx.setLife(data.getInteger("life") / (particleSetting + 1));
Minecraft.getMinecraft().effectRenderer.addEffect(fx); Minecraft.getMinecraft().effectRenderer.addEffect(fx);
} }
if("deadleaf".equals(type)) { if("deadleaf".equals(type)) {
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z)); if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean()))
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z));
} }
if("anim".equals(type)) { if("anim".equals(type)) {
@ -1534,6 +1564,10 @@ public class ClientProxy extends ServerProxy {
} }
} }
} }
if("amat".equals(type)) {
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleAmatFlash(world, x, y, z, data.getFloat("scale")));
}
} }
private HashMap<Integer, Long> vanished = new HashMap(); private HashMap<Integer, Long> vanished = new HashMap();

View File

@ -240,6 +240,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', MINGRADE.ingot(), 'R', ModItems.wire_red_copper });
addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated });
addRecipeAuto(new ItemStack(ModBlocks.cable_detector, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.cable_detector, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.red_wire_coated });
addRecipeAuto(new ItemStack(ModBlocks.cable_diode, 1), new Object[] { " Q ", "CAC", " Q ", 'Q', NETHERQUARTZ.gem(), 'C', ModBlocks.red_cable, 'A', AL.ingot() });
addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', ModItems.wire_red_copper, 'T', ModItems.coil_tungsten }); addRecipeAuto(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', REDSTONE.dust(), 'C', ModItems.wire_red_copper, 'T', ModItems.coil_tungsten });
addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper });
addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() });

View File

@ -5,6 +5,7 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.dispenser.BehaviorProjectileDispense; import net.minecraft.dispenser.BehaviorProjectileDispense;
import net.minecraft.dispenser.IPosition; import net.minecraft.dispenser.IPosition;
import net.minecraft.entity.IProjectile; import net.minecraft.entity.IProjectile;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.Item.ToolMaterial;
@ -71,6 +72,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom;
import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.*;
import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.RBMKDials;
import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorUtil;
import com.hbm.world.feature.OreLayer;
import com.hbm.world.feature.SchistStratum; import com.hbm.world.feature.SchistStratum;
import com.hbm.world.generator.CellularDungeonFactory; import com.hbm.world.generator.CellularDungeonFactory;
@ -989,6 +991,8 @@ public class MainRegistry {
SchistStratum schist = new SchistStratum(); SchistStratum schist = new SchistStratum();
MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre
//new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70);
OreDictManager oreMan = new OreDictManager(); OreDictManager oreMan = new OreDictManager();
MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent

View File

@ -807,52 +807,6 @@ public class ModEventHandlerClient {
} }
} }
/*private static final ResourceLocation digammaStar = new ResourceLocation("hbm:textures/misc/star_digamma.png");
@SideOnly(Side.CLIENT)
public void onRenderDigammaStar(RenderWorldLastEvent event) {
World world = Minecraft.getMinecraft().theWorld;
if(world.provider.dimensionId != 0)
return;
GL11.glPushMatrix();
GL11.glDepthMask(false);
GL11.glEnable(3553);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_ALPHA_TEST);
OpenGlHelper.glBlendFunc(770, 1, 1, 0);
float partialTicks = event.partialTicks;
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(140.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(-40.0F, 0.0F, 0.0F, 1.0F);
FMLClientHandler.instance().getClient().renderEngine.bindTexture(digammaStar);
float var12 = 2.5F;
double dist = 150D;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D);
tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D);
tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D);
tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D);
tessellator.draw();
GL11.glDepthMask(true);
GL11.glDisable(3042);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glPopMatrix();
}*/
@SubscribeEvent(priority = EventPriority.HIGHEST) @SubscribeEvent(priority = EventPriority.HIGHEST)
public void preRenderEventFirst(RenderLivingEvent.Pre event) { public void preRenderEventFirst(RenderLivingEvent.Pre event) {

View File

@ -0,0 +1,72 @@
package com.hbm.main;
import com.hbm.items.armor.IArmorDisableModel;
import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.event.RenderPlayerEvent;
public class ModEventHandlerRenderer {
private static boolean[] partsHidden = new boolean[7];
@SubscribeEvent(priority = EventPriority.LOWEST, receiveCanceled = true)
public void onRenderPlayerPre(RenderPlayerEvent.Pre event) {
EntityPlayer player = event.entityPlayer;
RenderPlayer renderer = event.renderer;
for(int j = 0; j < 7; j++) {
partsHidden[j] = false;
}
for(int i = 1; i < 5; i++) {
ItemStack stack = player.getEquipmentInSlot(i);
if(stack != null && stack.getItem() instanceof IArmorDisableModel) {
IArmorDisableModel disable = (IArmorDisableModel) stack.getItem();
for(int j = 0; j < 7; j++) {
EnumPlayerPart type = EnumPlayerPart.values()[j];
ModelRenderer box = getBoxFromType(renderer, type);
if(disable.disablesPart(player, stack, type) && !box.isHidden) {
partsHidden[j] = true;
box.isHidden = true;
}
}
}
}
}
@SubscribeEvent(priority = EventPriority.HIGHEST, receiveCanceled = true)
public void onRenderPlayerPost(RenderPlayerEvent.Post event) {
RenderPlayer renderer = event.renderer;
for(int j = 0; j < 7; j++) {
EnumPlayerPart type = EnumPlayerPart.values()[j];
if(partsHidden[j]) {
getBoxFromType(renderer, type).isHidden = false;
}
}
}
private static ModelRenderer getBoxFromType(RenderPlayer renderer, EnumPlayerPart part) {
switch(part) {
case BODY: return renderer.modelBipedMain.bipedBody;
case HAT: return renderer.modelBipedMain.bipedHeadwear;
case HEAD: return renderer.modelBipedMain.bipedHead;
case LEFT_ARM: return renderer.modelBipedMain.bipedLeftArm;
case LEFT_LEG: return renderer.modelBipedMain.bipedLeftLeg;
case RIGHT_ARM: return renderer.modelBipedMain.bipedRightArm;
case RIGHT_LEG: return renderer.modelBipedMain.bipedRightLeg;
default: return null;
}
}
}

View File

@ -57,6 +57,7 @@ public class ResourceManager {
//Landmines //Landmines
public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj"));
public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj"));
public static final IModelCustom mine_marelet = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/marelet.obj"));
public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj")); public static final IModelCustom mine_fat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_fat.obj"));
//Oil Pumps //Oil Pumps
@ -342,7 +343,8 @@ public class ResourceManager {
//Landmines //Landmines
public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png"); public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png");
public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png"); //public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png");
public static final ResourceLocation mine_marelet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/mine_marelet.png");
public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png");
public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png");

View File

@ -0,0 +1,145 @@
package com.hbm.particle;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.World;
@SideOnly(Side.CLIENT)
public class ParticleAmatFlash extends EntityFX {
public ParticleAmatFlash(World world, double x, double y, double z, float scale) {
super(world, x, y, z);
this.particleMaxAge = 10;
this.particleScale = scale;
}
public int getFXLayer() {
return 3;
}
public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) {
float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX));
float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY));
float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ));
GL11.glTranslatef(pX, pY, pZ);
GL11.glScalef(0.2F * particleScale, 0.2F * particleScale, 0.2F * particleScale);
double intensity = (double) (this.particleAge + interp) / (double) this.particleMaxAge;
double inverse = 1.0D - intensity;
Tessellator tessellator = Tessellator.instance;
RenderHelper.disableStandardItemLighting();
Random random = new Random(432L);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDepthMask(false);
GL11.glPushMatrix();
float scale = 0.5F;
for(int i = 0; i < 100; i++) {
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float) (intensity * scale);
float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float) (intensity * scale);
tessellator.startDrawing(6);
tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float) inverse);
tessellator.addVertex(0.0D, 0.0D, 0.0D);
tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 0.0F);
tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2);
tessellator.addVertex(0.866D * vert2, vert1, -0.5F * vert2);
tessellator.addVertex(0.0D, vert1, 1.0F * vert2);
tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2);
tessellator.draw();
}
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_ALPHA_TEST);
RenderHelper.enableStandardItemLighting();
/*GL11.glScalef(0.2F * particleScale, 0.2F * particleScale, 0.2F * particleScale);
double intensity = (double) this.particleAge / (double) this.particleMaxAge;
double inverse = 1.0D - intensity;
Tessellator tessellator = Tessellator.instance;
RenderHelper.disableStandardItemLighting();
Random random = new Random(432L);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDepthMask(false);
GL11.glPushMatrix();
float scale = 0.002F;
for(int i = 0; i < 300; i++) {
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
float vert1 = (random.nextFloat() * 20.0F + 5.0F + 1 * 10.0F) * (float) (intensity * scale);
float vert2 = (random.nextFloat() * 2.0F + 1.0F + 1 * 2.0F) * (float) (intensity * scale);
tessellator.startDrawing(6);
tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float) inverse);
tessellator.addVertex(x + 0.0D, y + 0.0D, z + 0.0D);
tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 0.0F);
tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2);
tessellator.addVertex(0.866D * vert2, vert1, -0.5F * vert2);
tessellator.addVertex(0.0D, vert1, 1.0F * vert2);
tessellator.addVertex(-0.866D * vert2, vert1, -0.5F * vert2);
tessellator.draw();
}
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_ALPHA_TEST);
RenderHelper.enableStandardItemLighting();*/
}
}

View File

@ -66,7 +66,7 @@ public class RenderBlockMultipass 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;
int meta = world.getBlockMetadata(x, y, z); //int meta = world.getBlockMetadata(x, y, z);
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));

View File

@ -0,0 +1,156 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.network.CableDiode;
import com.hbm.lib.Library;
import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class RenderDiode implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance;
block.setBlockBoundsForItemRender();
renderer.setRenderBoundsFromBlock(block);
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.625F, -0.5F);
IIcon iiconPad = ModBlocks.hadron_coil_alloy.getIcon(0, 0);
IIcon iconCable = ModBlocks.red_cable.getIcon(0, 0);
tessellator.setColorOpaque_F(1, 1, 1);
for(int i = 0; i< 2; i++) {
if(i == 0) {
renderer.setRenderBounds( 0D, 0.875D, 0D, 1D, 1D, 1D);
} else {
renderer.setOverrideBlockTexture(iiconPad);
double radius = 0.375D;
renderer.setRenderBounds(0.5D - radius, 0.5D - radius, 0.5D - radius, 0.5D + radius, 0.5D + radius, 0.5D + radius);
}
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
tessellator.draw();
}
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
GL11.glRotated(180, 0, 1, 0);
tessellator.startDrawingQuads();
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, false);
tessellator.draw();
renderer.clearOverrideBlockTexture();
GL11.glPopMatrix();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
IIcon iiconPad = ModBlocks.hadron_coil_alloy.getIcon(0, 0);
IIcon iconCable = ModBlocks.red_cable.getIcon(0, 0);
int meta = world.getBlockMetadata(x, y, z);
tessellator.setColorOpaque_F(1, 1, 1);
double width = 0.875D;
renderer.setRenderBounds(
0D + (meta == 4 ? width : 0),
0D + (meta == 0 ? width : 0),
0D + (meta == 2 ? width : 0),
1D - (meta == 5 ? width : 0),
1D - (meta == 1 ? width : 0),
1D - (meta == 3 ? width : 0)
);
renderer.renderStandardBlock(block, x, y, z);
renderer.setOverrideBlockTexture(iiconPad);
double radius = 0.375D;
double minus = 0D;
renderer.setRenderBounds(
0.5D - radius + (meta == 4 ? minus : 0),
0.5D - radius + (meta == 0 ? minus : 0),
0.5D - radius + (meta == 2 ? minus : 0),
0.5D + radius - (meta == 5 ? minus : 0),
0.5D + radius - (meta == 1 ? minus : 0),
0.5D + radius - (meta == 3 ? minus : 0)
);
renderer.renderStandardBlock(block, x, y, z);
renderer.clearOverrideBlockTexture();
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
boolean pX = Library.canConnect(world, x + 1, y, z, Library.NEG_X);
boolean nX = Library.canConnect(world, x - 1, y, z, Library.POS_X);
boolean pY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y);
boolean nY = Library.canConnect(world, x, y - 1, z, Library.POS_Y);
boolean pZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z);
boolean nZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z);
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);
//ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "Core", iconCable, tessellator, 0, true);
if(pX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posX", iconCable, tessellator, 0, true);
if(nX) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negX", iconCable, tessellator, 0, true);
if(pY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posY", iconCable, tessellator, 0, true);
if(nY) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negY", iconCable, tessellator, 0, true);
if(nZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "posZ", iconCable, tessellator, 0, true);
if(pZ) ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "negZ", iconCable, tessellator, 0, true);
tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return CableDiode.renderID;
}
}

View File

@ -617,11 +617,20 @@ public class ItemRenderLibrary {
public void renderInventory() { public void renderInventory() {
GL11.glScaled(6, 6, 6); GL11.glScaled(6, 6, 6);
} }
public void renderNonInv() {
GL11.glTranslated(0.25, 0.625, 0);
GL11.glRotated(45, 0, 1, 0);
GL11.glRotated(-15, 0, 0, 1);
}
public void renderCommon() { public void renderCommon() {
GL11.glScaled(4, 4, 4); GL11.glScaled(4, 4, 4);
bindTexture(ResourceManager.mine_he_tex); GL11.glDisable(GL11.GL_CULL_FACE);
ResourceManager.mine_he.renderAll(); GL11.glShadeModel(GL11.GL_SMOOTH);
}}); bindTexture(ResourceManager.mine_marelet_tex); ResourceManager.mine_marelet.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glEnable(GL11.GL_CULL_FACE);
}
});
renderers.put(Item.getItemFromBlock(ModBlocks.mine_shrap), new ItemRenderBase() { renderers.put(Item.getItemFromBlock(ModBlocks.mine_shrap), new ItemRenderBase() {
public void renderInventory() { public void renderInventory() {
@ -1227,6 +1236,28 @@ public class ItemRenderLibrary {
bindTexture(ResourceManager.chemfac_tex); ResourceManager.chemfac.renderPart("Main"); bindTexture(ResourceManager.chemfac_tex); ResourceManager.chemfac.renderPart("Main");
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
}}); }});
renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) {
public void renderInventory() {
GL11.glTranslated(0, -5, 0);
GL11.glScaled(2.25, 2.25, 2.25);
}
public void renderCommon() {
GL11.glScaled(0.5, 0.5, 0.5);
bindTexture(ResourceManager.pylon_large_tex); ResourceManager.pylon_large.renderAll();
}});
renderers.put(Item.getItemFromBlock(ModBlocks.substation), new ItemRenderBase( ) {
public void renderInventory() {
GL11.glTranslated(0, -2.5, 0);
GL11.glScaled(4.5, 4.5, 4.5);
}
public void renderCommon() {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.substation_tex); ResourceManager.substation.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}});
} }
private static void bindTexture(ResourceLocation res) { private static void bindTexture(ResourceLocation res) {

View File

@ -11,39 +11,42 @@ import net.minecraft.tileentity.TileEntity;
public class RenderLandmine extends TileEntitySpecialRenderer { public class RenderLandmine extends TileEntitySpecialRenderer {
@Override @Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
{ GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotatef(180, 0F, 1F, 0F); GL11.glRotatef(180, 0F, 1F, 0F);
Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
if(block == ModBlocks.mine_ap) { if(block == ModBlocks.mine_ap) {
GL11.glTranslated(0, -0.075, 0); GL11.glTranslated(0, -0.075, 0);
GL11.glScaled(1.5D, 1.5D, 1.5D); GL11.glScaled(1.5D, 1.5D, 1.5D);
bindTexture(ResourceManager.mine_ap_tex); bindTexture(ResourceManager.mine_ap_tex);
ResourceManager.mine_ap.renderAll(); ResourceManager.mine_ap.renderAll();
} }
if(block == ModBlocks.mine_he) { if(block == ModBlocks.mine_he) {
bindTexture(ResourceManager.mine_he_tex); GL11.glRotatef(-90, 0F, 1F, 0F);
ResourceManager.mine_he.renderAll(); GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.mine_marelet_tex);
ResourceManager.mine_marelet.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
} }
if(block == ModBlocks.mine_shrap) { if(block == ModBlocks.mine_shrap) {
bindTexture(ResourceManager.mine_shrap_tex); bindTexture(ResourceManager.mine_shrap_tex);
ResourceManager.mine_he.renderAll(); ResourceManager.mine_he.renderAll();
} }
if(block == ModBlocks.mine_fat) { if(block == ModBlocks.mine_fat) {
GL11.glScaled(0.25D, 0.25D, 0.25D); GL11.glScaled(0.25D, 0.25D, 0.25D);
bindTexture(ResourceManager.mine_fat_tex); bindTexture(ResourceManager.mine_fat_tex);
ResourceManager.mine_fat.renderAll(); ResourceManager.mine_fat.renderAll();
} }
GL11.glPopMatrix(); GL11.glEnable(GL11.GL_CULL_FACE);
} GL11.glPopMatrix();
}
} }

View File

@ -5,6 +5,7 @@ import java.util.HashMap;
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.blocks.network.CableDiode.TileEntityDiode;
import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.bomb.*;
import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.conductor.*;
import com.hbm.tileentity.deco.*; import com.hbm.tileentity.deco.*;
@ -289,6 +290,7 @@ public class TileMappings {
private static void putNetwork() { private static void putNetwork() {
put(TileEntityCableBaseNT.class, "tileentity_cable", "tileentity_wirecoated"); put(TileEntityCableBaseNT.class, "tileentity_cable", "tileentity_wirecoated");
put(TileEntityCableSwitch.class, "tileentity_cable_switch"); put(TileEntityCableSwitch.class, "tileentity_cable_switch");
put(TileEntityDiode.class, "tileentity_cable_diode");
put(TileEntityConnector.class, "tileentity_connector_redwire"); put(TileEntityConnector.class, "tileentity_connector_redwire");
put(TileEntityPylon.class, "tileentity_pylon_redwire"); put(TileEntityPylon.class, "tileentity_pylon_redwire");

View File

@ -37,29 +37,32 @@ public class TileEntityLandmine extends TileEntity {
if (block == ModBlocks.mine_fat) { if (block == ModBlocks.mine_fat) {
range = 2.5D; range = 2.5D;
} }
if(!isPrimed)
range *= 2;
List<Object> list = worldObj.getEntitiesWithinAABBExcludingEntity(null, List<Object> list = worldObj.getEntitiesWithinAABBExcludingEntity(null,
AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range, yCoord + height, zCoord + range)); AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - height, zCoord - range, xCoord + range + 1, yCoord + height, zCoord + range + 1));
boolean flag = false; boolean flag = false;
for (Object o : list) { for(Object o : list) {
if (o instanceof EntityLivingBase) { if(o instanceof EntityLivingBase) {
flag = true; flag = true;
if(isPrimed) { if(isPrimed) {
//why did i do it like that?
((Landmine)block).explode(worldObj, xCoord, yCoord, zCoord); ((Landmine) block).explode(worldObj, xCoord, yCoord, zCoord);
} }
return; return;
} }
} }
if(!isPrimed && !flag) { if(!isPrimed && !flag) {
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:item.techBoop", 2.0F, 1.0F); this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:weapon.fstbmbStart", 3.0F, 1.0F);
isPrimed = true; isPrimed = true;
} }
} }

View File

@ -390,8 +390,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
for(int j = 0; j < inv.getSizeInventory(); j++) { for(int j = 0; j < inv.getSizeInventory(); j++) {
if(inv.getStackInSlot(j) == null) { if(inv.getStackInSlot(j) == null) {
inv.setInventorySlotContents(j, out.copy()); ItemStack copy = out.copy();
inv.getStackInSlot(j).stackSize = 1; copy.stackSize = 1;
inv.setInventorySlotContents(j, copy);
this.decrStackSize(i, 1); this.decrStackSize(i, 1);
return; return;
} }

View File

@ -18,6 +18,7 @@ import com.hbm.util.InventoryUtil;
import api.hbm.energy.IEnergyUser; import api.hbm.energy.IEnergyUser;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -266,6 +267,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa
if(te instanceof IInventory) { if(te instanceof IInventory) {
IInventory inv = (IInventory) te; IInventory inv = (IInventory) te;
//ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null;
for(int i = indices[2]; i <= indices[3]; i++) { for(int i = indices[2]; i <= indices[3]; i++) {
@ -276,7 +278,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa
for(int j = 0; j < inv.getSizeInventory(); j++) { for(int j = 0; j < inv.getSizeInventory(); j++) {
ItemStack target = inv.getStackInSlot(j); ItemStack target = inv.getStackInSlot(j);
if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) {
this.decrStackSize(i, 1); this.decrStackSize(i, 1);
target.stackSize++; target.stackSize++;
return; return;
@ -286,8 +288,9 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa
for(int j = 0; j < inv.getSizeInventory(); j++) { for(int j = 0; j < inv.getSizeInventory(); j++) {
if(inv.getStackInSlot(j) == null) { if(inv.getStackInSlot(j) == null) {
inv.setInventorySlotContents(j, out.copy()); ItemStack copy = out.copy();
inv.getStackInSlot(j).stackSize = 1; copy.stackSize = 1;
inv.setInventorySlotContents(j, copy);
this.decrStackSize(i, 1); this.decrStackSize(i, 1);
return; return;
} }

View File

@ -206,8 +206,6 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven
return false; return false;
} }
System.out.println("ass");
return true; return true;
} }

View File

@ -66,9 +66,17 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery {
if(mode == 1 || mode == 2) { if(mode == 1 || mode == 2) {
if(te instanceof IEnergyConnector) { if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te; IEnergyConnector con = (IEnergyConnector) te;
long max = 10_000_000_000_000_000L;
long toTransfer = Math.min(max, this.power);
long remainder = this.power - toTransfer;
this.power = toTransfer;
long oldPower = this.power; long oldPower = this.power;
long transfer = this.power - con.transferPower(this.power); long transfer = this.power - con.transferPower(this.power);
this.power = oldPower - transfer; this.power = oldPower - transfer;
power += remainder;
} }
} }

View File

@ -37,7 +37,7 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
IEnergyConductor conductor = (IEnergyConductor) te; IEnergyConductor conductor = (IEnergyConductor) te;
if(!conductor.canConnect(dir.getOpposite())) if(!conductor.canConnect(dir.getOpposite()))
break; continue;
if(this.getPowerNet() == null && conductor.getPowerNet() != null) { if(this.getPowerNet() == null && conductor.getPowerNet() != null) {
conductor.getPowerNet().joinLink(this); conductor.getPowerNet().joinLink(this);

View File

@ -15,6 +15,17 @@ import net.minecraftforge.common.util.ForgeDirection;
public class BobMathUtil { public class BobMathUtil {
public static double safeClamp(double val, double min, double max) {
val = MathHelper.clamp_double(val, min, max);
if(val == Double.NaN) {
val = (min + max) / 2D;
}
return val;
}
public static Vec3 interpVec(Vec3 vec1, Vec3 vec2, float interp) { public static Vec3 interpVec(Vec3 vec1, Vec3 vec2, float interp) {
return Vec3.createVectorHelper( return Vec3.createVectorHelper(
interp(vec1.xCoord, vec2.xCoord, interp), interp(vec1.xCoord, vec2.xCoord, interp),

View File

@ -7,6 +7,7 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
@ -256,7 +257,6 @@ public class InventoryUtil {
if(inv.stackSize <= 0) { if(inv.stackSize <= 0) {
inventory[j] = null; inventory[j] = null;
System.out.println("da yis");
} }
} }
} }
@ -447,4 +447,86 @@ public class InventoryUtil {
return true; return true;
} }
public static boolean mergeItemStack(List<Slot> slots, ItemStack stack, int start, int end, boolean reverse) {
boolean success = false;
int index = start;
if(reverse) {
index = end - 1;
}
Slot slot;
ItemStack current;
if(stack.isStackable()) {
while(stack.stackSize > 0 && (!reverse && index < end || reverse && index >= start)) {
slot = slots.get(index);
current = slot.getStack();
if(current != null) {
int max = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit());
int toRemove = Math.min(stack.stackSize, max);
if(slot.isItemValid(ItemStackUtil.carefulCopyWithSize(stack, toRemove)) && current.getItem() == stack.getItem() &&
(!stack.getHasSubtypes() || stack.getItemDamage() == current.getItemDamage()) && ItemStack.areItemStackTagsEqual(stack, current)) {
int currentSize = current.stackSize + stack.stackSize;
if(currentSize <= max) {
stack.stackSize = 0;
current.stackSize = currentSize;
slot.putStack(current);
success = true;
} else if(current.stackSize < max) {
stack.stackSize -= stack.getMaxStackSize() - current.stackSize;
current.stackSize = max;
slot.putStack(current);
success = true;
}
}
}
if(reverse) {
--index;
} else {
++index;
}
}
}
if(stack.stackSize > 0) {
if(reverse) {
index = end - 1;
} else {
index = start;
}
while((!reverse && index < end || reverse && index >= start) && stack.stackSize > 0) {
slot = slots.get(index);
current = slot.getStack();
if(current == null) {
int max = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit());
int toRemove = Math.min(stack.stackSize, max);
if(slot.isItemValid(ItemStackUtil.carefulCopyWithSize(stack, toRemove))) {
current = stack.splitStack(toRemove);
slot.putStack(current);
success = true;
}
}
if(reverse) {
--index;
} else {
++index;
}
}
}
return success;
}
} }

View File

@ -15,6 +15,15 @@ public class ItemStackUtil {
return stack.copy(); return stack.copy();
} }
public static ItemStack carefulCopyWithSize(ItemStack stack, int size) {
if(stack == null)
return null;
ItemStack copy = stack.copy();
copy.stackSize = size;
return copy;
}
/** /**
* Runs carefulCopy over the entire ItemStack array. * Runs carefulCopy over the entire ItemStack array.
* @param array * @param array

View File

@ -0,0 +1,109 @@
package com.hbm.world.feature;
import java.util.Random;
import com.hbm.inventory.RecipesCommon.MetaBlock;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.PlayerInformPacket;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraft.world.gen.NoiseGeneratorPerlin;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
public class OreLayer {
private NoiseGeneratorPerlin noise;
private MetaBlock ore;
private Block target;
private float density;
/** The number that is being deducted flat from the result of the perlin noise before all other processing. Increase this to make strata rarer. */
private int threshold = 5;
/** The mulitplier for the remaining bit after the threshold has been deducted. Increase to make strata wavier. */
private int rangeMult = 3;
/** The maximum range after multiplying - anything above this will be subtracted from (maxRange * 2) to yield the proper range. Increase this to make strata thicker. */
private int maxRange = 4;
/** The y-level around which the stratum is centered. */
private int yLevel = 30;
public OreLayer(Block ore, float density) {
this(ore, 0, Blocks.stone, density);
}
public OreLayer(Block ore, int meta, Block target, float density) {
this.ore = new MetaBlock(ore, meta);
this.target = target;
this.density = density;
MinecraftForge.EVENT_BUS.register(this);
}
public OreLayer setThreshold(int threshold) {
this.threshold = threshold;
return this;
}
public OreLayer setRangeMult(int rangeMult) {
this.rangeMult = rangeMult;
return this;
}
public OreLayer setMaxRange(int maxRange) {
this.maxRange = maxRange;
return this;
}
public OreLayer setYLevel(int yLevel) {
this.yLevel = yLevel;
return this;
}
@SubscribeEvent
public void onDecorate(DecorateBiomeEvent.Pre event) {
if(this.noise == null) {
this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed() + (ore.getID() * 31) + yLevel), 4);
}
World world = event.world;
if(world.provider.dimensionId != 0)
return;
int cX = event.chunkX;
int cZ = event.chunkZ;
double scale = 0.01D;
for(int x = cX; x < cX + 16; x++) {
for(int z = cZ; z < cZ + 16; z++) {
double n = noise.func_151601_a(x * scale, z * scale);
if(n > threshold) {
int range = (int)((n - threshold) * rangeMult);
if(range > maxRange)
range = (maxRange * 2) - range;
if(range < 0)
continue;
for(int y = yLevel - range; y <= yLevel + range; y++) {
if(event.rand.nextFloat() < density) {
Block genTarget = world.getBlock(x, y, z);
if(genTarget.isReplaceableOreGen(world, x, y, z, target)) {
world.setBlock(x, y, z, ore.block, ore.meta, 2);
}
}
}
}
}
}
}
}

View File

@ -1014,6 +1014,7 @@ item.cape_codered_.name=codered_s Cape
item.cape_dafnik.name=Dafniks Cape item.cape_dafnik.name=Dafniks Cape
item.cape_gasmask.name=Cape (Gasmaske) item.cape_gasmask.name=Cape (Gasmaske)
item.cape_hbm.name=Hbms Cape item.cape_hbm.name=Hbms Cape
item.cape_hidden.name=Hidden Cape
item.cape_lpkukin.name=LPkukins Cape item.cape_lpkukin.name=LPkukins Cape
item.cape_nostalgia.name=DrNostalgias Cape item.cape_nostalgia.name=DrNostalgias Cape
item.cape_radiation.name=Cape (Radioaktiv) item.cape_radiation.name=Cape (Radioaktiv)
@ -3024,6 +3025,7 @@ tile.broadcaster_pc.name=Korrupter Sender
tile.burning_earth.name=Brennendes Gras tile.burning_earth.name=Brennendes Gras
tile.c4.name=C4 tile.c4.name=C4
tile.cable_detector.name=Redstone-Stromschalter tile.cable_detector.name=Redstone-Stromschalter
tile.cable_diode.name=Rote Kupferdiode
tile.cable_switch.name=Stromschalter tile.cable_switch.name=Stromschalter
tile.charge_c4.name=Abrissladung tile.charge_c4.name=Abrissladung
tile.charge_dynamite.name=Zeitbombe tile.charge_dynamite.name=Zeitbombe

View File

@ -1225,6 +1225,7 @@ item.cape_codered_.name=codered_'s Cape
item.cape_dafnik.name=Dafnik's Cape item.cape_dafnik.name=Dafnik's Cape
item.cape_gasmask.name=Cape (Gas Mask) item.cape_gasmask.name=Cape (Gas Mask)
item.cape_hbm.name=Hbm's Cape item.cape_hbm.name=Hbm's Cape
item.cape_hidden.name=Hidden Cape
item.cape_lpkukin.name=LPkukin's Cape item.cape_lpkukin.name=LPkukin's Cape
item.cape_nostalgia.name=DrNostalgia's Cape item.cape_nostalgia.name=DrNostalgia's Cape
item.cape_radiation.name=Cape (Radiation) item.cape_radiation.name=Cape (Radiation)
@ -3396,6 +3397,7 @@ tile.broadcaster_pc.name=Corrupted Broadcaster
tile.burning_earth.name=Burning Grass tile.burning_earth.name=Burning Grass
tile.c4.name=C-4 tile.c4.name=C-4
tile.cable_detector.name=Redstone Power Switch tile.cable_detector.name=Redstone Power Switch
tile.cable_diode.name=Red Copper Diode
tile.cable_switch.name=Power Switch tile.cable_switch.name=Power Switch
tile.charge_c4.name=Demolition Charge tile.charge_c4.name=Demolition Charge
tile.charge_dynamite.name=Time Bomb tile.charge_dynamite.name=Time Bomb

View File

@ -1305,6 +1305,7 @@ container.generator=Ядерный реактор
tile.red_wire_coated.name=Медный кабель с покрытием tile.red_wire_coated.name=Медный кабель с покрытием
tile.cable_switch.name=Рубильник tile.cable_switch.name=Рубильник
tile.cable_detector.name=Редстоун-рубильник tile.cable_detector.name=Редстоун-рубильник
tile.cable_diode.name=Диод из красной меди
tile.machine_deuterium.name=Дейтериевый экстрактор tile.machine_deuterium.name=Дейтериевый экстрактор
container.machine_deuterium=Дейтериевый экстрактор container.machine_deuterium=Дейтериевый экстрактор
tile.machine_battery_potato.name=Картофельная батарея tile.machine_battery_potato.name=Картофельная батарея
@ -4181,6 +4182,7 @@ tile.tektite.name=Тектит
item.cape_radiation.name=Плащ (Радиация) item.cape_radiation.name=Плащ (Радиация)
item.cape_gasmask.name=Плащ (Противогаз) item.cape_gasmask.name=Плащ (Противогаз)
item.cape_schrabidium.name=Плащ (Шрабидий) item.cape_schrabidium.name=Плащ (Шрабидий)
item.cape_hidden.name=Скрытый плащ
item.cape_hbm.name=Hbm's Cape item.cape_hbm.name=Hbm's Cape
item.cape_dafnik.name=Dafnik's Cape item.cape_dafnik.name=Dafnik's Cape
item.cape_lpkukin.name=LPkukin's Cape item.cape_lpkukin.name=LPkukin's Cape
@ -4989,7 +4991,6 @@ tile.mush_block_stem.name=Giant Glowing Mushroom Stem
tile.ore_oil.desc=You weren't supposed to mine that.$Come on, get a derrick you doofus. tile.ore_oil.desc=You weren't supposed to mine that.$Come on, get a derrick you doofus.
tile.pane_acrylic.name=Acrylic Pane tile.pane_acrylic.name=Acrylic Pane
tile.pane_actinium.name=Actinium Glass Pane tile.pane_actinium.name=Actinium Glass Pane
tile.reinforced_ducrete.name=Heavy Rebar Reinforced DUCRETE
tile.storage_aux_fdd.name=Auxiliary Floppy Disk Drive tile.storage_aux_fdd.name=Auxiliary Floppy Disk Drive
tile.storage_aux_optical_bd=Auxiliary Elite Optical Drive tile.storage_aux_optical_bd=Auxiliary Elite Optical Drive
tile.storage_aux_optical_cd=Auxiliary Basic Optical Drive tile.storage_aux_optical_cd=Auxiliary Basic Optical Drive

View File

@ -0,0 +1,815 @@
# Blender v2.79 (sub 0) OBJ File: 'marelet.blend'
# www.blender.org
o Circle
v -0.000000 0.000000 -0.250000
v -0.095671 0.000000 -0.230970
v -0.176777 0.000000 -0.176777
v -0.230970 0.000000 -0.095671
v -0.250000 0.000000 0.000000
v -0.230970 0.000000 0.095671
v -0.176777 0.000000 0.176777
v -0.095671 0.000000 0.230970
v -0.000000 0.000000 0.250000
v 0.095671 0.000000 0.230970
v 0.176777 0.000000 0.176777
v 0.230970 0.000000 0.095671
v 0.250000 0.000000 -0.000000
v 0.230970 0.000000 -0.095671
v 0.176777 0.000000 -0.176777
v 0.095671 0.000000 -0.230970
v -0.000000 0.093750 -0.250000
v -0.095671 0.093750 -0.230970
v -0.176777 0.093750 -0.176777
v -0.230970 0.093750 -0.095671
v -0.250000 0.093750 0.000000
v -0.230970 0.093750 0.095671
v -0.176777 0.093750 0.176777
v -0.095671 0.093750 0.230970
v -0.000000 0.093750 0.250000
v 0.095671 0.093750 0.230970
v 0.176777 0.093750 0.176777
v 0.230970 0.093750 0.095671
v 0.250000 0.093750 -0.000000
v 0.230970 0.093750 -0.095671
v 0.176777 0.093750 -0.176777
v 0.095671 0.093750 -0.230970
v -0.000000 0.093750 -0.156250
v -0.059794 0.093750 -0.144356
v -0.110485 0.093750 -0.110485
v -0.144356 0.093750 -0.059794
v -0.156250 0.093750 -0.000000
v -0.144356 0.093750 0.059794
v -0.110485 0.093750 0.110485
v -0.059794 0.093750 0.144356
v -0.000000 0.093750 0.156250
v 0.059794 0.093750 0.144356
v 0.110485 0.093750 0.110485
v 0.144356 0.093750 0.059794
v 0.156250 0.093750 -0.000000
v 0.144356 0.093750 -0.059794
v 0.110485 0.093750 -0.110485
v 0.059794 0.093750 -0.144356
v -0.059794 0.125000 -0.144356
v -0.000000 0.125000 -0.156250
v -0.110485 0.125000 -0.110485
v -0.144356 0.125000 -0.059794
v -0.156250 0.125000 -0.000000
v -0.144356 0.125000 0.059794
v -0.110485 0.125000 0.110485
v -0.059794 0.125000 0.144356
v -0.000000 0.125000 0.156250
v 0.059794 0.125000 0.144356
v 0.110485 0.125000 0.110485
v 0.144356 0.125000 0.059794
v 0.156250 0.125000 -0.000000
v 0.144356 0.125000 -0.059794
v 0.110485 0.125000 -0.110485
v 0.059794 0.125000 -0.144356
v -0.018686 0.125000 -0.045111
v -0.000000 0.125000 -0.048828
v -0.034527 0.125000 -0.034527
v -0.045111 0.125000 -0.018686
v -0.048828 0.125000 -0.000000
v -0.045111 0.125000 0.018686
v -0.034527 0.125000 0.034527
v -0.018686 0.125000 0.045111
v -0.000000 0.125000 0.048828
v 0.018686 0.125000 0.045111
v 0.034527 0.125000 0.034527
v 0.045111 0.125000 0.018686
v 0.048828 0.125000 -0.000000
v 0.045111 0.125000 -0.018686
v 0.034527 0.125000 -0.034527
v 0.018686 0.125000 -0.045111
v -0.018686 0.156250 -0.045111
v -0.000000 0.156250 -0.048828
v -0.034527 0.156250 -0.034527
v -0.045111 0.156250 -0.018686
v -0.048828 0.156250 -0.000000
v -0.045111 0.156250 0.018686
v -0.034527 0.156250 0.034527
v -0.018686 0.156250 0.045111
v -0.000000 0.156250 0.048828
v 0.018686 0.156250 0.045111
v 0.034527 0.156250 0.034527
v 0.045111 0.156250 0.018686
v 0.048828 0.156250 -0.000000
v 0.045111 0.156250 -0.018686
v 0.034527 0.156250 -0.034527
v 0.018686 0.156250 -0.045111
v -0.062500 0.071843 -0.299278
v -0.062500 0.084642 -0.290316
v -0.078125 0.080805 -0.312078
v -0.078125 0.093604 -0.303116
v 0.062500 0.071843 -0.299278
v 0.062500 0.084642 -0.290316
v 0.078125 0.080805 -0.312078
v 0.078125 0.093604 -0.303116
v -0.078125 0.025957 -0.233746
v -0.062500 0.025957 -0.233746
v -0.062500 0.038756 -0.224784
v -0.078125 0.038756 -0.224784
v 0.078125 0.038756 -0.224784
v 0.078125 0.025957 -0.233746
v 0.062500 0.025957 -0.233746
v 0.062500 0.038756 -0.224784
v -0.007813 0.125000 -0.061035
v -0.007813 0.125000 0.061035
v -0.007813 0.140625 -0.061035
v -0.007813 0.140625 0.061035
v 0.007812 0.125000 -0.061035
v 0.007812 0.125000 0.061035
v 0.007812 0.140625 -0.061035
v 0.007812 0.140625 0.061035
v -0.023438 0.125000 -0.092285
v -0.023438 0.140625 -0.092285
v 0.023437 0.125000 -0.092285
v 0.023437 0.140625 -0.092285
v -0.023438 0.125000 0.092285
v -0.023438 0.140625 0.092285
v 0.023437 0.125000 0.092285
v 0.023437 0.140625 0.092285
v 0.023437 0.140625 0.076660
v 0.023437 0.125000 0.076660
v -0.023438 0.140625 0.076660
v -0.023438 0.125000 0.076660
v -0.007813 0.125000 0.107910
v -0.007813 0.140625 0.107910
v 0.007812 0.125000 0.107910
v 0.007812 0.140625 0.107910
v -0.000000 0.000000 -0.250000
v -0.095671 0.000000 -0.230970
v -0.176777 0.000000 -0.176777
v -0.230970 0.000000 -0.095671
v -0.250000 0.000000 0.000000
v -0.230970 0.000000 0.095671
v -0.176777 0.000000 0.176777
v -0.095671 0.000000 0.230970
v -0.000000 0.000000 0.250000
v 0.095671 0.000000 0.230970
v 0.176777 0.000000 0.176777
v 0.230970 0.000000 0.095671
v 0.250000 0.000000 -0.000000
v 0.230970 0.000000 -0.095671
v 0.176777 0.000000 -0.176777
v 0.095671 0.000000 -0.230970
v -0.059794 0.125000 -0.144356
v -0.000000 0.125000 -0.156250
v -0.110485 0.125000 -0.110485
v -0.144356 0.125000 -0.059794
v -0.156250 0.125000 -0.000000
v -0.144356 0.125000 0.059794
v -0.110485 0.125000 0.110485
v -0.059794 0.125000 0.144356
v -0.000000 0.125000 0.156250
v 0.059794 0.125000 0.144356
v 0.110485 0.125000 0.110485
v 0.144356 0.125000 0.059794
v 0.156250 0.125000 -0.000000
v 0.144356 0.125000 -0.059794
v 0.110485 0.125000 -0.110485
v 0.059794 0.125000 -0.144356
v -0.018686 0.125000 -0.045111
v -0.000000 0.125000 -0.048828
v -0.034527 0.125000 -0.034527
v -0.045111 0.125000 -0.018686
v -0.048828 0.125000 -0.000000
v -0.045111 0.125000 0.018686
v -0.034527 0.125000 0.034527
v -0.018686 0.125000 0.045111
v -0.000000 0.125000 0.048828
v 0.018686 0.125000 0.045111
v 0.034527 0.125000 0.034527
v 0.045111 0.125000 0.018686
v 0.048828 0.125000 -0.000000
v 0.045111 0.125000 -0.018686
v 0.034527 0.125000 -0.034527
v 0.018686 0.125000 -0.045111
v -0.018686 0.156250 -0.045111
v -0.000000 0.156250 -0.048828
v -0.034527 0.156250 -0.034527
v -0.045111 0.156250 -0.018686
v -0.048828 0.156250 -0.000000
v -0.045111 0.156250 0.018686
v -0.034527 0.156250 0.034527
v -0.018686 0.156250 0.045111
v -0.000000 0.156250 0.048828
v 0.018686 0.156250 0.045111
v 0.034527 0.156250 0.034527
v 0.045111 0.156250 0.018686
v 0.048828 0.156250 -0.000000
v 0.045111 0.156250 -0.018686
v 0.034527 0.156250 -0.034527
v 0.018686 0.156250 -0.045111
v -0.000000 0.093750 -0.250000
v -0.095671 0.093750 -0.230970
v -0.176777 0.093750 -0.176777
v -0.230970 0.093750 -0.095671
v -0.250000 0.093750 0.000000
v -0.230970 0.093750 0.095671
v -0.176777 0.093750 0.176777
v -0.095671 0.093750 0.230970
v -0.000000 0.093750 0.250000
v 0.095671 0.093750 0.230970
v 0.176777 0.093750 0.176777
v 0.230970 0.093750 0.095671
v 0.250000 0.093750 -0.000000
v 0.230970 0.093750 -0.095671
v 0.176777 0.093750 -0.176777
v 0.095671 0.093750 -0.230970
v -0.000000 0.093750 -0.156250
v -0.059794 0.093750 -0.144356
v -0.110485 0.093750 -0.110485
v -0.144356 0.093750 -0.059794
v -0.156250 0.093750 -0.000000
v -0.144356 0.093750 0.059794
v -0.110485 0.093750 0.110485
v -0.059794 0.093750 0.144356
v -0.000000 0.093750 0.156250
v 0.059794 0.093750 0.144356
v 0.110485 0.093750 0.110485
v 0.144356 0.093750 0.059794
v 0.156250 0.093750 -0.000000
v 0.144356 0.093750 -0.059794
v 0.110485 0.093750 -0.110485
v 0.059794 0.093750 -0.144356
v 0.217422 0.093750 0.115947
v 0.245242 0.093750 0.023918
v 0.235727 0.093750 -0.071753
v 0.135888 0.093750 0.072467
v 0.153277 0.093750 0.014949
v 0.147330 0.093750 -0.044846
v 0.135888 0.093750 -0.072467
v 0.153277 0.093750 -0.014949
v 0.147330 0.093750 0.044846
v 0.118953 0.093750 0.097813
v 0.217422 0.093750 -0.115947
v 0.245242 0.093750 -0.023918
v 0.235727 0.093750 0.071753
v 0.190325 0.093750 0.156500
v 0.127421 0.093750 -0.085140
v 0.150303 0.093750 -0.029897
v 0.150303 0.093750 0.029897
v 0.127421 0.093750 0.085140
v 0.203873 0.093750 -0.136224
v 0.240485 0.093750 -0.047835
v 0.240485 0.093750 0.047835
v 0.203873 0.093750 0.136224
vt 0.021128 0.848623
vt 0.002102 0.881181
vt 0.002102 0.848622
vt 0.024844 0.881181
vt 0.062003 0.913740
vt 0.024844 0.913740
vt 0.084745 0.881181
vt 0.084745 0.913740
vt 0.058287 0.848623
vt 0.028560 0.816064
vt 0.058287 0.816065
vt 0.028560 0.946298
vt 0.062003 0.881181
vt 0.021128 0.946298
vt 0.002102 0.913739
vt 0.065719 0.816064
vt 0.084745 0.848623
vt 0.065719 0.848623
vt 0.065719 0.946299
vt 0.084745 0.946299
vt 0.021128 0.816064
vt 0.002102 0.816064
vt 0.064819 0.101506
vt 0.075401 0.567673
vt 0.022198 0.660399
vt 0.119565 0.500000
vt 0.116848 1.000000
vt 0.116848 0.500000
vt 0.141304 0.500000
vt 0.138587 1.000000
vt 0.138587 0.500000
vt 0.122283 0.500000
vt 0.119565 1.000000
vt 0.103261 0.500000
vt 0.100543 1.000000
vt 0.100543 0.500000
vt 0.144022 1.000000
vt 0.141304 1.000000
vt 0.125000 0.500000
vt 0.122283 1.000000
vt 0.105978 0.500000
vt 0.103261 1.000000
vt 0.127717 0.500000
vt 0.125000 1.000000
vt 0.108696 0.500000
vt 0.105978 1.000000
vt 0.130435 1.000000
vt 0.127717 1.000000
vt 0.111413 0.500000
vt 0.108696 1.000000
vt 0.130435 0.500000
vt 0.133152 1.000000
vt 0.114130 1.000000
vt 0.111413 1.000000
vt 0.135870 0.500000
vt 0.133152 0.500000
vt 0.114130 0.500000
vt 0.135870 1.000000
vt 0.029848 0.595825
vt 0.022768 0.283972
vt 0.058360 0.221940
vt 0.028560 0.848623
vt 0.058287 0.946299
vt 0.002102 0.946298
vt 0.084745 0.816064
vt 0.011615 0.194232
vt 0.022198 0.101506
vt 0.036025 0.051323
vt 0.050991 0.051323
vt 0.075401 0.194232
vt 0.081129 0.315385
vt 0.081129 0.446520
vt 0.064819 0.660399
vt 0.050991 0.710582
vt 0.036025 0.710582
vt 0.011615 0.567672
vt 0.005887 0.446520
vt 0.005887 0.315385
vt 0.144022 0.500000
vt 0.022768 0.533794
vt 0.018937 0.452746
vt 0.018937 0.365020
vt 0.029848 0.221940
vt 0.039098 0.188369
vt 0.049110 0.188369
vt 0.065440 0.283971
vt 0.069271 0.365020
vt 0.069271 0.452746
vt 0.065440 0.533794
vt 0.058360 0.595825
vt 0.049110 0.629397
vt 0.039098 0.629397
vt 0.828804 0.500000
vt 0.771739 -0.000000
vt 0.828804 -0.000000
vt 0.429348 0.500000
vt 0.372283 -0.000000
vt 0.429348 -0.000000
vt 0.885870 0.500000
vt 0.885870 -0.000000
vt 0.486413 0.500000
vt 0.486413 -0.000000
vt 0.942935 0.500000
vt 0.942935 -0.000000
vt 0.543478 0.500000
vt 0.543478 -0.000000
vt 0.144022 0.500000
vt 0.086957 -0.000000
vt 0.144022 -0.000000
vt 1.000000 0.500000
vt 1.000000 -0.000000
vt 0.600543 0.500000
vt 0.600543 -0.000000
vt 0.201087 0.500000
vt 0.201087 -0.000000
vt 0.657609 0.500000
vt 0.657609 -0.000000
vt 0.258152 0.500000
vt 0.258152 -0.000000
vt 0.714674 0.500000
vt 0.714674 -0.000000
vt 0.315217 0.500000
vt 0.315217 -0.000000
vt 0.771739 0.500000
vt 0.372283 0.500000
vt 0.105978 0.880952
vt 0.103261 1.000000
vt 0.103261 0.880952
vt 0.127717 0.880952
vt 0.125000 1.000000
vt 0.125000 0.880952
vt 0.108696 0.880952
vt 0.105978 1.000000
vt 0.130435 0.880952
vt 0.127717 1.000000
vt 0.111413 0.880952
vt 0.108696 1.000000
vt 0.133152 0.880952
vt 0.130435 1.000000
vt 0.114130 0.880952
vt 0.111413 1.000000
vt 0.135870 0.880952
vt 0.133152 1.000000
vt 0.116848 0.880952
vt 0.114130 1.000000
vt 0.138587 0.880952
vt 0.135870 1.000000
vt 0.119565 0.880952
vt 0.116848 1.000000
vt 0.141304 0.880952
vt 0.138587 1.000000
vt 0.122283 0.880952
vt 0.119565 1.000000
vt 0.100543 1.000000
vt 0.100543 0.880952
vt 0.144022 0.880952
vt 0.141304 1.000000
vt 0.122283 1.000000
vt 0.133152 0.904762
vt 0.130435 1.000000
vt 0.130435 0.904762
vt 0.114130 0.904762
vt 0.111413 1.000000
vt 0.111413 0.904762
vt 0.135870 0.904762
vt 0.133152 1.000000
vt 0.116848 1.000000
vt 0.114130 1.000000
vt 0.138587 0.904762
vt 0.135870 1.000000
vt 0.116848 0.904762
vt 0.119565 1.000000
vt 0.141304 0.904762
vt 0.138587 1.000000
vt 0.122283 0.904762
vt 0.119565 0.904762
vt 0.100543 0.904762
vt 0.103261 1.000000
vt 0.100543 1.000000
vt 0.144022 0.904762
vt 0.141304 1.000000
vt 0.125000 0.904762
vt 0.122283 1.000000
vt 0.105978 0.904762
vt 0.103261 0.904762
vt 0.127717 0.904762
vt 0.125000 1.000000
vt 0.108696 0.904762
vt 0.105978 1.000000
vt 0.127717 1.000000
vt 0.108696 1.000000
vt 0.009109 0.867647
vt 0.030876 0.892060
vt 0.009109 0.892060
vt 0.054996 0.892060
vt 0.076764 0.867648
vt 0.076764 0.892060
vt 0.002879 0.892060
vt 0.082994 0.892060
vt 0.037603 0.867648
vt 0.034817 0.892060
vt 0.034817 0.867648
vt 0.051056 0.892060
vt 0.048270 0.867648
vt 0.051056 0.867648
vt 0.054996 0.867648
vt 0.030876 0.867648
vt 0.041543 0.867648
vt 0.037603 0.892060
vt 0.048270 0.892060
vt 0.044329 0.867648
vt 0.044329 0.892060
vt 0.674592 0.500000
vt 0.660326 1.000000
vt 0.660326 0.500000
vt 0.845788 0.500000
vt 0.831522 1.000000
vt 0.831522 0.500000
vt 0.788723 0.500000
vt 0.774457 1.000000
vt 0.774457 0.500000
vt 0.731658 0.500000
vt 0.717391 1.000000
vt 0.717391 0.500000
vt 0.688859 0.500000
vt 0.703125 1.000000
vt 0.688859 1.000000
vt 0.802989 0.500000
vt 0.817255 1.000000
vt 0.802989 1.000000
vt 0.745924 0.500000
vt 0.760190 1.000000
vt 0.745924 1.000000
vt 0.674592 1.000000
vt 0.860054 0.500000
vt 0.845788 1.000000
vt 0.788723 1.000000
vt 0.731658 1.000000
vt 0.703125 0.500000
vt 0.603261 1.000000
vt 0.603261 0.500000
vt 0.543478 1.000000
vt 0.543478 0.500000
vt 0.486413 0.500000
vt 0.486413 1.000000
vt 0.429348 1.000000
vt 0.429348 0.500000
vt 0.372283 1.000000
vt 0.372283 0.500000
vt 0.312500 0.500000
vt 0.312500 1.000000
vt 0.255435 1.000000
vt 0.255435 0.500000
vt 0.201087 1.000000
vt 0.201087 0.500000
vt 0.144022 1.000000
vt 0.144022 0.500000
vt 0.086957 0.500000
vt 0.086957 1.000000
vt 1.000000 0.500000
vt 0.945652 1.000000
vt 0.945652 0.500000
vt 0.888587 0.500000
vt 0.888587 1.000000
vt 0.860054 1.000000
vt 0.817255 0.500000
vt 0.760190 0.500000
vt 0.086957 0.500000
vt 0.144022 1.000000
vt 0.144022 1.000000
vt 0.002879 0.867647
vt 0.082994 0.867648
vt 0.041543 0.892060
vt 1.000000 1.000000
vn 0.0000 0.8192 0.5736
vn 0.0000 0.5736 -0.8192
vn 1.0000 -0.0000 0.0000
vn 0.0000 -0.5736 0.8192
vn 0.0000 -0.8192 -0.5736
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.9239 0.0000 -0.3827
vn -0.7071 0.0000 0.7071
vn -0.9239 0.0000 0.3827
vn 0.7071 0.0000 -0.7071
vn -0.3827 0.0000 0.9239
vn 0.3827 0.0000 -0.9239
vn 0.0000 0.0000 1.0000
vn -0.3827 0.0000 -0.9239
vn 0.0000 0.0000 -1.0000
vn 0.3827 0.0000 0.9239
vn -0.7071 0.0000 -0.7071
vn 0.7071 0.0000 0.7071
vn -0.9239 0.0000 -0.3827
vn 0.9239 0.0000 0.3827
vn 0.9732 0.0000 0.2297
vn -0.9732 0.0000 0.2297
vn 0.8944 0.0000 0.4472
vn -0.8944 0.0000 0.4472
s off
f 98/1/1 108/2/1 107/3/1
f 100/4/2 103/5/2 99/6/2
f 103/5/3 109/7/3 110/8/3
f 102/9/4 97/10/4 101/11/4
f 103/5/5 97/12/5 99/6/5
f 100/4/1 102/9/1 104/13/1
f 97/14/5 105/15/5 99/6/5
f 101/16/6 112/17/6 102/18/6
f 101/19/5 110/8/5 111/20/5
f 99/6/6 108/2/6 100/4/6
f 97/21/3 107/3/3 106/22/3
f 102/18/1 109/7/1 104/13/1
f 151/23/7 147/24/7 143/25/7
f 160/26/8 175/27/8 159/28/8
f 168/29/8 183/30/8 167/31/8
f 161/32/8 176/33/8 160/26/8
f 153/34/8 170/35/8 154/36/8
f 168/29/8 170/37/8 184/38/8
f 162/39/8 177/40/8 161/32/8
f 155/41/8 169/42/8 153/34/8
f 163/43/8 178/44/8 162/39/8
f 156/45/8 171/46/8 155/41/8
f 163/43/8 180/47/8 179/48/8
f 157/49/8 172/50/8 156/45/8
f 164/51/8 181/52/8 180/47/8
f 157/49/8 174/53/8 173/54/8
f 166/55/8 181/52/8 165/56/8
f 159/28/8 174/53/8 158/57/8
f 167/31/8 182/58/8 166/55/8
f 186/59/8 189/60/8 193/61/8
f 98/1/1 100/4/1 108/2/1
f 100/4/2 104/13/2 103/5/2
f 103/5/3 104/13/3 109/7/3
f 102/9/4 98/62/4 97/10/4
f 103/5/5 101/63/5 97/12/5
f 100/4/1 98/62/1 102/9/1
f 97/14/5 106/64/5 105/15/5
f 101/16/6 111/65/6 112/17/6
f 101/19/5 103/5/5 110/8/5
f 99/6/6 105/15/6 108/2/6
f 97/21/3 98/1/3 107/3/3
f 102/18/1 112/17/1 109/7/1
f 139/66/7 138/67/7 137/68/7
f 137/68/7 152/69/7 151/23/7
f 151/23/7 150/70/7 149/71/7
f 149/71/7 148/72/7 151/23/7
f 148/72/7 147/24/7 151/23/7
f 147/24/7 146/73/7 145/74/7
f 145/74/7 144/75/7 147/24/7
f 144/75/7 143/25/7 147/24/7
f 143/25/7 142/76/7 141/77/7
f 141/77/7 140/78/7 139/66/7
f 139/66/7 137/68/7 151/23/7
f 143/25/7 141/77/7 139/66/7
f 139/66/7 151/23/7 143/25/7
f 160/26/8 176/33/8 175/27/8
f 168/29/8 184/38/8 183/30/8
f 161/32/8 177/40/8 176/33/8
f 153/34/8 169/42/8 170/35/8
f 168/29/8 154/79/8 170/37/8
f 162/39/8 178/44/8 177/40/8
f 155/41/8 171/46/8 169/42/8
f 163/43/8 179/48/8 178/44/8
f 156/45/8 172/50/8 171/46/8
f 163/43/8 164/51/8 180/47/8
f 157/49/8 173/54/8 172/50/8
f 164/51/8 165/56/8 181/52/8
f 157/49/8 158/57/8 174/53/8
f 166/55/8 182/58/8 181/52/8
f 159/28/8 175/27/8 174/53/8
f 167/31/8 183/30/8 182/58/8
f 186/59/8 185/80/8 189/60/8
f 185/80/8 187/81/8 189/60/8
f 187/81/8 188/82/8 189/60/8
f 189/60/8 190/83/8 191/84/8
f 191/84/8 192/85/8 189/60/8
f 192/85/8 193/61/8 189/60/8
f 193/61/8 194/86/8 195/87/8
f 195/87/8 196/88/8 197/89/8
f 197/89/8 198/90/8 199/91/8
f 199/91/8 200/92/8 186/59/8
f 193/61/8 195/87/8 186/59/8
f 195/87/8 197/89/8 186/59/8
f 197/89/8 199/91/8 186/59/8
s 1
f 30/93/9 13/94/3 14/95/9
f 23/96/10 6/97/11 7/98/10
f 31/99/12 14/95/9 15/100/12
f 24/101/13 7/98/10 8/102/13
f 32/103/14 15/100/12 16/104/14
f 25/105/15 8/102/13 9/106/15
f 18/107/16 1/108/17 2/109/16
f 17/110/17 16/104/14 1/111/17
f 26/112/18 9/106/15 10/113/18
f 19/114/19 2/109/16 3/115/19
f 27/116/20 10/113/18 11/117/20
f 20/118/21 3/115/19 4/119/21
f 28/120/22 11/117/20 12/121/22
f 21/122/6 4/119/21 5/123/6
f 29/124/3 12/121/22 13/94/3
f 22/125/11 5/123/6 6/97/11
f 35/126/19 49/127/16 34/128/16
f 43/129/20 58/130/18 42/131/18
f 36/132/21 51/133/19 35/126/19
f 44/134/22 59/135/20 43/129/20
f 37/136/6 52/137/21 36/132/21
f 45/138/3 60/139/22 44/134/22
f 38/140/11 53/141/6 37/136/6
f 46/142/9 61/143/3 45/138/3
f 39/144/10 54/145/11 38/140/11
f 47/146/12 62/147/9 46/142/9
f 40/148/13 55/149/10 39/144/10
f 48/150/14 63/151/12 47/146/12
f 41/152/15 56/153/13 40/148/13
f 34/128/16 50/154/17 33/155/17
f 33/156/17 64/157/14 48/150/14
f 42/131/18 57/158/15 41/152/15
f 77/159/3 92/160/22 76/161/22
f 70/162/11 85/163/6 69/164/6
f 78/165/9 93/166/3 77/159/3
f 70/162/11 87/167/10 86/168/11
f 79/169/12 94/170/9 78/165/9
f 71/171/10 88/172/13 87/167/10
f 80/173/14 95/174/12 79/169/12
f 73/175/15 88/172/13 72/176/13
f 66/177/17 81/178/16 82/179/17
f 66/180/17 96/181/14 80/173/14
f 74/182/18 89/183/15 73/175/15
f 67/184/19 81/178/16 65/185/16
f 75/186/20 90/187/18 74/182/18
f 68/188/21 83/189/19 67/184/19
f 75/186/20 92/160/22 91/190/20
f 69/164/6 84/191/21 68/188/21
f 119/192/23 118/193/9 117/194/23
f 114/195/21 115/196/24 113/197/24
f 123/198/25 119/192/23 117/194/23
f 115/196/24 121/199/26 113/197/24
f 128/200/22 130/201/9 129/202/9
f 132/203/21 126/204/11 131/205/21
f 114/195/21 131/205/21 116/206/21
f 129/202/9 118/193/9 120/207/9
f 136/208/18 127/209/22 128/200/22
f 125/210/11 134/211/13 126/204/11
f 133/212/13 136/208/18 134/211/13
f 246/213/8 227/214/8 211/215/8
f 243/216/8 230/217/8 214/218/8
f 244/219/8 229/220/8 213/221/8
f 245/222/8 228/223/8 212/224/8
f 254/225/8 236/226/8 250/227/8
f 252/228/8 238/229/8 248/230/8
f 253/231/8 237/232/8 249/233/8
f 254/225/8 242/234/8 246/213/8
f 251/235/8 239/236/8 243/216/8
f 252/228/8 240/237/8 244/219/8
f 253/231/8 241/238/8 245/222/8
f 233/239/8 228/223/8 236/226/8
f 211/215/8 226/240/8 210/241/8
f 210/241/8 225/242/8 209/243/8
f 208/244/8 225/242/8 224/245/8
f 208/244/8 223/246/8 207/247/8
f 207/247/8 222/248/8 206/249/8
f 205/250/8 222/248/8 221/251/8
f 205/250/8 220/252/8 204/253/8
f 204/253/8 219/254/8 203/255/8
f 203/255/8 218/256/8 202/257/8
f 201/258/8 218/256/8 217/259/8
f 201/260/8 232/261/8 216/262/8
f 215/263/8 232/261/8 231/264/8
f 251/235/8 231/264/8 247/265/8
f 235/266/8 230/217/8 238/229/8
f 234/267/8 229/220/8 237/232/8
f 30/93/9 29/124/3 13/94/3
f 23/96/10 22/125/11 6/97/11
f 31/99/12 30/93/9 14/95/9
f 24/101/13 23/96/10 7/98/10
f 32/103/14 31/99/12 15/100/12
f 25/105/15 24/101/13 8/102/13
f 18/107/16 17/268/17 1/108/17
f 17/110/17 32/103/14 16/104/14
f 26/112/18 25/105/15 9/106/15
f 19/114/19 18/107/16 2/109/16
f 27/116/20 26/112/18 10/113/18
f 20/118/21 19/114/19 3/115/19
f 28/120/22 27/116/20 11/117/20
f 21/122/6 20/118/21 4/119/21
f 29/124/3 28/120/22 12/121/22
f 22/125/11 21/122/6 5/123/6
f 35/126/19 51/133/19 49/127/16
f 43/129/20 59/135/20 58/130/18
f 36/132/21 52/137/21 51/133/19
f 44/134/22 60/139/22 59/135/20
f 37/136/6 53/141/6 52/137/21
f 45/138/3 61/143/3 60/139/22
f 38/140/11 54/145/11 53/141/6
f 46/142/9 62/147/9 61/143/3
f 39/144/10 55/149/10 54/145/11
f 47/146/12 63/151/12 62/147/9
f 40/148/13 56/153/13 55/149/10
f 48/150/14 64/157/14 63/151/12
f 41/152/15 57/158/15 56/153/13
f 34/128/16 49/127/16 50/154/17
f 33/156/17 50/269/17 64/157/14
f 42/131/18 58/130/18 57/158/15
f 77/159/3 93/166/3 92/160/22
f 70/162/11 86/168/11 85/163/6
f 78/165/9 94/170/9 93/166/3
f 70/162/11 71/171/10 87/167/10
f 79/169/12 95/174/12 94/170/9
f 71/171/10 72/176/13 88/172/13
f 80/173/14 96/181/14 95/174/12
f 73/175/15 89/183/15 88/172/13
f 66/177/17 65/185/16 81/178/16
f 66/180/17 82/270/17 96/181/14
f 74/182/18 90/187/18 89/183/15
f 67/184/19 83/189/19 81/178/16
f 75/186/20 91/190/20 90/187/18
f 68/188/21 84/191/21 83/189/19
f 75/186/20 76/161/22 92/160/22
f 69/164/6 85/163/6 84/191/21
f 119/192/23 120/207/9 118/193/9
f 114/195/21 116/206/21 115/196/24
f 123/198/25 124/271/25 119/192/23
f 115/196/24 122/272/26 121/199/26
f 128/200/22 127/209/22 130/201/9
f 132/203/21 125/210/11 126/204/11
f 114/195/21 132/203/21 131/205/21
f 129/202/9 130/201/9 118/193/9
f 136/208/18 135/273/18 127/209/22
f 125/210/11 133/212/13 134/211/13
f 133/212/13 135/273/18 136/208/18
f 246/213/8 242/234/8 227/214/8
f 243/216/8 239/236/8 230/217/8
f 244/219/8 240/237/8 229/220/8
f 245/222/8 241/238/8 228/223/8
f 254/225/8 233/239/8 236/226/8
f 252/228/8 235/266/8 238/229/8
f 253/231/8 234/267/8 237/232/8
f 254/225/8 250/227/8 242/234/8
f 251/235/8 247/265/8 239/236/8
f 252/228/8 248/230/8 240/237/8
f 253/231/8 249/233/8 241/238/8
f 233/239/8 212/224/8 228/223/8
f 211/215/8 227/214/8 226/240/8
f 210/241/8 226/240/8 225/242/8
f 208/244/8 209/243/8 225/242/8
f 208/244/8 224/245/8 223/246/8
f 207/247/8 223/246/8 222/248/8
f 205/250/8 206/249/8 222/248/8
f 205/250/8 221/251/8 220/252/8
f 204/253/8 220/252/8 219/254/8
f 203/255/8 219/254/8 218/256/8
f 201/258/8 202/257/8 218/256/8
f 201/260/8 217/274/8 232/261/8
f 215/263/8 216/262/8 232/261/8
f 251/235/8 215/263/8 231/264/8
f 235/266/8 214/218/8 230/217/8
f 234/267/8 213/221/8 229/220/8

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 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_X4172", "version":"1.0.27_X4178",
"mcversion": "1.7.10", "mcversion": "1.7.10",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",