mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
4086b8633d
@ -105,19 +105,24 @@ public class PowerNet implements IPowerNet {
|
||||
if(this.subscribers.isEmpty())
|
||||
return power;
|
||||
|
||||
List<IEnergyConnector> subList = new ArrayList(subscribers);
|
||||
|
||||
List<Long> weight = new ArrayList();
|
||||
long totalReq = 0;
|
||||
|
||||
for(IEnergyConnector con : this.subscribers) {
|
||||
for(IEnergyConnector con : subList) {
|
||||
long req = con.getTransferWeight();
|
||||
weight.add(req);
|
||||
totalReq += req;
|
||||
}
|
||||
|
||||
if(totalReq == 0)
|
||||
return power;
|
||||
|
||||
long totalGiven = 0;
|
||||
|
||||
for(int i = 0; i < this.subscribers.size(); i++) {
|
||||
IEnergyConnector con = this.subscribers.get(i);
|
||||
for(int i = 0; i < subList.size(); i++) {
|
||||
IEnergyConnector con = subList.get(i);
|
||||
long req = weight.get(i);
|
||||
double fraction = (double)req / (double)totalReq;
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package com.hbm.blocks;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
@ -29,23 +28,24 @@ public interface ILookOverlay {
|
||||
int pX = resolution.getScaledWidth() / 2 + 8;
|
||||
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, pZ - 10, titleCol);
|
||||
|
||||
for(String line : text) {
|
||||
|
||||
if(exceptions.contains(line))
|
||||
continue;
|
||||
|
||||
mc.fontRenderer.drawStringWithShadow(line, pX, pZ, 0xFFFFFF);
|
||||
pZ += 10;
|
||||
try {
|
||||
for(String line : text) {
|
||||
|
||||
int color = 0xFFFFFF;
|
||||
if(line.startsWith("&[")) {
|
||||
int end = line.lastIndexOf("&]");
|
||||
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);
|
||||
|
||||
@ -52,6 +52,8 @@ public class ModBlocks {
|
||||
public static Block test_conductor;
|
||||
public static Block test_ct;
|
||||
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_scorched;
|
||||
@ -714,6 +716,7 @@ public class ModBlocks {
|
||||
public static Block substation;
|
||||
public static Block cable_switch;
|
||||
public static Block cable_detector;
|
||||
public static Block cable_diode;
|
||||
public static Block machine_detector;
|
||||
public static Block rf_cable;
|
||||
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_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_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_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");
|
||||
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_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");
|
||||
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");
|
||||
@ -2256,6 +2262,8 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(test_conductor, test_conductor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_ct, test_ct.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
|
||||
GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName());
|
||||
@ -2929,6 +2937,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(substation, ItemBlockBase.class, substation.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cable_switch, cable_switch.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(rf_cable, rf_cable.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName());
|
||||
|
||||
@ -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);
|
||||
}
|
||||
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) {
|
||||
ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false);
|
||||
|
||||
@ -1,12 +1,17 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDiFurnace;
|
||||
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.relauncher.Side;
|
||||
@ -25,13 +30,14 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
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;
|
||||
public long maxPower;
|
||||
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT)
|
||||
@ -41,7 +47,7 @@ public class MachineBattery extends BlockContainer {
|
||||
super(p_i45386_1_);
|
||||
this.maxPower = maxPower;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
@ -71,84 +77,73 @@ public class MachineBattery extends BlockContainer {
|
||||
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":battery_dineutronium_side");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
|
||||
|
||||
if(side == 0 || side == 1)
|
||||
return iconTop;
|
||||
|
||||
|
||||
return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
|
||||
{
|
||||
return Item.getItemFromBlock(this);
|
||||
}
|
||||
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
|
||||
return Item.getItemFromBlock(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z) {
|
||||
super.onBlockAdded(world, x, y, z);
|
||||
this.setDefaultDirection(world, x, y, z);
|
||||
}
|
||||
|
||||
|
||||
private void setDefaultDirection(World world, int x, int y, int z) {
|
||||
if(!world.isRemote)
|
||||
{
|
||||
if(!world.isRemote) {
|
||||
Block block1 = world.getBlock(x, y, z - 1);
|
||||
Block block2 = world.getBlock(x, y, z + 1);
|
||||
Block block3 = world.getBlock(x - 1, y, z);
|
||||
Block block4 = world.getBlock(x + 1, y, z);
|
||||
|
||||
|
||||
byte b0 = 3;
|
||||
|
||||
if(block1.func_149730_j() && !block2.func_149730_j())
|
||||
{
|
||||
|
||||
if(block1.func_149730_j() && !block2.func_149730_j()) {
|
||||
b0 = 3;
|
||||
}
|
||||
if(block2.func_149730_j() && !block1.func_149730_j())
|
||||
{
|
||||
if(block2.func_149730_j() && !block1.func_149730_j()) {
|
||||
b0 = 2;
|
||||
}
|
||||
if(block3.func_149730_j() && !block4.func_149730_j())
|
||||
{
|
||||
if(block3.func_149730_j() && !block4.func_149730_j()) {
|
||||
b0 = 5;
|
||||
}
|
||||
if(block4.func_149730_j() && !block3.func_149730_j())
|
||||
{
|
||||
if(block4.func_149730_j() && !block3.func_149730_j()) {
|
||||
b0 = 4;
|
||||
}
|
||||
|
||||
|
||||
world.setBlockMetadataWithNotify(x, y, z, b0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
|
||||
if(i == 0) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
if(i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 2)
|
||||
{
|
||||
if(i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 3)
|
||||
{
|
||||
if(i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
|
||||
if(itemStack.hasDisplayName())
|
||||
{
|
||||
((TileEntityDiFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
|
||||
|
||||
if(itemStack.hasDisplayName()) {
|
||||
((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_) {
|
||||
return new TileEntityMachineBattery();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote)
|
||||
{
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
} else if(!player.isSneaking()) {
|
||||
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);
|
||||
}
|
||||
return true;
|
||||
@ -174,57 +166,70 @@ public class MachineBattery extends BlockContainer {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@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_)
|
||||
{
|
||||
if (!keepInventory)
|
||||
{
|
||||
TileEntityMachineBattery tileentityfurnace = (TileEntityMachineBattery)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||
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) {
|
||||
TileEntityMachineBattery tileentityfurnace = (TileEntityMachineBattery) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||
|
||||
if (tileentityfurnace != null)
|
||||
{
|
||||
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
|
||||
{
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
||||
if(tileentityfurnace != null) {
|
||||
for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
float f = 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;
|
||||
if(itemstack != null) {
|
||||
float f = 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;
|
||||
|
||||
while (itemstack.stackSize > 0)
|
||||
{
|
||||
int j1 = this.field_149933_a.nextInt(21) + 10;
|
||||
while(itemstack.stackSize > 0) {
|
||||
int j1 = this.field_149933_a.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize)
|
||||
{
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
if(j1 > itemstack.stackSize) {
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
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()));
|
||||
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()));
|
||||
|
||||
if (itemstack.hasTagCompound())
|
||||
{
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
|
||||
}
|
||||
if(itemstack.hasTagCompound()) {
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
p_149749_1_.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3;
|
||||
entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3;
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,6 +132,6 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver
|
||||
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");
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x808000, text);
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,17 +1,25 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
|
||||
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 net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,6 +118,6 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay
|
||||
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");
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x808000, text);
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,11 +6,9 @@ import org.lwjgl.input.Keyboard;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@ -69,7 +69,9 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
|
||||
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 {
|
||||
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" +
|
||||
EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" +
|
||||
|
||||
210
src/main/java/com/hbm/blocks/network/CableDiode.java
Normal file
210
src/main/java/com/hbm/blocks/network/CableDiode.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
18
src/main/java/com/hbm/blocks/test/TestBB.java
Normal file
18
src/main/java/com/hbm/blocks/test/TestBB.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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.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_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_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 });
|
||||
@ -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_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.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
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag });
|
||||
|
||||
@ -67,8 +67,6 @@ public class EntityMinecartTest extends EntityMinecartModBase
|
||||
this.explodeCart(d0);
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println(this.rotationYaw);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -11,7 +11,9 @@ import com.hbm.explosion.vanillant.interfaces.IExplosionSFX;
|
||||
import com.hbm.explosion.vanillant.interfaces.IPlayerProcessor;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
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.ExplosionEffectAmat;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
|
||||
@ -127,4 +129,16 @@ public class ExplosionVNT {
|
||||
this.setSFX(new ExplosionEffectStandard());
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,9 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
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.IEntityRangeMutator;
|
||||
|
||||
import net.minecraft.enchantment.EnchantmentProtection;
|
||||
import net.minecraft.entity.Entity;
|
||||
@ -17,6 +19,9 @@ import net.minecraftforge.event.ForgeEventFactory;
|
||||
|
||||
public class EntityProcessorStandard implements IEntityProcessor {
|
||||
|
||||
protected IEntityRangeMutator range;
|
||||
protected ICustomDamageHandler damage;
|
||||
|
||||
@Override
|
||||
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;
|
||||
|
||||
if(range != null) {
|
||||
size = range.mutateRange(explosion, size);
|
||||
}
|
||||
|
||||
double minX = x - (double) size - 1.0D;
|
||||
double maxX = x + (double) size + 1.0D;
|
||||
double minY = y - (double) size - 1.0D;
|
||||
@ -67,10 +76,29 @@ public class EntityProcessorStandard implements IEntityProcessor {
|
||||
if(entity instanceof EntityPlayer) {
|
||||
affectedPlayers.put((EntityPlayer) entity, Vec3.createVectorHelper(deltaX * knockback, deltaY * knockback, deltaZ * knockback));
|
||||
}
|
||||
|
||||
if(damage != null) {
|
||||
damage.handleAttack(explosion, entity, distanceScaled);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -526,7 +526,7 @@ public class HazardRegistry {
|
||||
HazardData data = new HazardData();
|
||||
data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRTGRadiation(target)));
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package com.hbm.hazard.modifier;
|
||||
|
||||
import com.hbm.hazard.HazardRegistry;
|
||||
import com.hbm.items.machine.ItemFuelRod;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
||||
@ -27,7 +27,7 @@ public class HazardModifierRBMKRadiation extends HazardModifier {
|
||||
|
||||
} 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()))
|
||||
level += HazardRegistry.xe135 * HazardRegistry.nugget;
|
||||
|
||||
@ -403,7 +403,7 @@ public class RecipesCommon {
|
||||
}
|
||||
|
||||
public static class MetaBlock {
|
||||
|
||||
|
||||
public Block block;
|
||||
public int meta;
|
||||
|
||||
@ -415,6 +415,14 @@ public class RecipesCommon {
|
||||
public MetaBlock(Block block) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotMachineOutput;
|
||||
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
|
||||
import com.hbm.util.InventoryUtil;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
@ -11,116 +12,110 @@ import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerNukeFurnace extends Container {
|
||||
|
||||
|
||||
private TileEntityNukeFurnace diFurnace;
|
||||
private int dualCookTime;
|
||||
private int dualPower;
|
||||
private int lastItemBurnTime;
|
||||
|
||||
|
||||
public ContainerNukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) {
|
||||
dualCookTime = 0;
|
||||
dualPower = 0;
|
||||
lastItemBurnTime = 0;
|
||||
|
||||
|
||||
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 SlotMachineOutput(tedf, 2, 116, 35));
|
||||
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
for(int j = 0; j < 9; j++)
|
||||
{
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addCraftingToCrafters(ICrafting crafting) {
|
||||
super.addCraftingToCrafters(crafting);
|
||||
crafting.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime);
|
||||
crafting.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
|
||||
{
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
|
||||
ItemStack var3 = null;
|
||||
Slot var4 = (Slot) this.inventorySlots.get(par2);
|
||||
|
||||
if (var4 != null && var4.getHasStack())
|
||||
{
|
||||
|
||||
if(var4 != null && var4.getHasStack()) {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
|
||||
if (par2 <= 2) {
|
||||
if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true))
|
||||
{
|
||||
|
||||
if(par2 <= 2) {
|
||||
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else if (!this.mergeItemStack(var5, 1, 2, false))
|
||||
{
|
||||
if (!this.mergeItemStack(var5, 0, 1, false))
|
||||
} else {
|
||||
|
||||
if(TileEntityNukeFurnace.getFuelValue(var5) > 0) {
|
||||
if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false))
|
||||
return null;
|
||||
} else {
|
||||
if(!this.mergeItemStack(var5, 1, 2, false))
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (var5.stackSize == 0)
|
||||
{
|
||||
|
||||
if(var5.stackSize == 0) {
|
||||
var4.putStack((ItemStack) null);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
var4.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return var3;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return diFurnace.isUseableByPlayer(player);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void detectAndSendChanges() {
|
||||
super.detectAndSendChanges();
|
||||
|
||||
for(int i = 0; i < this.crafters.size(); i++)
|
||||
{
|
||||
ICrafting par1 = (ICrafting)this.crafters.get(i);
|
||||
|
||||
if(this.dualCookTime != this.diFurnace.dualCookTime)
|
||||
{
|
||||
|
||||
for(int i = 0; i < this.crafters.size(); i++) {
|
||||
ICrafting par1 = (ICrafting) this.crafters.get(i);
|
||||
|
||||
if(this.dualCookTime != 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.dualCookTime = this.diFurnace.dualCookTime;
|
||||
this.dualPower = this.diFurnace.dualPower;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateProgressBar(int i, int j) {
|
||||
if(i == 0)
|
||||
{
|
||||
if(i == 0) {
|
||||
diFurnace.dualCookTime = j;
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
if(i == 1) {
|
||||
diFurnace.dualPower = j;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityStorageDrum;
|
||||
import com.hbm.util.InventoryUtil;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
@ -47,10 +48,10 @@ public class ContainerStorageDrum extends Container {
|
||||
var3 = var5.copy();
|
||||
|
||||
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;
|
||||
}
|
||||
} else if(!this.mergeItemStack(var5, 0, drum.getSizeInventory(), false)) {
|
||||
} else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, drum.getSizeInventory(), false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityWasteDrum;
|
||||
import com.hbm.util.InventoryUtil;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
@ -10,10 +11,10 @@ import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerWasteDrum extends Container {
|
||||
|
||||
private TileEntityWasteDrum diFurnace;
|
||||
private TileEntityWasteDrum drum;
|
||||
|
||||
public ContainerWasteDrum(InventoryPlayer invPlayer, TileEntityWasteDrum tedf) {
|
||||
diFurnace = tedf;
|
||||
drum = tedf;
|
||||
|
||||
this.addSlotToContainer(new Slot(tedf, 0, 71, 18));
|
||||
this.addSlotToContainer(new Slot(tedf, 1, 89, 18));
|
||||
@ -51,11 +52,11 @@ public class ContainerWasteDrum extends Container {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
|
||||
if(par2 <= diFurnace.getSizeInventory() - 1) {
|
||||
if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||
if(par2 <= drum.getSizeInventory() - 1) {
|
||||
if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, drum.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
} else if(!this.mergeItemStack(var5, 0, 0, false)) {
|
||||
} else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, drum.getSizeInventory(), false)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -64,6 +65,8 @@ public class ContainerWasteDrum extends Container {
|
||||
} else {
|
||||
var4.onSlotChanged();
|
||||
}
|
||||
|
||||
var4.onPickupFromSlot(p_82846_1_, var5);
|
||||
}
|
||||
|
||||
return var3;
|
||||
@ -71,6 +74,6 @@ public class ContainerWasteDrum extends Container {
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return diFurnace.isUseableByPlayer(player);
|
||||
return drum.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ItemEnums.EnumLegendaryType;
|
||||
import com.hbm.items.armor.*;
|
||||
import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart;
|
||||
import com.hbm.items.bomb.*;
|
||||
import com.hbm.items.food.*;
|
||||
import com.hbm.items.machine.*;
|
||||
@ -2270,6 +2271,7 @@ public class ModItems {
|
||||
public static Item cape_radiation;
|
||||
public static Item cape_gasmask;
|
||||
public static Item cape_schrabidium;
|
||||
public static Item cape_hidden;
|
||||
/*public static Item cape_hbm;
|
||||
public static Item cape_dafnik;
|
||||
public static Item cape_lpkukin;
|
||||
@ -4890,6 +4892,7 @@ public class ModItems {
|
||||
.setBlastProtection(0.5F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.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_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)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.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_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")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.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_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");
|
||||
@ -4940,7 +4946,9 @@ public class ModItems {
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.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_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");
|
||||
@ -4957,7 +4965,9 @@ public class ModItems {
|
||||
.setStep("hbm:step.powered")
|
||||
.setJump("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_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");
|
||||
@ -4976,13 +4986,12 @@ public class ModItems {
|
||||
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))
|
||||
.setBlastProtection(0.5F)
|
||||
.setProtectionLevel(500F)
|
||||
//.setGravity(0.02D)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.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_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_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)
|
||||
.addResistance("fall", 0.5F)
|
||||
.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_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");
|
||||
@ -5020,9 +5031,11 @@ public class ModItems {
|
||||
.setProtectionLevel(1000F)
|
||||
.addResistance("fall", 0F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.setFireproof(true).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).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).setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs");
|
||||
.setFireproof(true)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.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");
|
||||
|
||||
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")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.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_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");
|
||||
@ -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_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_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");
|
||||
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");
|
||||
|
||||
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");
|
||||
|
||||
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_gasmask, cape_gasmask.getUnlocalizedName());
|
||||
GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName());
|
||||
|
||||
//Tools
|
||||
GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -80,7 +80,7 @@ public class ArmorModel extends ItemArmor {
|
||||
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 (this.modelCloak == null) {
|
||||
this.modelCloak = new ModelCloak();
|
||||
@ -111,6 +111,9 @@ public class ArmorModel extends ItemArmor {
|
||||
if (stack.getItem() == ModItems.cape_schrabidium) {
|
||||
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";
|
||||
}
|
||||
|
||||
19
src/main/java/com/hbm/items/armor/IArmorDisableModel.java
Normal file
19
src/main/java/com/hbm/items/armor/IArmorDisableModel.java
Normal 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
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,9 @@ import com.hbm.items.ModItems;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
|
||||
public class ItemModPads extends ItemArmorMod {
|
||||
|
||||
@ -40,6 +42,13 @@ public class ItemModPads extends ItemArmorMod {
|
||||
else
|
||||
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
|
||||
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
||||
|
||||
@ -64,9 +64,9 @@ public class ItemPlateFuel extends ItemFuelRod {
|
||||
|
||||
switch(this.function) {
|
||||
case LOGARITHM: return (int) (Math.log10(flux + 1) * 0.5D * reactivity);
|
||||
case SQUARE_ROOT: return (int) (Math.sqrt(flux) * this.reactivity / 10);
|
||||
case NEGATIVE_QUADRATIC: return (int) (Math.max(flux - (flux * flux / 10000) / 100 * reactivity, 0));
|
||||
case LINEAR: return (int) (flux / 100 * reactivity);
|
||||
case SQUARE_ROOT: return (int) (Math.sqrt(flux) * this.reactivity / 10D);
|
||||
case NEGATIVE_QUADRATIC: return (int) (Math.max((flux - (flux * flux / 10000D)) / 100D * reactivity, 0));
|
||||
case LINEAR: return (int) (flux / 100D * reactivity);
|
||||
case PASSIVE:
|
||||
setLifeTime(stack, getLifeTime(stack) + reactivity);
|
||||
return reactivity;
|
||||
|
||||
@ -9,15 +9,11 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
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.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemRBMKPellet extends ItemNuclearWaste {
|
||||
|
||||
|
||||
@ -239,7 +239,7 @@ public class ItemRBMKRod extends Item {
|
||||
case PASSIVE: return selfRate * enrichment;
|
||||
case LOG_TEN: return Math.log10(flux + 1) * 0.5D * 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 SQUARE_ROOT: return Math.sqrt(flux) * reactivity / 10D;
|
||||
case LINEAR: return flux / 100D * reactivity;
|
||||
|
||||
@ -16,6 +16,7 @@ import com.hbm.explosion.ExplosionChaos;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.explosion.ExplosionNT;
|
||||
import com.hbm.explosion.ExplosionNT.ExAttrib;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.items.ModItems;
|
||||
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 (!entityItem.worldObj.isRemote) {
|
||||
entityItem.worldObj.createExplosion(entityItem, entityItem.posX, entityItem.posY,
|
||||
entityItem.posZ, 10.0F, true);
|
||||
new ExplosionVNT(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, 3F).makeAmat().explode();
|
||||
}
|
||||
}
|
||||
if (stack.getItem() != null && stack.getItem() == ModItems.pellet_antimatter && WeaponConfig.dropCell) {
|
||||
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();
|
||||
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);
|
||||
new ExplosionVNT(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, 20F).makeAmat().explode();
|
||||
}
|
||||
}
|
||||
if (stack.getItem() != null && stack.getItem() == ModItems.cell_anti_schrabidium && WeaponConfig.dropCell) {
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (4172)";
|
||||
public static final String VERSION = "1.0.27 BETA (4178)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -19,6 +19,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
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.network.*;
|
||||
import com.hbm.tileentity.turret.*;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.SoundUtil;
|
||||
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
@ -93,6 +95,34 @@ import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
|
||||
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
|
||||
public void registerTileEntitySpecialRenderer() {
|
||||
//test crap
|
||||
@ -654,6 +684,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerBlockHandler(new RenderBlockCT());
|
||||
RenderingRegistry.registerBlockHandler(new RenderDetCord());
|
||||
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_c4.getRenderType(), ResourceManager.charge_c4));
|
||||
@ -664,30 +695,6 @@ public class ClientProxy extends ServerProxy {
|
||||
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
|
||||
public void registerMissileItems() {
|
||||
|
||||
@ -745,7 +752,6 @@ public class ClientProxy extends ServerProxy {
|
||||
@Deprecated
|
||||
@Override
|
||||
public void spawnParticle(double x, double y, double z, String type, float args[]) {
|
||||
|
||||
|
||||
World world = Minecraft.getMinecraft().theWorld;
|
||||
TextureManager man = Minecraft.getMinecraft().renderEngine;
|
||||
@ -789,6 +795,7 @@ public class ClientProxy extends ServerProxy {
|
||||
|
||||
TextureManager man = Minecraft.getMinecraft().renderEngine;
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
int particleSetting = Minecraft.getMinecraft().gameSettings.particleSetting;
|
||||
Random rand = world.rand;
|
||||
String type = data.getString("type");
|
||||
double x = data.getDouble("posX");
|
||||
@ -1095,6 +1102,9 @@ public class ClientProxy extends ServerProxy {
|
||||
|
||||
if("jetpack".equals(type)) {
|
||||
|
||||
if(particleSetting == 2)
|
||||
return;
|
||||
|
||||
Entity ent = world.getEntityByID(data.getInteger("player"));
|
||||
|
||||
if(ent instanceof EntityPlayer) {
|
||||
@ -1132,35 +1142,47 @@ public class ClientProxy extends ServerProxy {
|
||||
moZ -= look.zCoord * 0.1D;
|
||||
}
|
||||
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(moX, moY, moZ);
|
||||
thrust = thrust.normalize();
|
||||
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) {
|
||||
if(particleSetting == 0) {
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(moX, moY, moZ);
|
||||
thrust = thrust.normalize();
|
||||
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);
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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));
|
||||
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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, p.motionX + moX * 2, p.motionY + moY * 2, p.motionZ + moZ * 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));
|
||||
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, motionX * 2, motionY * 2, motionZ * 2));
|
||||
|
||||
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(particleSetting == 2)
|
||||
return;
|
||||
|
||||
Entity ent = world.getEntityByID(data.getInteger("player"));
|
||||
|
||||
if(ent instanceof EntityPlayer) {
|
||||
@ -1180,22 +1202,24 @@ public class ClientProxy extends ServerProxy {
|
||||
double ox = offset.xCoord;
|
||||
double oz = offset.zCoord;
|
||||
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
|
||||
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) {
|
||||
if(particleSetting == 0) {
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
|
||||
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);
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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));
|
||||
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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(particleSetting == 2)
|
||||
return;
|
||||
|
||||
Entity ent = world.getEntityByID(data.getInteger("player"));
|
||||
|
||||
if(ent instanceof EntityPlayer) {
|
||||
@ -1227,22 +1254,24 @@ public class ClientProxy extends ServerProxy {
|
||||
double ox = offset.xCoord;
|
||||
double oz = offset.zCoord;
|
||||
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
|
||||
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) {
|
||||
if(particleSetting == 0) {
|
||||
Vec3 pos = Vec3.createVectorHelper(ix, iy, iz);
|
||||
Vec3 thrust = Vec3.createVectorHelper(0, -1, 0);
|
||||
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);
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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));
|
||||
if(mop != null && mop.typeOfHit == MovingObjectType.BLOCK && mop.sideHit == 1) {
|
||||
|
||||
Block b = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
int meta = world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ);
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(ix - mop.hitVec.xCoord, iy - mop.hitVec.yCoord, iz - mop.hitVec.zCoord);
|
||||
Vec3 vel = Vec3.createVectorHelper(0.75 - delta.lengthVector() * 0.075, 0, 0);
|
||||
|
||||
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)) {
|
||||
|
||||
Entity e = world.getEntityByID(data.getInteger("entity"));
|
||||
int count = data.getInteger("count");
|
||||
int count = data.getInteger("count") / (particleSetting + 1);
|
||||
|
||||
if(e instanceof EntityLivingBase) {
|
||||
|
||||
@ -1453,12 +1482,13 @@ public class ClientProxy extends ServerProxy {
|
||||
fx.setLift(data.getFloat("lift"));
|
||||
fx.setBaseScale(data.getFloat("base"));
|
||||
fx.setMaxScale(data.getFloat("max"));
|
||||
fx.setLife(data.getInteger("life"));
|
||||
fx.setLife(data.getInteger("life") / (particleSetting + 1));
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(fx);
|
||||
}
|
||||
|
||||
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)) {
|
||||
@ -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();
|
||||
|
||||
@ -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(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_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(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() });
|
||||
|
||||
@ -5,6 +5,7 @@ import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.dispenser.BehaviorProjectileDispense;
|
||||
import net.minecraft.dispenser.IPosition;
|
||||
import net.minecraft.entity.IProjectile;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
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.rbmk.RBMKDials;
|
||||
import com.hbm.util.ArmorUtil;
|
||||
import com.hbm.world.feature.OreLayer;
|
||||
import com.hbm.world.feature.SchistStratum;
|
||||
import com.hbm.world.generator.CellularDungeonFactory;
|
||||
|
||||
@ -989,6 +991,8 @@ public class MainRegistry {
|
||||
SchistStratum schist = new SchistStratum();
|
||||
MinecraftForge.EVENT_BUS.register(schist); //DecorateBiomeEvent.Pre
|
||||
|
||||
//new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70);
|
||||
|
||||
OreDictManager oreMan = new OreDictManager();
|
||||
MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent
|
||||
|
||||
|
||||
@ -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)
|
||||
public void preRenderEventFirst(RenderLivingEvent.Pre event) {
|
||||
|
||||
|
||||
72
src/main/java/com/hbm/main/ModEventHandlerRenderer.java
Normal file
72
src/main/java/com/hbm/main/ModEventHandlerRenderer.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -57,6 +57,7 @@ public class ResourceManager {
|
||||
//Landmines
|
||||
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_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"));
|
||||
|
||||
//Oil Pumps
|
||||
@ -342,7 +343,8 @@ public class ResourceManager {
|
||||
|
||||
//Landmines
|
||||
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_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png");
|
||||
|
||||
|
||||
145
src/main/java/com/hbm/particle/ParticleAmatFlash.java
Normal file
145
src/main/java/com/hbm/particle/ParticleAmatFlash.java
Normal 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();*/
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
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));
|
||||
|
||||
|
||||
156
src/main/java/com/hbm/render/block/RenderDiode.java
Normal file
156
src/main/java/com/hbm/render/block/RenderDiode.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -617,11 +617,20 @@ public class ItemRenderLibrary {
|
||||
public void renderInventory() {
|
||||
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() {
|
||||
GL11.glScaled(4, 4, 4);
|
||||
bindTexture(ResourceManager.mine_he_tex);
|
||||
ResourceManager.mine_he.renderAll();
|
||||
}});
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
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() {
|
||||
public void renderInventory() {
|
||||
@ -1227,6 +1236,28 @@ public class ItemRenderLibrary {
|
||||
bindTexture(ResourceManager.chemfac_tex); ResourceManager.chemfac.renderPart("Main");
|
||||
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) {
|
||||
|
||||
@ -11,39 +11,42 @@ import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderLandmine extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
|
||||
GL11.glRotatef(180, 0F, 1F, 0F);
|
||||
|
||||
Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
|
||||
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);
|
||||
bindTexture(ResourceManager.mine_ap_tex);
|
||||
ResourceManager.mine_ap.renderAll();
|
||||
ResourceManager.mine_ap.renderAll();
|
||||
}
|
||||
if(block == ModBlocks.mine_he) {
|
||||
bindTexture(ResourceManager.mine_he_tex);
|
||||
ResourceManager.mine_he.renderAll();
|
||||
GL11.glRotatef(-90, 0F, 1F, 0F);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.mine_marelet_tex);
|
||||
ResourceManager.mine_marelet.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
if(block == ModBlocks.mine_shrap) {
|
||||
bindTexture(ResourceManager.mine_shrap_tex);
|
||||
ResourceManager.mine_he.renderAll();
|
||||
ResourceManager.mine_he.renderAll();
|
||||
}
|
||||
if(block == ModBlocks.mine_fat) {
|
||||
GL11.glScaled(0.25D, 0.25D, 0.25D);
|
||||
bindTexture(ResourceManager.mine_fat_tex);
|
||||
ResourceManager.mine_fat.renderAll();
|
||||
ResourceManager.mine_fat.renderAll();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.HashMap;
|
||||
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
|
||||
import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
|
||||
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
|
||||
import com.hbm.blocks.network.CableDiode.TileEntityDiode;
|
||||
import com.hbm.tileentity.bomb.*;
|
||||
import com.hbm.tileentity.conductor.*;
|
||||
import com.hbm.tileentity.deco.*;
|
||||
@ -289,6 +290,7 @@ public class TileMappings {
|
||||
private static void putNetwork() {
|
||||
put(TileEntityCableBaseNT.class, "tileentity_cable", "tileentity_wirecoated");
|
||||
put(TileEntityCableSwitch.class, "tileentity_cable_switch");
|
||||
put(TileEntityDiode.class, "tileentity_cable_diode");
|
||||
|
||||
put(TileEntityConnector.class, "tileentity_connector_redwire");
|
||||
put(TileEntityPylon.class, "tileentity_pylon_redwire");
|
||||
|
||||
@ -37,29 +37,32 @@ public class TileEntityLandmine extends TileEntity {
|
||||
if (block == ModBlocks.mine_fat) {
|
||||
range = 2.5D;
|
||||
}
|
||||
|
||||
if(!isPrimed)
|
||||
range *= 2;
|
||||
|
||||
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;
|
||||
for (Object o : list) {
|
||||
|
||||
if (o instanceof EntityLivingBase) {
|
||||
|
||||
for(Object o : list) {
|
||||
|
||||
if(o instanceof EntityLivingBase) {
|
||||
|
||||
flag = true;
|
||||
|
||||
|
||||
if(isPrimed) {
|
||||
|
||||
((Landmine)block).explode(worldObj, xCoord, yCoord, zCoord);
|
||||
//why did i do it like that?
|
||||
((Landmine) block).explode(worldObj, xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -390,8 +390,9 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements
|
||||
for(int j = 0; j < inv.getSizeInventory(); j++) {
|
||||
|
||||
if(inv.getStackInSlot(j) == null) {
|
||||
inv.setInventorySlotContents(j, out.copy());
|
||||
inv.getStackInSlot(j).stackSize = 1;
|
||||
ItemStack copy = out.copy();
|
||||
copy.stackSize = 1;
|
||||
inv.setInventorySlotContents(j, copy);
|
||||
this.decrStackSize(i, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ import com.hbm.util.InventoryUtil;
|
||||
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
@ -266,6 +267,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa
|
||||
if(te instanceof IInventory) {
|
||||
|
||||
IInventory inv = (IInventory) te;
|
||||
//ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null;
|
||||
|
||||
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++) {
|
||||
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);
|
||||
target.stackSize++;
|
||||
return;
|
||||
@ -286,8 +288,9 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa
|
||||
for(int j = 0; j < inv.getSizeInventory(); j++) {
|
||||
|
||||
if(inv.getStackInSlot(j) == null) {
|
||||
inv.setInventorySlotContents(j, out.copy());
|
||||
inv.getStackInSlot(j).stackSize = 1;
|
||||
ItemStack copy = out.copy();
|
||||
copy.stackSize = 1;
|
||||
inv.setInventorySlotContents(j, copy);
|
||||
this.decrStackSize(i, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -206,8 +206,6 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven
|
||||
return false;
|
||||
}
|
||||
|
||||
System.out.println("ass");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -66,9 +66,17 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery {
|
||||
if(mode == 1 || mode == 2) {
|
||||
if(te instanceof IEnergyConnector) {
|
||||
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 transfer = this.power - con.transferPower(this.power);
|
||||
this.power = oldPower - transfer;
|
||||
|
||||
power += remainder;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto
|
||||
IEnergyConductor conductor = (IEnergyConductor) te;
|
||||
|
||||
if(!conductor.canConnect(dir.getOpposite()))
|
||||
break;
|
||||
continue;
|
||||
|
||||
if(this.getPowerNet() == null && conductor.getPowerNet() != null) {
|
||||
conductor.getPowerNet().joinLink(this);
|
||||
|
||||
@ -15,6 +15,17 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
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) {
|
||||
return Vec3.createVectorHelper(
|
||||
interp(vec1.xCoord, vec2.xCoord, interp),
|
||||
|
||||
@ -7,6 +7,7 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
@ -256,7 +257,6 @@ public class InventoryUtil {
|
||||
|
||||
if(inv.stackSize <= 0) {
|
||||
inventory[j] = null;
|
||||
System.out.println("da yis");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -447,4 +447,86 @@ public class InventoryUtil {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,15 @@ public class ItemStackUtil {
|
||||
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.
|
||||
* @param array
|
||||
|
||||
109
src/main/java/com/hbm/world/feature/OreLayer.java
Normal file
109
src/main/java/com/hbm/world/feature/OreLayer.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1014,6 +1014,7 @@ item.cape_codered_.name=codered_s Cape
|
||||
item.cape_dafnik.name=Dafniks Cape
|
||||
item.cape_gasmask.name=Cape (Gasmaske)
|
||||
item.cape_hbm.name=Hbms Cape
|
||||
item.cape_hidden.name=Hidden Cape
|
||||
item.cape_lpkukin.name=LPkukins Cape
|
||||
item.cape_nostalgia.name=DrNostalgias Cape
|
||||
item.cape_radiation.name=Cape (Radioaktiv)
|
||||
@ -3024,6 +3025,7 @@ tile.broadcaster_pc.name=Korrupter Sender
|
||||
tile.burning_earth.name=Brennendes Gras
|
||||
tile.c4.name=C4
|
||||
tile.cable_detector.name=Redstone-Stromschalter
|
||||
tile.cable_diode.name=Rote Kupferdiode
|
||||
tile.cable_switch.name=Stromschalter
|
||||
tile.charge_c4.name=Abrissladung
|
||||
tile.charge_dynamite.name=Zeitbombe
|
||||
|
||||
@ -1225,6 +1225,7 @@ item.cape_codered_.name=codered_'s Cape
|
||||
item.cape_dafnik.name=Dafnik's Cape
|
||||
item.cape_gasmask.name=Cape (Gas Mask)
|
||||
item.cape_hbm.name=Hbm's Cape
|
||||
item.cape_hidden.name=Hidden Cape
|
||||
item.cape_lpkukin.name=LPkukin's Cape
|
||||
item.cape_nostalgia.name=DrNostalgia's Cape
|
||||
item.cape_radiation.name=Cape (Radiation)
|
||||
@ -3396,6 +3397,7 @@ tile.broadcaster_pc.name=Corrupted Broadcaster
|
||||
tile.burning_earth.name=Burning Grass
|
||||
tile.c4.name=C-4
|
||||
tile.cable_detector.name=Redstone Power Switch
|
||||
tile.cable_diode.name=Red Copper Diode
|
||||
tile.cable_switch.name=Power Switch
|
||||
tile.charge_c4.name=Demolition Charge
|
||||
tile.charge_dynamite.name=Time Bomb
|
||||
|
||||
@ -1305,6 +1305,7 @@ container.generator=Ядерный реактор
|
||||
tile.red_wire_coated.name=Медный кабель с покрытием
|
||||
tile.cable_switch.name=Рубильник
|
||||
tile.cable_detector.name=Редстоун-рубильник
|
||||
tile.cable_diode.name=Диод из красной меди
|
||||
tile.machine_deuterium.name=Дейтериевый экстрактор
|
||||
container.machine_deuterium=Дейтериевый экстрактор
|
||||
tile.machine_battery_potato.name=Картофельная батарея
|
||||
@ -4181,6 +4182,7 @@ tile.tektite.name=Тектит
|
||||
item.cape_radiation.name=Плащ (Радиация)
|
||||
item.cape_gasmask.name=Плащ (Противогаз)
|
||||
item.cape_schrabidium.name=Плащ (Шрабидий)
|
||||
item.cape_hidden.name=Скрытый плащ
|
||||
item.cape_hbm.name=Hbm's Cape
|
||||
item.cape_dafnik.name=Dafnik'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.pane_acrylic.name=Acrylic 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_optical_bd=Auxiliary Elite Optical Drive
|
||||
tile.storage_aux_optical_cd=Auxiliary Basic Optical Drive
|
||||
|
||||
815
src/main/resources/assets/hbm/models/bombs/marelet.obj
Normal file
815
src/main/resources/assets/hbm/models/bombs/marelet.obj
Normal 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
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/cable_diode.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/cable_diode.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 403 B |
BIN
src/main/resources/assets/hbm/textures/blocks/test_bb_bork.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/test_bb_bork.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 191 B |
BIN
src/main/resources/assets/hbm/textures/blocks/test_bb_inf.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/test_bb_inf.png
Normal file
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 |
@ -3,7 +3,7 @@
|
||||
"modid": "hbm",
|
||||
"name": "Hbm's Nuclear Tech",
|
||||
"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",
|
||||
"url": "",
|
||||
"updateUrl": "",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user