pipes, all of them

This commit is contained in:
Bob 2021-05-13 17:21:31 +02:00
parent 8971cafa39
commit 81cdd7a03a
66 changed files with 1037 additions and 1195 deletions

View File

@ -299,14 +299,26 @@ public class ModBlocks {
public static Block deco_pipe_rusted;
public static Block deco_pipe_green;
public static Block deco_pipe_green_rusted;
public static Block deco_pipe_red;
public static Block deco_pipe_marked;
public static Block deco_pipe_rim;
public static Block deco_pipe_rim_rusted;
public static Block deco_pipe_rim_green;
public static Block deco_pipe_rim_green_rusted;
public static Block deco_pipe_rim_red;
public static Block deco_pipe_rim_marked;
public static Block deco_pipe_framed;
public static Block deco_pipe_framed_rusted;
public static Block deco_pipe_framed_green;
public static Block deco_pipe_framed_green_rusted;
public static Block deco_pipe_framed_red;
public static Block deco_pipe_framed_marked;
public static Block deco_pipe_quad;
public static Block deco_pipe_quad_rusted;
public static Block deco_pipe_quad_green;
public static Block deco_pipe_quad_green_rusted;
public static Block deco_pipe_quad_red;
public static Block deco_pipe_quad_marked;
public static Block broadcaster_pc;
public static Block geiger;
@ -887,6 +899,7 @@ public class ModBlocks {
public static final int guiID_rbmk_control = 115;
public static final int guiID_rbmk_control_auto = 116;
public static final int guiID_rbmk_console = 117;
public static Block rbmk_loader;
public static Block pribris;
public static Block pribris_burning;
public static Block pribris_radiating;
@ -1284,14 +1297,26 @@ public class ModBlocks {
deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc");
geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger");
@ -1652,6 +1677,7 @@ public class ModBlocks {
rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber");
rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator");
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
rbmk_loader = new BlockGeneric(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris");
pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning");
pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating");
@ -2118,18 +2144,30 @@ public class ModBlocks {
GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName());
GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName());
GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe, deco_pipe.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rusted, deco_pipe_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green, deco_pipe_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green_rusted, deco_pipe_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim, deco_pipe_rim.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_rusted, deco_pipe_rim_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green, deco_pipe_rim_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green_rusted, deco_pipe_rim_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad, deco_pipe_quad.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_rusted, deco_pipe_quad_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green, deco_pipe_quad_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, deco_pipe_quad_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe, ItemBlockDecoPipe.class, deco_pipe.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockDecoPipe.class, deco_pipe_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green, ItemBlockDecoPipe.class, deco_pipe_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockDecoPipe.class, deco_pipe_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_red, ItemBlockDecoPipe.class, deco_pipe_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_marked, ItemBlockDecoPipe.class, deco_pipe_marked.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim, ItemBlockDecoPipe.class, deco_pipe_rim.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockDecoPipe.class, deco_pipe_rim_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockDecoPipe.class, deco_pipe_rim_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_marked, ItemBlockDecoPipe.class, deco_pipe_rim_marked.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed, ItemBlockDecoPipe.class, deco_pipe_framed.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed_green, ItemBlockDecoPipe.class, deco_pipe_framed_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed_green_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed_red, ItemBlockDecoPipe.class, deco_pipe_framed_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_framed_marked, ItemBlockDecoPipe.class, deco_pipe_framed_marked.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad, ItemBlockDecoPipe.class, deco_pipe_quad.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green, ItemBlockDecoPipe.class, deco_pipe_quad_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockDecoPipe.class, deco_pipe_quad_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockDecoPipe.class, deco_pipe_quad_marked.getUnlocalizedName());
GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
@ -2345,6 +2383,7 @@ public class ModBlocks {
GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName());
GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName());
GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName());
GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName());

View File

@ -5,6 +5,8 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -12,6 +14,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@ -71,7 +74,9 @@ public class SchrabidicBlock extends BlockFluidClassic {
@Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
entity.setInWeb();
ContaminationUtil.applyRadData(entity, 1.0F);
if(entity instanceof EntityLivingBase)
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F);
}
@Override

View File

@ -5,6 +5,8 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -12,6 +14,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@ -71,7 +74,9 @@ public class ToxicBlock extends BlockFluidClassic {
@Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
entity.setInWeb();
ContaminationUtil.applyRadData(entity, 1.0F);
if(entity instanceof EntityLivingBase)
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F);
}
@Override

View File

@ -3,6 +3,8 @@ package com.hbm.blocks.gas;
import java.util.Random;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -26,7 +28,7 @@ public class BlockGasAsbestos extends BlockGasBase {
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
if(entity instanceof EntityLivingBase) {
ContaminationUtil.applyAsbestos(entity, 1);
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.ASBESTOS, ContaminationType.GAS, 1);
}
}

View File

@ -4,6 +4,8 @@ import java.util.Random;
import com.hbm.util.ArmorUtil;
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;
@ -17,7 +19,7 @@ public class BlockGasRadon extends BlockGasBase {
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) {
ContaminationUtil.applyRadDirect(entity, 0.05F);
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.05F);
}
}

View File

@ -5,6 +5,8 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.potion.HbmPotion;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -21,7 +23,7 @@ public class BlockGasRadonDense extends BlockGasBase {
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) {
ContaminationUtil.applyRadDirect(entity, 0.5F);
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.GAS, 0.5F);
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 0));
}
}

View File

@ -4,6 +4,8 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
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;
@ -43,7 +45,7 @@ public class BlockGasRadonTomb extends BlockGasBase {
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) {
ContaminationUtil.applyRadDirect(entity, 0.5F);
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.5F);
}
}

View File

@ -1,5 +1,7 @@
package com.hbm.blocks.generic;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -13,6 +15,11 @@ public class BlockPipe extends Block {
@SideOnly(Side.CLIENT)
private IIcon sideIcon;
@SideOnly(Side.CLIENT)
public IIcon frameIcon;
@SideOnly(Side.CLIENT)
public IIcon meshIcon;
private String sideString;
public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass
@ -27,6 +34,8 @@ public class BlockPipe extends Block {
public void registerBlockIcons(IIconRegister iconRegister) {
super.registerBlockIcons(iconRegister);
this.sideIcon = iconRegister.registerIcon(sideString);
this.frameIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_frame");
this.meshIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_mesh");
}
@Override

View File

@ -56,7 +56,7 @@ public class RBMKConsole extends BlockDummyable {
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return false;
return true;
TileEntityRBMKConsole entity = (TileEntityRBMKConsole) world.getTileEntity(pos[0], pos[1], pos[2]);
if(entity != null) {

View File

@ -12,11 +12,14 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
@ -182,11 +185,12 @@ public class EntityNuclearCreeper extends EntityMob {
}
}
List<Entity> list = this.worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
List<Entity> list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
for(Entity e : list)
if(!(e instanceof EntityNuclearCreeper))
ContaminationUtil.applyRadData(e, 0.25F);
if(e instanceof EntityLivingBase) {
ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F);
}
super.onUpdate();

View File

@ -12,20 +12,20 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRadiationImmune {
public int attackCounter = 0;
protected final IEntitySelector selector = new IEntitySelector() {
@Override
public boolean isEntityApplicable(Entity ent) {
if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT)ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID())
if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT) ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID())
return false;
return true;
}
};
public EntityBOTPrimeBase(World world) {
@ -39,10 +39,10 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa
this.dragInGround = 0.98F;
this.knockbackDivider = 1.0D;
}
public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) {
return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double)p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null;
}
public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) {
return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double) this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double) p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null;
}
@Override
protected void applyEntityAttributes() {
@ -52,40 +52,40 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa
}
@Override
protected boolean isAIEnabled() {
return true;
}
protected boolean isAIEnabled() {
return true;
}
@Override
protected boolean canDespawn() {
return false;
}
protected String getHurtSound() {
return "mob.blaze.hit";
}
protected String getDeathSound() {
return "hbm:entity.bombDet";
}
protected boolean canDespawn() {
return false;
}
protected String getHurtSound() {
return "mob.blaze.hit";
}
protected String getDeathSound() {
return "hbm:entity.bombDet";
}
protected void laserAttack(Entity target, boolean head) {
if(!(target instanceof EntityLivingBase))
return;
EntityLivingBase living = (EntityLivingBase) target;
if(head) {
for(int i = 0; i < 5; i++) {
EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F);
this.worldObj.spawnEntityInWorld(bullet);
}
this.playSound("hbm:weapon.ballsLaser", 5.0F, 0.75F);
} else {
EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F);
this.worldObj.spawnEntityInWorld(bullet);

View File

@ -11,34 +11,33 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
private WormMovementBodyNT movement = new WormMovementBodyNT(this);
//private WormMovementBodyNT movement = new WormMovementBodyNT(this);
public EntityBOTPrimeBody(World world) {
super(world);
this.bodySpeed = 0.6D;
this.rangeForParts = 70.0D;
this.segmentDistance = 3.5D;
this.maxBodySpeed = 1.4D;
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D));
this.maxBodySpeed = 1.4D;
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D));
}
@Override
protected void entityInit() {
super.entityInit();
this.dataWatcher.addObject(17, (byte)0);
this.dataWatcher.addObject(17, (byte) 0);
}
@Override
public float getAttackStrength(Entity target) {
if(target instanceof EntityLivingBase) {
return ((EntityLivingBase) target).getHealth() * 0.75F;
}
return 100;
}
@Override
public boolean isPotionApplicable(PotionEffect potion) {
return false;
@ -48,8 +47,9 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
protected void updateAITasks() {
this.updateEntityActionState();
this.targetTasks.onUpdateTasks();
this.movement.updateMovement();
updateMovement();
if(this.didCheck) {
if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) {
setHealth(getHealth() - 1999.0F);
@ -58,7 +58,7 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false);
}
}
if(this.followed != null && this.followed.isEntityAlive() && getAttackTarget() != null) {
if(canEntityBeSeenThroughNonSolids(getAttackTarget())) {
this.attackCounter += 1;
@ -73,22 +73,22 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
} else if(this.attackCounter > 0) {
this.attackCounter -= 1;
}
if(this.targetedEntity != null) {
double dx = targetedEntity.posX - posX;
double dy = targetedEntity.posY - posY;
double dz = targetedEntity.posZ - posZ;
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(dx, dz) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(dy, f3) * 180.0D / Math.PI);
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI);
}
}
@Override
public void onUpdate() {
super.onUpdate();
if(this.targetedEntity != null) {
double dx = targetedEntity.posX - posX;
double dy = targetedEntity.posY - posY;

View File

@ -28,8 +28,6 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
//TODO: clean-room implementation of the movement behavior classes (again)
private final WormMovementHeadNT movement = new WormMovementHeadNT(this);
public EntityBOTPrimeHead(World world) {
super(world);
this.experienceValue = 1000;
@ -58,7 +56,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) {
if(super.attackEntityFrom(par1DamageSource, par2)) {
this.dmgCooldown = 4;
this.dmgCooldown = 10;
return true;
}
@ -95,7 +93,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
this.updateEntityActionState();
super.updateAITasks();
this.movement.updateMovement();
updateHeadMovement();
if((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) {
if(this.targetedEntity != null) {
@ -164,4 +162,79 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
this.spawnPoint.set(nbt.getInteger("spawnX"), nbt.getInteger("spawnY"), nbt.getInteger("spawnZ"));
}
protected void updateHeadMovement() {
double deltaX = this.waypointX - this.posX;
double deltaY = this.waypointY - this.posY;
double deltaZ = this.waypointZ - this.posZ;
double deltaSq = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ;
if(this.courseChangeCooldown-- <= 0) {
this.courseChangeCooldown += this.getRNG().nextInt(5) + 2;
deltaSq = MathHelper.sqrt_double(deltaSq);
if(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ < this.maxSpeed) {
if(!this.isCourseTraversable()) {
deltaSq *= 8.0D;
}
double moverSpeed = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue();
this.motionX += deltaX / deltaSq * moverSpeed;
this.motionY += deltaY / deltaSq * moverSpeed;
this.motionZ += deltaZ / deltaSq * moverSpeed;
}
}
if(!this.isCourseTraversable()) {
this.motionY -= this.fallSpeed;
}
if(this.dmgCooldown > 0) {
this.dmgCooldown -= 1;
}
this.aggroCooldown -= 1;
if(this.getAttackTarget() != null) {
if(this.aggroCooldown <= 0) {
this.targetedEntity = this.getAttackTarget();
this.aggroCooldown = 20;
}
} else if(this.targetedEntity == null) {
this.waypointX = this.spawnPoint.posX - 50 + this.getRNG().nextInt(100);
this.waypointY = this.spawnPoint.posY - 30 + this.getRNG().nextInt(60);
this.waypointZ = this.spawnPoint.posZ - 50 + this.getRNG().nextInt(100);
}
this.rotationYaw = -(float) -(Math.atan2(this.motionX, this.motionZ) * 180.0F / Math.PI);
this.rotationPitch = (float) -(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI);
if(this.targetedEntity != null && this.targetedEntity .getDistanceSqToEntity(this) < this.attackRange * this.attackRange) {
if(this.wasNearGround || this.canFly) {
this.waypointX = this.targetedEntity.posX;
this.waypointY = this.targetedEntity.posY;
this.waypointZ = this.targetedEntity.posZ;
if(this.getRNG().nextInt(80) == 0 && this.posY > this.surfaceY && !this.isCourseTraversable()) {
this.wasNearGround = false;
}
} else {
this.waypointX = this.targetedEntity.posX;
this.waypointY = 10.0D;
this.waypointZ = this.targetedEntity.posZ;
if(this.posY < 15.0D) {
this.wasNearGround = true;
}
}
}
}
}

View File

@ -1,55 +1,53 @@
package com.hbm.entity.mob.botprime;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityCreature;
import net.minecraft.world.World;
public abstract class EntityBurrowingNT extends EntityCreature {
protected float dragInAir;
protected float dragInGround;
public EntityBurrowingNT(World world) {
super(world);
}
protected void fall(float dist) { }
protected void fall(float dist) {
}
public float getEyeHeight() {
return this.height * 0.5F;
}
public boolean getIsHead() {
return false;
}
protected void updateFallState(double distFallen, boolean onGround) { }
public void moveEntityWithHeading(float strafe, float forward) {
float drag = this.dragInGround;
if((!isEntityInsideOpaqueBlock()) && (!isInWater()) && (!handleLavaMovement())) {
drag = this.dragInAir;
} else if(this.getRNG().nextInt(100) == 0) {
//Block b = worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ));
//this.playSound(b.stepSound.getStepResourcePath(), 5F, 1F);
}
if (!getIsHead()) {
drag *= 0.9F;
}
moveFlying(strafe, forward, 0.02F);
moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= drag;
this.motionY *= drag;
this.motionZ *= drag;
}
public boolean isOnLadder() {
return false;
}
protected void updateFallState(double distFallen, boolean onGround) {
}
public void moveEntityWithHeading(float strafe, float forward) {
float drag = this.dragInGround;
if(!isEntityInsideOpaqueBlock() && !isInWater() && !handleLavaMovement()) {
drag = this.dragInAir;
}
if(!getIsHead()) {
drag *= 0.9F;
}
moveFlying(strafe, forward, 0.02F);
moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= drag;
this.motionY *= drag;
this.motionZ *= drag;
}
public boolean isOnLadder() {
return false;
}
}

View File

@ -4,10 +4,12 @@ import java.util.List;
import net.minecraft.command.IEntitySelector;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World;
@ -32,7 +34,6 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
private int headID;
private int partNum;
protected boolean didCheck;
protected double bodySpeed;
protected double maxBodySpeed;
protected double segmentDistance;
protected double knockbackDivider;
@ -103,12 +104,8 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
if((this.targetedEntity != null) && (this.targetedEntity.isDead)) {
this.targetedEntity = null;
}
/*if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) {
this.entityAge = 0;
}*/
if(this.posY < -10.0D) {
setPositionAndUpdate(this.posX, 128.0D, this.posZ);
this.motionY = 0.0D;
this.motionY = 1D;
} else if(this.posY < 3.0D) {
this.motionY = 0.3D;
}
@ -121,7 +118,7 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
protected void attackEntitiesInList(List<Entity> targets) {
for(Entity target : targets) {
if(((target instanceof EntityLivingBase)) && (canAttackClass(target.getClass())) && ((!(target instanceof EntityWormBaseNT)) || (((EntityWormBaseNT) target).getHeadID() != this.getHeadID()))) {
if((target instanceof EntityLivingBase) && canAttackClass(target.getClass()) && (!(target instanceof EntityWormBaseNT) || ((EntityWormBaseNT) target).getHeadID() != this.getHeadID())) {
attackEntityAsMob(target);
}
}
@ -155,12 +152,10 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
public abstract float getAttackStrength(Entity paramsa);
@Override
public void addVelocity(double x, double y, double z) {
}
public void addVelocity(double x, double y, double z) { }
@Override
public void faceEntity(Entity entity, float yaw, float pitch) {
}
public void faceEntity(Entity entity, float yaw, float pitch) { }
protected boolean isCourseTraversable() {
return (this.canFly) || (isEntityInsideOpaqueBlock());
@ -187,4 +182,59 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
setHeadID(nbt.getInteger("wormID"));
}
protected void updateMovement() {
double targetingRange = 128.0D;
if(this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < targetingRange * targetingRange) {
this.waypointX = this.targetedEntity.posX;
this.waypointY = this.targetedEntity.posY;
this.waypointZ = this.targetedEntity.posZ;
}
if((this.ticksExisted % 60 == 0 || this.ticksExisted == 1) && (this.targetedEntity == null || this.followed == null)) {
findEntityToFollow(this.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.boundingBox.expand(this.rangeForParts, this.rangeForParts, this.rangeForParts), EntityWormBaseNT.wormSelector));
}
double deltaX = this.waypointX - this.posX;
double deltaY = this.waypointY - this.posY;
double deltaZ = this.waypointZ - this.posZ;
double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
if(this.targetedEntity != null) {
this.faceEntity(this.targetedEntity, 180.0F, 180.0F);
}
double speed = Math.max(0.0D, Math.min(deltaDist - this.segmentDistance, this.maxBodySpeed));
if(deltaDist < this.segmentDistance * 0.895D) {
this.motionX *= 0.8D;
this.motionY *= 0.8D;
this.motionZ *= 0.8D;
} else {
this.motionX = (deltaX / deltaDist * speed);
this.motionY = (deltaY / deltaDist * speed);
this.motionZ = (deltaZ / deltaDist * speed);
}
}
protected void findEntityToFollow(List<EntityWormBaseNT> segments) {
for(EntityWormBaseNT segment : segments) {
if(segment.getHeadID() == this.getHeadID()) {
if(segment.getIsHead()) {
if(this.getPartNumber() == 0) {
this.targetedEntity = ((Entity) segment);
}
this.followed = ((EntityLivingBase) segment);
} else if(segment.getPartNumber() == this.getPartNumber() - 1) {
this.targetedEntity = ((Entity) segment);
}
}
}
this.didCheck = true;
}
}

View File

@ -1,72 +0,0 @@
package com.hbm.entity.mob.botprime;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;
public class WormMovementBodyNT {
private EntityWormBaseNT user;
public WormMovementBodyNT(EntityWormBaseNT user) {
this.user = user;
}
protected void updateMovement() {
double targetingRange = 128.0D;
if((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < targetingRange * targetingRange)) {
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = this.user.targetedEntity.posY;
this.user.waypointZ = this.user.targetedEntity.posZ;
}
if(((this.user.ticksExisted % 60 == 0) || (this.user.ticksExisted == 1)) && ((this.user.targetedEntity == null) || (this.user.followed == null))) {
findEntityToFollow(this.user.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.user.boundingBox.expand(this.user.rangeForParts, this.user.rangeForParts, this.user.rangeForParts), EntityWormBaseNT.wormSelector));
}
double deltaX = this.user.waypointX - this.user.posX;
double deltaY = this.user.waypointY - this.user.posY;
double deltaZ = this.user.waypointZ - this.user.posZ;
double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
if(this.user.targetedEntity != null) {
this.user.faceEntity(this.user.targetedEntity, 180.0F, 180.0F);
}
this.user.bodySpeed = Math.max(0.0D, Math.min(deltaDist - this.user.segmentDistance, this.user.maxBodySpeed));
if(deltaDist < this.user.segmentDistance * 0.895D) {
this.user.motionX *= 0.8D;
this.user.motionY *= 0.8D;
this.user.motionZ *= 0.8D;
} else {
this.user.motionX = (deltaX / deltaDist * this.user.bodySpeed);
this.user.motionY = (deltaY / deltaDist * this.user.bodySpeed);
this.user.motionZ = (deltaZ / deltaDist * this.user.bodySpeed);
}
}
protected void findEntityToFollow(List<EntityWormBaseNT> segments) {
for(EntityWormBaseNT segment : segments) {
if(segment.getHeadID() == this.user.getHeadID()) {
if(segment.getIsHead()) {
if(this.user.getPartNumber() == 0) {
this.user.targetedEntity = ((Entity) segment);
}
this.user.followed = ((EntityLivingBase) segment);
} else if(segment.getPartNumber() == this.user.getPartNumber() - 1) {
this.user.targetedEntity = ((Entity) segment);
}
}
}
this.user.didCheck = true;
}
}

View File

@ -1,89 +0,0 @@
package com.hbm.entity.mob.botprime;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.util.MathHelper;
public class WormMovementHeadNT {
private EntityWormBaseNT user;
public WormMovementHeadNT(EntityWormBaseNT user) {
this.user = user;
}
protected void updateMovement() {
double deltaX = this.user.waypointX - this.user.posX;
double deltaY = this.user.waypointY - this.user.posY;
double deltaZ = this.user.waypointZ - this.user.posZ;
double deltaSq = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ;
if(this.user.courseChangeCooldown-- <= 0) {
this.user.courseChangeCooldown += this.user.getRNG().nextInt(5) + 2;
deltaSq = MathHelper.sqrt_double(deltaSq);
if(this.user.motionX * this.user.motionX + this.user.motionY * this.user.motionY + this.user.motionZ * this.user.motionZ < this.user.maxSpeed) {
if(!this.user.isCourseTraversable()) {
deltaSq *= 8.0D;
}
double moverSpeed = this.user.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue();
this.user.motionX += deltaX / deltaSq * moverSpeed;
this.user.motionY += deltaY / deltaSq * moverSpeed;
this.user.motionZ += deltaZ / deltaSq * moverSpeed;
}
}
if(!this.user.isCourseTraversable()) {
this.user.motionY -= this.user.fallSpeed;
}
if(this.user.dmgCooldown > 0) {
this.user.dmgCooldown -= 1;
}
this.user.aggroCooldown -= 1;
if(this.user.getAttackTarget() != null) {
if(this.user.aggroCooldown <= 0) {
this.user.targetedEntity = this.user.getAttackTarget();
this.user.aggroCooldown = 20;
}
} else if(this.user.targetedEntity == null) {
this.user.waypointX = (this.user.spawnPoint.posX - 30 + this.user.getRNG().nextInt(60));
this.user.waypointY = (this.user.spawnPoint.posY - 10 + this.user.getRNG().nextInt(20));
this.user.waypointZ = (this.user.spawnPoint.posZ - 30 + this.user.getRNG().nextInt(60));
}
this.user.rotationYaw = -(float) -(Math.atan2(this.user.motionX, this.user.motionZ) * 180.0F / Math.PI);
this.user.rotationPitch = (float) -(Math.atan2(this.user.motionY, MathHelper.sqrt_double(this.user.motionX * this.user.motionX + this.user.motionZ * this.user.motionZ)) * 180.0D / Math.PI);
if(this.user.targetedEntity != null && this.user.targetedEntity .getDistanceSqToEntity(this.user) < this.user.attackRange * this.user.attackRange) {
if((this.user.wasNearGround) || (this.user.canFly)) {
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = this.user.targetedEntity.posY;
this.user.waypointZ = this.user.targetedEntity.posZ;
if((this.user.getRNG().nextInt(80) == 0) && (this.user.posY > this.user.surfaceY) && (!this.user.isCourseTraversable())) {
this.user.wasNearGround = false;
}
} else {
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = 10.0D;
this.user.waypointZ = this.user.targetedEntity.posZ;
if(this.user.posY < 15.0D) {
this.user.wasNearGround = true;
}
}
}
}
}

View File

@ -1,57 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import net.minecraft.command.IEntitySelector;
import net.minecraft.entity.Entity;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public abstract class EntityBallsOTronBase extends EntityWormBase {
public int attackCounter = 0;
protected final IEntitySelector selector = new IEntitySelector() {
@Override
public boolean isEntityApplicable(Entity ent) {
if(ent instanceof EntityWormBase && ((EntityWormBase)ent).getUniqueWormID() == EntityBallsOTronBase.this.getUniqueWormID())
return false;
return true;
}
};
public EntityBallsOTronBase(World world) {
super(world);
this.setSize(2.0F, 2.0F);
this.isImmuneToFire = true;
this.isAirBorne = true;
this.noClip = true;
this.renderDistanceWeight = 15.0D;
this.dragInAir = 0.995F;
this.dragInGround = 0.98F;
this.knockbackDivider = 1.0D;
}
public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) {
return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double)p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null;
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(5000.0D);
}
@Override
protected boolean isAIEnabled() {
return true;
}
@Override
protected boolean canDespawn() {
return false;
}
}

View File

@ -1,159 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import com.hbm.entity.mob.EntityAINearestAttackableTargetNT;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.boss.IBossDisplayData;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IChatComponent;
import net.minecraft.world.World;
public class EntityBallsOTronHead extends EntityBallsOTronBase implements IBossDisplayData {
/* ___ _ _ _ ___ ___ _____ ___ ___ _ _
* | _ ) /_\ | | | | / __| ___ | | ___ |_ _| _ )| | \| |
* | _ \/ _ \| |__| |__\__ \ |___| | | | |___| | | | \| | | |
* |___/_/ \_\____|____|___/ |___| |_| |_|\_\___|_|\_|
*/
private final WormMovementHead movement = new WormMovementHead(this);
public EntityBallsOTronHead(World world) {
super(world);
this.experienceValue = 1000;
this.wasNearGround = false;
this.attackRange = 150.0D;
this.setSize(3.0F, 3.0F);
this.maxSpeed = 1.0D;
this.fallSpeed = 0.006D;
this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false));
this.targetTasks.addTask(2, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, null, 128.0D));
this.targetTasks.addTask(3, new EntityAINearestAttackableTargetNT(this, Entity.class, 0, false, false, this.selector, 50.0D));
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.15D);
}
@Override
public boolean getIsHead() {
return true;
}
@Override
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) {
if(super.attackEntityFrom(par1DamageSource, par2)) {
this.dmgCooldown = 4;
return true;
}
return false;
}
public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
/*setUniqueWormID(this.rand.nextInt(4096));
int x = MathHelper.floor_double(this.posX);
int y = MathHelper.floor_double(this.posY);
int z = MathHelper.floor_double(this.posZ);
for (int o = 0; o < 119; o++) {
EntityBallsOTronSegment bodyPart = new EntityBallsOTronSegment(this.worldObj);
bodyPart.setPartID(o);
bodyPart.setPosition(x, y, z);
bodyPart.setUniqueWormID(getUniqueWormID());
this.worldObj.spawnEntityInWorld(bodyPart);
}
setPosition(x, y, z);
this.spawnPoint.set(x, y, z);
this.aggroCooldown = 60;
return super.onSpawnWithEgg(data);*/
//TODO: unlock this
this.setDead();
return data;
}
@Override
protected void updateAITasks() {
super.updateAITasks();
this.movement.updateMovement();
if ((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) {
if (this.targetedEntity != null) {
heal(1.0F);
} else if (this.recentlyHit == 0) {
heal(4.0F);
}
}
if ((this.targetedEntity != null) && (this.targetedEntity.getDistanceSqToEntity(this) < this.attackRange * this.attackRange))
{
if (canEntityBeSeenThroughNonSolids(this.targetedEntity))
{
this.attackCounter += 1;
if (this.attackCounter == 10)
{
//useLaser(this.targetedEntity, true);
this.attackCounter = -20;
}
}
else if (this.attackCounter > 0)
{
this.attackCounter -= 1;
}
}
else if (this.attackCounter > 0) {
this.attackCounter -= 1;
}
}
@Override
public float getAttackStrength(Entity target) {
if(target instanceof EntityLivingBase) {
return ((EntityLivingBase) target).getHealth() * 0.75F;
}
return 100;
}
@Override
public IChatComponent func_145748_c_() {
return super.func_145748_c_();
}
public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound)
{
super.writeEntityToNBT(par1NBTTagCompound);
par1NBTTagCompound.setInteger("AggroCD", this.aggroCooldown);
par1NBTTagCompound.setInteger("CenterX", this.spawnPoint.posX);
par1NBTTagCompound.setInteger("CenterY", this.spawnPoint.posY);
par1NBTTagCompound.setInteger("CenterZ", this.spawnPoint.posZ);
}
public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound)
{
super.readEntityFromNBT(par1NBTTagCompound);
this.aggroCooldown = par1NBTTagCompound.getInteger("AggroCD");
this.spawnPoint.set(par1NBTTagCompound.getInteger("CenterX"), par1NBTTagCompound.getInteger("CenterY"), par1NBTTagCompound.getInteger("CenterZ"));
}
}

View File

@ -1,86 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import com.hbm.entity.mob.EntityAINearestAttackableTargetNT;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class EntityBallsOTronSegment extends EntityBallsOTronBase {
private WormMovementBody movement = new WormMovementBody(this);
public EntityBallsOTronSegment(World world) {
super(world);
this.bodySpeed = 0.6D;
this.rangeForParts = 70.0D;
this.segmentDistance = 1.9D;
this.maxBodySpeed = 1.4D;
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityLivingBase.class, 0, true, false, this.selector, 128.0D));
}
@Override
protected void entityInit() {
super.entityInit();
this.dataWatcher.addObject(17, (byte)0);
}
@Override
public float getAttackStrength(Entity target) {
if(target instanceof EntityLivingBase) {
return ((EntityLivingBase) target).getHealth() * 0.75F;
}
return 100;
}
@Override
protected void updateAITasks() {
this.movement.updateMovement();
if((this.followed != null) && (getPartID() == 0)) {
//this.dataWatcher.updateObject(17, Byte.valueOf((byte) (((EntityBallsOTronHead) this.followed).isArmored() ? 1 : 0)));
} else if(this.targetedEntity != null) {
this.dataWatcher.updateObject(17, Byte.valueOf(this.targetedEntity.getDataWatcher().getWatchableObjectByte(17)));
}
if(this.didCheck) {
if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) {
setHealth(getHealth() - 1999.0F);
}
if(((this.followed == null) || (!this.followed.isEntityAlive())) && (this.rand.nextInt(60) == 0)) {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false);
}
}
if((this.followed != null) && (getAttackTarget() != null)) {
if(canEntityBeSeenThroughNonSolids(getAttackTarget())) {
this.attackCounter += 1;
if(this.attackCounter == 10) {
//useLaser(o(), false);
this.attackCounter = -20;
}
} else if(this.attackCounter > 0) {
this.attackCounter -= 1;
}
} else if(this.attackCounter > 0) {
this.attackCounter -= 1;
}
float f3 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI);
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(motionY, f3) * 180.0D / Math.PI);
}
public void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("partID", this.getPartID());
}
public void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
setPartID(nbt.getInteger("partID"));
}
}

View File

@ -1,88 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import net.minecraft.entity.EntityCreature;
import net.minecraft.world.World;
public abstract class EntityBurrowing extends EntityCreature {
protected float dragInAir;
protected float dragInGround;
public EntityBurrowing(World world) {
super(world);
}
/*
* No need to update this
*/
protected void fall(float dist) { }
/*
* Our "eye"-height should always be centered
*/
public float getEyeHeight() {
return this.height * 0.5F;
}
public boolean getIsHead() {
return false;
}
/*
* No fall damage :P
*/
protected void updateFallState(double distFallen, boolean onGround) { }
public void moveEntityWithHeading(float strafe, float forward) {
float drag = this.dragInGround;
if ((!isEntityInsideOpaqueBlock()) && (!isInWater()) && (!handleLavaMovement()))
{
drag = this.dragInAir;
}
else
{
this.distanceWalkedModified = ((float)(this.distanceWalkedModified + Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ) * 0.4D));
this.distanceWalkedOnStepModified = ((float)(this.distanceWalkedOnStepModified + Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ + this.motionY * this.motionY) * 0.4D));
/*if (this.distanceWalkedOnStepModified > this.nextStepDistance)
{
//this.nextStepDistance = ((int)this.distanceWalkedOnStepModified + 1);
if (isInWater())
{
float var39 = (float) (Math.sqrt(this.motionX * this.motionX * 0.2D + this.motionY * this.motionY + this.motionZ * this.motionZ * 0.2) * 0.35F);
if (var39 > 1.0F) {
var39 = 1.0F;
}
playSound("liquid.swim", var39, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.4F);
}
if (getIsHead()) {
playSound("alexmod.destroyer.dig", getSoundVolume(), 1.0F);
}
}*/
}
if (!getIsHead()) {
drag *= 0.9F;
}
moveFlying(strafe, forward, 0.02F);
moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= drag;
this.motionY *= drag;
this.motionZ *= drag;
this.prevLimbSwingAmount = this.limbSwingAmount;
double deltaX = this.posX - this.prevPosX;
double deltaZ = this.posZ - this.prevPosZ;
float dist = (float) Math.sqrt(deltaX * deltaX + deltaZ * deltaZ) * 4.0F;
if (dist > 1.0F) {
dist = 1.0F;
}
this.limbSwingAmount += (dist - this.limbSwingAmount) * 0.4F;
this.limbSwing += this.limbSwingAmount;
}
public boolean isOnLadder() {
return false;
}
}

View File

@ -1,179 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import java.util.List;
import net.minecraft.command.IEntitySelector;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.DamageSource;
import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World;
public abstract class EntityWormBase extends EntityBurrowing {
public int aggroCooldown = 0;
public int courseChangeCooldown = 0;
public double waypointX;
public double waypointY;
public double waypointZ;
protected Entity targetedEntity = null;
protected boolean canFly = false;
protected int dmgCooldown = 0;
protected boolean wasNearGround;
protected ChunkCoordinates spawnPoint = new ChunkCoordinates();
protected double attackRange;
protected double maxSpeed;
protected double fallSpeed;
protected double rangeForParts;
protected EntityLivingBase followed;
protected int surfaceY;
private int uniqueWormID;
private int partID;
protected boolean didCheck;
protected double bodySpeed;
protected double maxBodySpeed;
protected double segmentDistance;
protected double knockbackDivider;
protected int attackTick;
public static final IEntitySelector wormSelector = new IEntitySelector() {
@Override
public boolean isEntityApplicable(Entity target) {
return target instanceof EntityWormBase;
}
};
public EntityWormBase(World world) {
super(world);
this.setSize(1.0F, 1.0F);
this.surfaceY = 60;
this.renderDistanceWeight = 5.0D;
}
public int getPartID() {
return this.partID;
}
public void setPartID(int par1) {
this.partID = par1;
}
public int getUniqueWormID() {
return this.uniqueWormID;
}
public void setUniqueWormID(int id) {
this.uniqueWormID = id;
}
@Override
public boolean attackEntityFrom(DamageSource source, float amount) {
if(this.isEntityInvulnerable() || source == DamageSource.drown || source == DamageSource.inWall ||
((source.getEntity() instanceof EntityWormBase) && ((EntityWormBase) source.getEntity()).uniqueWormID == this.uniqueWormID)) {
return false;
} else {
this.setBeenAttacked();
return false;
}
}
protected void updateEntityActionState() {
if((!this.worldObj.isRemote) && (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL)) {
setDead();
}
if((this.targetedEntity != null) && (this.targetedEntity.isDead)) {
this.targetedEntity = null;
}
if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) {
this.entityAge = 0;
}
if(this.posY < -10.0D) {
setPositionAndUpdate(this.posX, 128.0D, this.posZ);
this.motionY = 0.0D;
} else if(this.posY < 3.0D) {
this.motionY = 0.3D;
}
this.attackTick = Math.max(this.attackTick - 1, 0);
if(this.attackTick == 0) {
this.attackTick = 10;
attackEntitiesInList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.5D, 0.5D, 0.5D)));
}
}
protected void attackEntitiesInList(List<Entity> targets) {
for(Entity var3 : targets) {
if(((var3 instanceof EntityLivingBase)) && (canAttackClass(var3.getClass()))
&& ((!(var3 instanceof EntityWormBase)) || (((EntityWormBase) var3).getUniqueWormID() != getUniqueWormID()))) {
attackEntityAsMob(var3);
}
}
}
@Override
public boolean canAttackClass(Class clazz) {
return true;
}
@Override
public boolean attackEntityAsMob(Entity target) {
boolean var2 = target.attackEntityFrom(DamageSource.causeMobDamage(this), getAttackStrength(target));
if(var2) {
this.entityAge = 0;
double tx = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D;
double tz = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D;
double ty = (this.boundingBox.minY + this.boundingBox.maxY) / 2.0D;
double deltaX = target.posX - tx;
double deltaZ = target.posZ - tz;
double deltaY = target.posY - ty;
double knockback = this.knockbackDivider * (deltaX * deltaX + deltaZ * deltaZ + deltaY * deltaY + 0.1D);
target.addVelocity(deltaX / knockback, deltaY / knockback, deltaZ / knockback);
}
return var2;
}
public abstract float getAttackStrength(Entity paramsa);
@Override
public void addVelocity(double x, double y, double z) {
}
@Override
public void faceEntity(Entity entity, float yaw, float pitch) {
}
protected boolean isCourseTraversable() {
return (this.canFly) || (isEntityInsideOpaqueBlock());
}
@Override
protected float getSoundVolume() {
return 5.0F;
}
@Override
public void setDead() {
playSound(getDeathSound(), getSoundVolume(), getSoundPitch());
super.setDead();
}
public void writeEntityToNBT(NBTTagCompound nbt) {
super.writeEntityToNBT(nbt);
nbt.setInteger("wormID", this.getUniqueWormID());
}
public void readEntityFromNBT(NBTTagCompound nbt) {
super.readEntityFromNBT(nbt);
setUniqueWormID(nbt.getInteger("wormID"));
}
}

View File

@ -1,70 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;
public class WormMovementBody {
private EntityWormBase user;
public WormMovementBody(EntityWormBase user) {
this.user = user;
}
protected void updateMovement() {
double targetingRange = 128.0D;
if((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < targetingRange * targetingRange)) {
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = this.user.targetedEntity.posY;
this.user.waypointZ = this.user.targetedEntity.posZ;
}
if(((this.user.ticksExisted % 60 == 0) || (this.user.ticksExisted == 1)) && ((this.user.targetedEntity == null) || (this.user.followed == null))) {
findEntityToFollow(this.user.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.user.boundingBox.expand(this.user.rangeForParts, this.user.rangeForParts, this.user.rangeForParts), EntityWormBase.wormSelector));
}
double deltaX = this.user.waypointX - this.user.posX;
double deltaY = this.user.waypointY - this.user.posY;
double deltaZ = this.user.waypointZ - this.user.posZ;
double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
if(this.user.targetedEntity != null) {
this.user.faceEntity(this.user.targetedEntity, 180.0F, 180.0F);
}
this.user.bodySpeed = Math.max(0.0D, Math.min(deltaDist - this.user.segmentDistance, this.user.maxBodySpeed));
if(deltaDist < this.user.segmentDistance * 0.895D) {
this.user.motionX *= 0.8D;
this.user.motionY *= 0.8D;
this.user.motionZ *= 0.8D;
} else {
this.user.motionX = (deltaX / deltaDist * this.user.bodySpeed);
this.user.motionY = (deltaY / deltaDist * this.user.bodySpeed);
this.user.motionZ = (deltaZ / deltaDist * this.user.bodySpeed);
}
}
protected void findEntityToFollow(List<EntityWormBase> segments) {
for(EntityWormBase segment : segments) {
if(segment.getUniqueWormID() == this.user.getUniqueWormID()) {
if(segment.getIsHead()) {
if(this.user.getPartID() == 0) {
this.user.targetedEntity = ((Entity) segment);
}
this.user.followed = ((EntityLivingBase) segment);
} else if(segment.getPartID() == this.user.getPartID() - 1) {
this.user.targetedEntity = ((Entity) segment);
}
}
}
this.user.didCheck = true;
}
}

View File

@ -1,79 +0,0 @@
package com.hbm.entity.mob.sodtekhnologiyah;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.util.MathHelper;
public class WormMovementHead {
private EntityWormBase user;
public WormMovementHead(EntityWormBase user) {
this.user = user;
}
protected void updateMovement() {
double var1 = this.user.waypointX - this.user.posX;
double var3 = this.user.waypointY - this.user.posY;
double var5 = this.user.waypointZ - this.user.posZ;
double var7 = var1 * var1 + var3 * var3 + var5 * var5;
if (this.user.courseChangeCooldown-- <= 0)
{
this.user.courseChangeCooldown += this.user.getRNG().nextInt(5) + 2;
var7 = MathHelper.sqrt_double(var7);
if (this.user.motionX * this.user.motionX + this.user.motionY * this.user.motionY + this.user.motionZ * this.user.motionZ < this.user.maxSpeed)
{
if (!this.user.isCourseTraversable()) {
var7 *= 8.0D;
}
double moverSpeed = this.user.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue();
this.user.motionX += var1 / var7 * moverSpeed;
this.user.motionY += var3 / var7 * moverSpeed;
this.user.motionZ += var5 / var7 * moverSpeed;
}
}
if (!this.user.isCourseTraversable()) {
this.user.motionY -= this.user.fallSpeed;
}
if (this.user.dmgCooldown > 0) {
this.user.dmgCooldown -= 1;
}
this.user.aggroCooldown -= 1;
if (this.user.getAttackTarget() != null)
{
if (this.user.aggroCooldown <= 0)
{
this.user.targetedEntity = this.user.getAttackTarget();
this.user.aggroCooldown = 20;
}
}
else if (this.user.targetedEntity == null)
{
this.user.waypointX = (this.user.spawnPoint.posX - 30 + this.user.getRNG().nextInt(60));
this.user.waypointY = (this.user.spawnPoint.posY - 10 + this.user.getRNG().nextInt(20));
this.user.waypointZ = (this.user.spawnPoint.posZ - 30 + this.user.getRNG().nextInt(60));
}
this.user.rotationYaw = (-(float)Math.atan2(this.user.motionX, this.user.motionZ) * 180.0F / 3.1415927F);
this.user.rotationPitch = ((float)-(Math.atan2(this.user.motionY, MathHelper.sqrt_double(this.user.motionX * this.user.motionX + this.user.motionZ * this.user.motionZ)) * 180.0D / 3.141592653589793D));
if ((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < this.user.attackRange * this.user.attackRange)) {
if ((this.user.wasNearGround) || (this.user.canFly))
{
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = this.user.targetedEntity.posY;
this.user.waypointZ = this.user.targetedEntity.posZ;
if ((this.user.getRNG().nextInt(80) == 0) && (this.user.posY > this.user.surfaceY) && (!this.user.isCourseTraversable())) {
this.user.wasNearGround = false;
}
}
else
{
this.user.waypointX = this.user.targetedEntity.posX;
this.user.waypointY = 10.0D;
this.user.waypointZ = this.user.targetedEntity.posZ;
if (this.user.posY < 15.0D) {
this.user.wasNearGround = true;
}
}
}
}
}

View File

@ -3,6 +3,8 @@ package com.hbm.explosion;
import java.util.List;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.AxisAlignedBB;
@ -37,7 +39,7 @@ public class ExplosionHurtUtil {
double interpolation = 1 - (dist / radius);
float rad = (float) (outer + (inner - outer) * interpolation);
ContaminationUtil.applyRadData(entity, rad);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad);
}
}

View File

@ -30,6 +30,8 @@ public class HbmLivingProps implements IExtendedEntityProperties {
private float radiation;
private float digamma;
private int asbestos;
private float radEnv;
private float radBuf;
public HbmLivingProps(EntityLivingBase entity) {
this.entity = entity;
@ -69,6 +71,24 @@ public class HbmLivingProps implements IExtendedEntityProperties {
data.setRadiation(entity, radiation);
}
/// RAD ENV ///
public static float getRadEnv(EntityLivingBase entity) {
return getData(entity).radEnv;
}
public static void setRadEnv(EntityLivingBase entity, float rad) {
getData(entity).radEnv = rad;
}
/// RAD BUF ///
public static float getRadBuf(EntityLivingBase entity) {
return getData(entity).radBuf;
}
public static void setRadBuf(EntityLivingBase entity, float rad) {
getData(entity).radBuf = rad;
}
/// DIGAMA ///
public static float getDigamma(EntityLivingBase entity) {
return getData(entity).digamma;

View File

@ -11,6 +11,8 @@ import com.hbm.packet.ExtPropPacket;
import com.hbm.saveddata.AuxSavedData;
import com.hbm.saveddata.RadiationSavedData;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
@ -29,11 +31,19 @@ public class EntityEffectHandler {
public static void onUpdate(EntityLivingBase entity) {
if(!entity.worldObj.isRemote && entity instanceof EntityPlayerMP) {
NBTTagCompound data = new NBTTagCompound();
HbmLivingProps props = HbmLivingProps.getData(entity);
props.saveNBTData(data);
PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity);
if(!entity.worldObj.isRemote) {
if(entity.ticksExisted % 20 == 0) {
HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity));
HbmLivingProps.setRadEnv(entity, 0);
}
if(entity instanceof EntityPlayerMP) {
NBTTagCompound data = new NBTTagCompound();
HbmLivingProps props = HbmLivingProps.getData(entity);
props.saveNBTData(data);
PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity);
}
}
handleRadiation(entity);
@ -50,9 +60,6 @@ public class EntityEffectHandler {
RadiationSavedData data = RadiationSavedData.getData(world);
if(!world.isRemote) {
if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)
return;
int ix = (int)MathHelper.floor_double(entity.posX);
int iy = (int)MathHelper.floor_double(entity.posY);
int iz = (int)MathHelper.floor_double(entity.posZ);
@ -64,14 +71,17 @@ public class EntityEffectHandler {
rad = RadiationConfig.hellRad;
if(rad > 0) {
ContaminationUtil.applyRadData(entity, rad / 20F);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad / 20F);
}
if(entity.worldObj.isRaining() && RadiationConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) {
ContaminationUtil.applyRadData(entity, RadiationConfig.cont * 0.0005F);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, RadiationConfig.cont * 0.0005F);
}
if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)
return;
Random rand = new Random(entity.getEntityId());
if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) {

View File

@ -7,6 +7,8 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.WeightedRandomObject;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import net.minecraft.block.Block;
import net.minecraft.client.resources.I18n;
@ -44,7 +46,8 @@ public abstract class WeaponAbility {
@Override
public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) {
ContaminationUtil.applyRadData(victim, rad);
if(victim instanceof EntityLivingBase)
ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, rad);
}
@Override

View File

@ -30,10 +30,14 @@ public class CyclotronRecipes {
/// LITHIUM START ///
int liA = 50;
makeRecipe(lithium, liAmat, "dustLithium", new ItemStack(ModItems.powder_beryllium), liA);
makeRecipe(lithium, liAmat, "dustBeryllium", new ItemStack(ModItems.powder_boron), liA);
makeRecipe(lithium, liAmat, "dustBoron", new ItemStack(ModItems.powder_coal), liA);
makeRecipe(lithium, liAmat, "dustNetherQuartz", new ItemStack(ModItems.powder_fire), liA);
makeRecipe(lithium, liAmat, "dustPhosphorus", new ItemStack(ModItems.sulfur), liA);
makeRecipe(lithium, liAmat, "dustIron", new ItemStack(ModItems.powder_cobalt), liA);
makeRecipe(lithium, liAmat, new ComparableStack(ModItems.powder_strontium), new ItemStack(ModItems.powder_zirconium), liA);
makeRecipe(lithium, liAmat, "dustGold", new ItemStack(ModItems.nugget_mercury), liA);
makeRecipe(lithium, liAmat, "dustPolonium", new ItemStack(ModItems.powder_astatine), liA);
makeRecipe(lithium, liAmat, "dustLanthanium", new ItemStack(ModItems.powder_cerium), liA);
@ -45,7 +49,8 @@ public class CyclotronRecipes {
/// BERYLLIUM START ///
int beA = 25;
makeRecipe(beryllium, beAmat, "dustLithium", new ItemStack(ModItems.powder_boron), beA);
makeRecipe(beryllium, beAmat, "dustNetherQuartz", new ItemStack(ModItems.sulfur), beA);
makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA);
makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA);
@ -57,7 +62,8 @@ public class CyclotronRecipes {
/// CARBON START ///
int caA = 10;
makeRecipe(carbon, caAmat, "dustBoron", new ItemStack(ModItems.powder_aluminium), caA);
makeRecipe(carbon, caAmat, "dustSulfur", new ItemStack(ModItems.powder_titanium), caA);
makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_cobalt), caA);
makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA);

View File

@ -204,6 +204,31 @@ public class ShredderRecipes {
ShredderRecipes.setRecipe(ModBlocks.chain, new ItemStack(ModItems.powder_steel_tiny, 1));
ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_red, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_marked, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_red, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_marked, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_red, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_marked, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green_rusted, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_red, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_marked, new ItemStack(ModItems.powder_steel, 1));
ShredderRecipes.setRecipe(ModBlocks.turret_light, new ItemStack(ModItems.powder_steel, 16));
ShredderRecipes.setRecipe(ModBlocks.turret_heavy, new ItemStack(ModItems.powder_steel, 16));
ShredderRecipes.setRecipe(ModBlocks.turret_flamer, new ItemStack(ModItems.powder_steel, 16));

View File

@ -40,7 +40,7 @@ public class GUIRBMKRod extends GuiContainer {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(rod.slots[0] != null) {
if(rod.slots[0] != null && rod.slots[0].getItem() instanceof ItemRBMKRod) {
drawTexturedModalRect(guiLeft + 34, guiTop + 21, 176, 0, 18, 67);
double depletion = 1D - ItemRBMKRod.getEnrichment(rod.slots[0]);

View File

@ -2356,7 +2356,7 @@ public class ModItems {
plate_paa = new ItemCustomLore().setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa");
board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper");
bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel");
pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel");
pipes_steel = new ItemCustomLore().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel");
drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium");
plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium");
plate_euphemium = new ItemCustomLore().setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium");
@ -2811,7 +2811,7 @@ public class ModItems {
cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6");
cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter");
cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium");
cell_tritium = new ItemHazard(0.5F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium");
cell_tritium = new ItemHazard(0.001F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium");
cell_sas3 = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3");
cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium");
@ -3169,50 +3169,50 @@ public class ModItems {
.setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu");
rbmk_fuel_thmeu = new ItemRBMKRod("Thorium with MEU Driver Fuel")
.setYield(100000000D)
.setStats(100)
.setStats(50)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu");
rbmk_fuel_lep = new ItemRBMKRod("Low Enriched Plutonium-239")
.setYield(100000000D)
.setStats(100)
.setStats(120)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.puf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep");
rbmk_fuel_mep = new ItemRBMKRod("Medium Enriched Plutonium-239")
.setYield(100000000D)
.setStats(100, 20)
.setStats(150, 20)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep");
rbmk_fuel_men = new ItemRBMKRod("Medium Enriched Neptunium-237")
.setYield(100000000D)
.setStats(100, 20)
.setStats(130)
.setMeltingPoint(2000)
.setNeutronTypes(NType.FAST, NType.FAST)
.addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men");
rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide")
.setYield(100000000D)
.setStats(100)
.setStats(130)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox");
rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326")
.setYield(100000000D)
.setStats(100)
.setStats(150)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les");
rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326")
.setYield(100000000D)
.setStats(100)
.setStats(200)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes");
rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326")
.setYield(100000000D)
.setStats(100)
.setStats(250)
.setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes");
@ -3238,7 +3238,7 @@ public class ModItems {
.setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be");
rbmk_fuel_balefire = new ItemRBMKRod("Draconic Flames")
.setYield(100000000D)
.setStats(60, 35)
.setStats(300, 35)
.setMeltingPoint(2000)
.addRadiation(800000F).toItem()
.setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire");

View File

@ -9,6 +9,8 @@ import com.hbm.interfaces.IItemHazard;
import com.hbm.items.ModItems;
import com.hbm.modules.ItemHazardModule;
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;
@ -115,7 +117,7 @@ public class ItemModInsert extends ItemArmorMod implements IItemHazard {
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
if(!entity.worldObj.isRemote && this == ModItems.insert_polonium) {
ContaminationUtil.applyRadDirect(entity, 5);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
}
}

View File

@ -0,0 +1,22 @@
package com.hbm.items.block;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
public class ItemBlockDecoPipe extends ItemBlock {
public ItemBlockDecoPipe(Block block) {
super(block);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
super.addInformation(stack, player, list, bool);
list.add("Purely decorative");
}
}

View File

@ -7,6 +7,8 @@ import com.hbm.explosion.ExplosionLarge;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -82,20 +84,20 @@ public class ItemEnergy extends Item {
player.heal(4F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 30 * 20, 1));
ContaminationUtil.applyRadDirect(player, 5.0F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
}
if(this == ModItems.bottle_cherry) {
player.heal(6F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0));
player.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 2));
ContaminationUtil.applyRadDirect(player, 5.0F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
}
if(this == ModItems.bottle_quantum) {
player.heal(10F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1));
player.addPotionEffect(new PotionEffect(Potion.resistance.id, 30 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 1));
ContaminationUtil.applyRadDirect(player, 15.0F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F);
}
if(this == ModItems.bottle2_korl) {
player.heal(6);
@ -127,7 +129,7 @@ public class ItemEnergy extends Item {
player.addPotionEffect(new PotionEffect(Potion.resistance.id, 120 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1));
ContaminationUtil.applyRadDirect(player, 5.0F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
}
if(this == ModItems.bottle_rad) {
player.heal(10F);
@ -136,7 +138,7 @@ public class ItemEnergy extends Item {
player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 120 * 20, 0));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1));
ContaminationUtil.applyRadDirect(player, 15.0F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F);
}
if(this == ModItems.bottle2_sunset) {
player.heal(6);

View File

@ -5,6 +5,8 @@ import java.util.Random;
import com.hbm.blocks.bomb.BlockCrashedBomb;
import com.hbm.items.ModItems;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -43,7 +45,7 @@ public class ItemCell extends Item {
}
player.inventoryContainer.detectAndSendChanges();
ContaminationUtil.applyRadDirect(player, 50F);
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.CREATIVE, 50.0F);
return true;
}

View File

@ -403,6 +403,11 @@ public class ItemCustomLore extends Item {
if(this == ModItems.billet_mox_fuel) {
list.add(EnumChatFormatting.ITALIC + "Pocket-Moxie!");
}
if(this == ModItems.ingot_lanthanium)
{
list.add("Or 'Lanthanum' for stupid people.");
}
}
@Override

View File

@ -5,12 +5,14 @@ import java.util.List;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.items.ModItems;
import com.hbm.items.armor.ArmorFSB;
import com.hbm.saveddata.RadiationSavedData;
import com.hbm.util.ContaminationUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@ -25,21 +27,18 @@ public class ItemGeigerCounter extends Item {
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) {
if(!(entity instanceof EntityLivingBase) || world.isRemote)
return;
if(entity instanceof EntityPlayer) {
if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound)
return;
}
setInt(stack, getInt(stack, "timer") + 1, "timer");
if(getInt(stack, "timer") == 10) {
setInt(stack, 0, "timer");
setInt(stack, check(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ), "ticker");
}
float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity);
int x = getInt(stack, "ticker");
if(getInt(stack, "timer") % 5 == 0) {
if(world.getTotalWorldTime() % 5 == 0) {
if(x > 0) {
List<Integer> list = new ArrayList<Integer>();
@ -70,16 +69,16 @@ public class ItemGeigerCounter extends Item {
}
}
static void setInt(ItemStack stack, int i, String name) {
static void setFloat(ItemStack stack, float i, String name) {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger(name, i);
stack.stackTagCompound.setFloat(name, i);
}
public static int getInt(ItemStack stack, String name) {
public static float getFloat(ItemStack stack, String name) {
if(stack.hasTagCompound())
return stack.stackTagCompound.getInteger(name);
return stack.stackTagCompound.getFloat(name);
return 0;
}
@ -93,20 +92,6 @@ public class ItemGeigerCounter extends Item {
return rads;
}
//what?!
/*@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2)
{
if(world.getBlock(x, y, z) == ModBlocks.block_red_copper) {
world.func_147480_a(x, y, z, false);
player.inventory.consumeInventoryItem(ModItems.geiger_counter);
player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner));
return true;
}
return false;
}*/
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {

View File

@ -152,7 +152,8 @@ public class Library {
world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table) {
world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table ||
world.getBlock(x, y, z) == ModBlocks.rbmk_loader) {
return true;
}

View File

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

View File

@ -44,7 +44,6 @@ import com.hbm.entity.missile.*;
import com.hbm.entity.mob.*;
import com.hbm.entity.mob.botprime.EntityBOTPrimeBody;
import com.hbm.entity.mob.botprime.EntityBOTPrimeHead;
import com.hbm.entity.mob.sodtekhnologiyah.EntityBallsOTronSegment;
import com.hbm.entity.particle.*;
import com.hbm.entity.projectile.*;
import com.hbm.handler.HbmKeybinds.EnumKeybind;
@ -497,7 +496,6 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab());
RenderingRegistry.registerEntityRenderingHandler(EntityTaintCrab.class, new RenderTaintCrab());
RenderingRegistry.registerEntityRenderingHandler(EntityMaskMan.class, new RenderMaskMan());
RenderingRegistry.registerEntityRenderingHandler(EntityBallsOTronSegment.class, new RenderBalls());
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeHead.class, new RenderWormHead());
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeBody.class, new RenderWormBody());
RenderingRegistry.registerEntityRenderingHandler(EntityDuck.class, new RenderDuck(new ModelChicken(), 0.3F));

View File

@ -622,8 +622,8 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ModItems.coke, 'S', Items.stick });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', "plateSteel", 'C', ModBlocks.steel_scaffold }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete_smooth }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.struct_scaffold, 1), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.fluid_duct, 'C', ModBlocks.red_cable });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', "plateAluminum", 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }));
@ -736,6 +736,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank });
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank });
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "PPP", "PCP", "PPP", 'C', ModItems.circuit_targeting_tier3, 'P', Items.potato });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', "plateSteel", 'C', "ingotCopper", 'B', ModItems.tank_steel }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_sturdy, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "plankWood" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_iron, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotIron" }));
@ -748,6 +749,37 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_steel, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotSteel" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_tungsten, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotTungsten" }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel });
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim });
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed });
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_quad });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "plateSteel" }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_quad, 4), new Object[] { "PP", "PP", 'P', ModBlocks.deco_pipe });
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', Blocks.iron_bars });
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', Blocks.iron_bars });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dustIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeRed" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeRed" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeRed" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeRed" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dyeGreen" }));
if(GeneralConfig.enableBabyMode) {
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, ModItems.niter });

View File

@ -1007,6 +1007,7 @@ public class ResourceManager {
public static final IModelCustom pipe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe.obj"));
public static final IModelCustom pipe_rim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj"));
public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj"));
public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj"));
public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj"));
public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj"));

View File

@ -6,6 +6,8 @@ import com.hbm.inventory.BreederRecipes;
import com.hbm.util.ArmorUtil;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
@ -65,7 +67,7 @@ public class ItemHazardModule {
public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean currentItem) {
if(this.radiation > 0)
ContaminationUtil.applyRadData(entity, this.radiation * mod / 20F);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, this.radiation * mod / 20F);
if(this.digamma > 0)
ContaminationUtil.applyDigammaData(entity, this.digamma * mod / 20F);

View File

@ -12,6 +12,8 @@ import com.hbm.explosion.ExplosionLarge;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.lib.ModDamageSource;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
@ -113,8 +115,7 @@ public class HbmPotion extends Potion {
}
}
if(this == radiation) {
ContaminationUtil.applyRadData(entity, (float)(level + 1F) * 0.05F);
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F);
}
if(this == radaway) {

View File

@ -47,6 +47,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, 0, false);
}
if(pipe.rType == 3) {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, 0, false);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, 0, false);
}
tessellator.draw();
GL11.glPopMatrix();
@ -96,6 +103,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, rot, pitch, true);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, rot, pitch, true);
}
if(pipe.rType == 3) {
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, rot, pitch, true);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, rot, pitch, true);
}
tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F);

View File

@ -14,6 +14,7 @@ public class SatelliteResonator extends Satellite {
public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) {
if(!(player instanceof EntityPlayerMP))
return;
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
player.mountEntity(null);

View File

@ -327,6 +327,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
power -= 250;
if(power > 0)
power = 0;
if(this.dualCookTime == processingSpeed)
{
this.dualCookTime = 0;

View File

@ -129,7 +129,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
}
}
private void coolPassively() {
protected void coolPassively() {
this.heat -= this.passiveCooling();
@ -137,33 +137,47 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
heat = 20D;
}
protected static boolean diag = false;
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
if(!diag) {
super.readFromNBT(nbt);
}
this.heat = nbt.getDouble("heat");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
if(!diag) {
super.writeToNBT(nbt);
}
nbt.setDouble("heat", this.heat);
}
public void networkPack(NBTTagCompound nbt, int range) {
diag = true;
if(!worldObj.isRemote)
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
diag = false;
}
public void networkUnpack(NBTTagCompound nbt) {
diag = true;
this.readFromNBT(nbt);
diag = false;
}
public void getDiagData(NBTTagCompound nbt) {
diag = true;
this.writeToNBT(nbt);
diag = false;
}
@SideOnly(Side.CLIENT)

View File

@ -93,6 +93,25 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
public void fillFluidInit(FluidType type) {
fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type);
if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) {
fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type);
fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type);
}
if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) {
fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type);
fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type);
fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type);
}
}
@Override

View File

@ -143,13 +143,16 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
for(int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length) {
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
if(!diag) {
NBTTagList list = nbt.getTagList("items", 10);
for(int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length) {
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
}
}
}
}
@ -157,16 +160,19 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
NBTTagList list = new NBTTagList();
for(int i = 0; i < slots.length; i++) {
if(slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte) i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
if(!diag) {
NBTTagList list = new NBTTagList();
for(int i = 0; i < slots.length; i++) {
if(slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte) i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
nbt.setTag("items", list);
}
nbt.setTag("items", list);
}
}

View File

@ -43,7 +43,7 @@ public class ContaminationUtil {
}
/// RADIATION ///
public static void applyRadData(Entity e, float f) {
private static void applyRadData(Entity e, float f) {
if(!(e instanceof EntityLivingBase))
return;
@ -51,31 +51,31 @@ public class ContaminationUtil {
if(isRadImmune(e))
return;
EntityLivingBase entity = (EntityLivingBase)e;
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
return;
if(e instanceof EntityPlayer && e.ticksExisted < 200)
return;
EntityLivingBase entity = (EntityLivingBase)e;
f *= calculateRadiationMod(entity);
HbmLivingProps.incrementRadiation(entity, f);
}
public static void applyRadDirect(Entity e, float f) {
private static void applyRadDirect(Entity e, float f) {
if(!(e instanceof EntityLivingBase))
return;
EntityLivingBase entity = (EntityLivingBase)e;
if(isRadImmune(e))
return;
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
return;
EntityLivingBase entity = (EntityLivingBase)e;
HbmLivingProps.incrementRadiation(entity, f);
}
@ -179,27 +179,16 @@ public class ContaminationUtil {
RadiationSavedData data = RadiationSavedData.getData(player.worldObj);
Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);
double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D;
double env = ((int)(HbmLivingProps.getRadBuf(player) * 10D)) / 10D;
double res = 100.0D - ((int)(ContaminationUtil.calculateRadiationMod(player) * 10000)) / 100D;
double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100)) / 100D;
String chunkPrefix = "";
double res = ((int)(10000D - ContaminationUtil.calculateRadiationMod(player) * 10000D)) / 100D;
double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100D)) / 100D;
String chunkPrefix = getPreffixFromRad(rads);
String envPrefix = getPreffixFromRad(env);
String radPrefix = "";
String resPrefix = "" + EnumChatFormatting.WHITE;
if(rads == 0)
chunkPrefix += EnumChatFormatting.GREEN;
else if(rads < 1)
chunkPrefix += EnumChatFormatting.YELLOW;
else if(rads < 10)
chunkPrefix += EnumChatFormatting.GOLD;
else if(rads < 100)
chunkPrefix += EnumChatFormatting.RED;
else if(rads < 1000)
chunkPrefix += EnumChatFormatting.DARK_RED;
else
chunkPrefix += EnumChatFormatting.DARK_GRAY;
if(eRad < 200)
radPrefix += EnumChatFormatting.GREEN;
else if(eRad < 400)
@ -220,10 +209,31 @@ public class ContaminationUtil {
//a *functioning* painful mess, nonetheless
player.addChatMessage(new ChatComponentText("===== ☢ ").appendSibling(new ChatComponentTranslation("geiger.title")).appendSibling(new ChatComponentText(" ☢ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD)));
player.addChatMessage(new ChatComponentTranslation("geiger.chunkRad").appendSibling(new ChatComponentText(" " + chunkPrefix + rads + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
player.addChatMessage(new ChatComponentTranslation("geiger.envRad").appendSibling(new ChatComponentText(" " + envPrefix + env + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
player.addChatMessage(new ChatComponentTranslation("geiger.playerRad").appendSibling(new ChatComponentText(" " + radPrefix + eRad + " RAD")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
player.addChatMessage(new ChatComponentTranslation("geiger.playerRes").appendSibling(new ChatComponentText(" " + resPrefix + res + "% (" + resKoeff + ")")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
}
public static String getPreffixFromRad(double rads) {
String chunkPrefix = "";
if(rads == 0)
chunkPrefix += EnumChatFormatting.GREEN;
else if(rads < 1)
chunkPrefix += EnumChatFormatting.YELLOW;
else if(rads < 10)
chunkPrefix += EnumChatFormatting.GOLD;
else if(rads < 100)
chunkPrefix += EnumChatFormatting.RED;
else if(rads < 1000)
chunkPrefix += EnumChatFormatting.DARK_RED;
else
chunkPrefix += EnumChatFormatting.DARK_GRAY;
return chunkPrefix;
}
public static void printDiagnosticData(EntityPlayer player) {
double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D;
@ -251,13 +261,22 @@ public class ContaminationUtil {
HAZMAT2, //preventable by heavy hazmat
DIGAMMA, //preventable by fau armor or stability
DIGAMMA2, //preventable by robes
CREATIVE, //preventable by creative mode
CREATIVE, //preventable by creative mode, for rad calculation armor piece bonuses still apply
RAD_BYPASS, //same as creaative but fill not apply radiation resistance calculation
NONE //not preventable
}
/*
* This system is nice but the cont types are a bit confusing. Cont types should have much better names and multiple cont types should be applicable.
*/
@SuppressWarnings("incomplete-switch") //just shut up
public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) {
if(hazard == HazardType.RADIATION) {
float radEnv = HbmLivingProps.getRadEnv(entity);
HbmLivingProps.setRadEnv(entity, radEnv + amount);
}
if(entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer)entity;
@ -285,7 +304,7 @@ public class ContaminationUtil {
switch(hazard) {
case MONOXIDE: entity.attackEntityFrom(ModDamageSource.monoxide, amount); break;
case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * calculateRadiationMod(entity)); break;
case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * (cont == ContaminationType.RAD_BYPASS ? 1 : calculateRadiationMod(entity))); break;
case ASBESTOS: HbmLivingProps.incrementAsbestos(entity, (int)amount); break;
case DIGAMMA: HbmLivingProps.incrementDigamma(entity, amount); break;
}

View File

@ -19,54 +19,69 @@ import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
public class Bunker extends WorldGenerator
{
public class Bunker extends WorldGenerator {
Block Block1 = ModBlocks.reinforced_brick;
Block Block3 = ModBlocks.reinforced_light;
Block Block4 = ModBlocks.deco_steel;
Block Block5 = ModBlocks.deco_tungsten;
protected Block[] GetValidSpawnBlocks()
{
return new Block[]
{
Blocks.grass,
Blocks.dirt,
Blocks.stone,
Blocks.sand,
Blocks.sandstone,
};
protected Block[] GetValidSpawnBlocks() {
return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, };
}
@Override
public boolean generate(World world, Random rand, int x, int y, int z)
{
public boolean generate(World world, Random rand, int x, int y, int z) {
int i = rand.nextInt(1);
if(i == 0)
{
generate_r0(world, rand, x, y, z);
if(i == 0) {
generate_r0(world, rand, x, y, z);
}
return true;
return true;
}
public boolean generate_r0(World world, Random rand, int x, int y, int z)
{
public boolean LocationIsValidSpawn(World world, int x, int y, int z) {
Block checkBlock = world.getBlock(x, y - 1, z);
Block blockAbove = world.getBlock(x, y, z);
Block blockBelow = world.getBlock(x, y - 2, z);
for(Block i : GetValidSpawnBlocks()) {
if(blockAbove != Blocks.air) {
return false;
}
if(checkBlock == i) {
return true;
} else if(checkBlock == Blocks.snow_layer && blockBelow == i) {
return true;
} else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) {
return true;
}
}
return false;
}
public boolean generate_r0(World world, Random rand, int x, int y, int z) {
y += 1;
for(int i = 0; i < 11; i++)
if(!LocationIsValidSpawn(world, x + 9, y, z + 9)) {
return false;
}
if(!LocationIsValidSpawn(world, x, y, z))
{
for(int j = 0; j < 9; j++)
{
for(int k = 0; k < 15; k++)
{
return false;
}
for(int i = 0; i < 11; i++) {
for(int j = 0; j < 9; j++) {
for(int k = 0; k < 15; k++) {
world.setBlock(x + i, y + j - 25, z + k, Blocks.air, 0, 3);
}
}
}
world.setBlock(x + 0, y + -25, z + 0, Block1, 0, 3);
world.setBlock(x + 1, y + -25, z + 0, Block1, 0, 3);
world.setBlock(x + 2, y + -25, z + 0, Block1, 0, 3);
@ -263,47 +278,42 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3);
world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest)world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2)+ 6);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest) world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2) + 6);
}
world.setBlock(x + 2, y + -23, z + 1, ModBlocks.geiger, 2, 3);
world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 4, y + -24, z + 1, Block1, 0, 3);
world.setBlock(x + 11, y + -24, z + 1, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 2), 8);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 2), 8);
}
world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3);
world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3);
world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3);
if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 2), 8);
if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 2), 8);
}
world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 11, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3);
if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 3), 8);
if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 3), 8);
}
world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3);
world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3);
world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3);
if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 3), 8);
if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 3), 8);
}
world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 7, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 8, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 9, y + -24, z + 3, Blocks.iron_door, 5, 3);
ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door);
world.setBlock(x + 10, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 11, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 4, Block1, 0, 3);
@ -316,7 +326,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 0, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 1, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 2, y + -24, z + 5, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door);
world.setBlock(x + 3, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 4, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 7, y + -24, z + 5, Block1, 0, 3);
@ -341,7 +351,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 0, y + -24, z + 9, Block1, 0, 3);
world.setBlock(x + 3, y + -24, z + 9, Block1, 0, 3);
world.setBlock(x + 7, y + -24, z + 9, Blocks.iron_door, 1, 3);
ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door);
world.setBlock(x + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 10, Block1, 0, 3);
@ -403,7 +413,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 4, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 7, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 8, y + -23, z + 3, Block1, 0, 3);
//world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3);
// world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3);
world.setBlock(x + 10, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 11, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 4, Block1, 0, 3);
@ -414,7 +424,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 11, y + -23, z + 4, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 5, Block1, 0, 3);
world.setBlock(x + 1, y + -23, z + 5, Block1, 0, 3);
//world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3);
// world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3);
world.setBlock(x + 3, y + -23, z + 5, Block1, 0, 3);
world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3);
world.setBlock(x + 7, y + -23, z + 5, Block1, 0, 3);
@ -435,7 +445,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 0, y + -23, z + 9, Block1, 0, 3);
world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 0, 3);
world.setBlock(x + 3, y + -23, z + 9, Block3, 0, 3);
//world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3);
// world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3);
world.setBlock(x + 11, y + -23, z + 9, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 10, Block1, 0, 3);
world.setBlock(x + 3, y + -23, z + 10, Block1, 0, 3);
@ -459,8 +469,8 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 11, y + -23, z + 13, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 14, Block1, 0, 3);
world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3);
//prevent geiger displacement
//world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3);
// prevent geiger displacement
// world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3);
world.setBlock(x + 3, y + -23, z + 14, Block1, 0, 3);
world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3);
world.setBlock(x + 5, y + -23, z + 14, Block1, 0, 3);
@ -782,11 +792,10 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 3, y + -20, z + 1, Block1, 0, 3);
world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3);
if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest)
{
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest)world.getTileEntity(x + 4, y + -20, z + 1), 12);
if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) {
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest) world.getTileEntity(x + 4, y + -20, z + 1), 12);
}
world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3);
world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3);
world.setBlock(x + 9, y + -20, z + 1, Block4, 0, 3);
world.setBlock(x + 10, y + -20, z + 1, Block4, 0, 3);
world.setBlock(x + 11, y + -20, z + 1, Block1, 0, 3);
@ -806,7 +815,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 3, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 4, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 5, y + -20, z + 4, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door);
world.setBlock(x + 6, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 7, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 8, y + -20, z + 4, Block1, 0, 3);
@ -818,25 +827,25 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 11, y + -20, z + 5, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 6, Block1, 0, 3);
world.setBlock(x + 3, y + -20, z + 6, Blocks.iron_door, 0, 3);
ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door);
world.setBlock(x + 11, y + -20, z + 6, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 7, Block1, 0, 3);
world.setBlock(x + 3, y + -20, z + 7, Block1, 0, 3);
world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 3);
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door);
world.setBlock(x + 10, y + -20, z + 7, Blocks.iron_door, 1, 3);
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door);
world.setBlock(x + 11, y + -20, z + 7, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 8, Block1, 0, 3);
world.setBlock(x + 3, y + -20, z + 8, Block1, 0, 3);
world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door);
world.setBlock(x + 6, y + -20, z + 8, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door);
world.setBlock(x + 8, y + -20, z + 8, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door);
world.setBlock(x + 10, y + -20, z + 8, Blocks.iron_door, 3, 3);
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door);
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door);
world.setBlock(x + 11, y + -20, z + 8, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 9, Block1, 0, 3);
world.setBlock(x + 3, y + -20, z + 9, Block1, 0, 3);
@ -906,7 +915,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 0, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 3, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 4, y + -19, z + 4, Block1, 0, 3);
//world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3);
// world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3);
world.setBlock(x + 6, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 7, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 8, y + -19, z + 4, Block1, 0, 3);
@ -917,19 +926,19 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 3, y + -19, z + 5, Block1, 0, 3);
world.setBlock(x + 11, y + -19, z + 5, Block1, 0, 3);
world.setBlock(x + 0, y + -19, z + 6, Block1, 0, 3);
//world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3);
// world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3);
world.setBlock(x + 11, y + -19, z + 6, Block1, 0, 3);
world.setBlock(x + 0, y + -19, z + 7, Block1, 0, 3);
world.setBlock(x + 3, y + -19, z + 7, Block3, 0, 3);
//world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3);
//world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3);
// world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3);
// world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3);
world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 3);
world.setBlock(x + 0, y + -19, z + 8, Block1, 0, 3);
world.setBlock(x + 3, y + -19, z + 8, Block1, 0, 3);
//world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3);
//world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3);
//world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3);
//world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3);
// world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3);
// world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3);
// world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3);
// world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3);
world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 3);
world.setBlock(x + 0, y + -19, z + 9, Block1, 0, 3);
world.setBlock(x + 3, y + -19, z + 9, Block1, 0, 3);
@ -1497,8 +1506,8 @@ public class Bunker extends WorldGenerator
return true;
}
public boolean generate_r02_last(World world, Random rand, int x, int y, int z)
{
public boolean generate_r02_last(World world, Random rand, int x, int y, int z) {
world.setBlock(x + 10, y + -24, z + 12, Blocks.ladder, 4, 3);
world.setBlock(x + 10, y + -24, z + 13, Blocks.ladder, 4, 3);
@ -1567,7 +1576,7 @@ public class Bunker extends WorldGenerator
world.setBlock(x + 8, y + -19, z + 10, Blocks.bed, 8, 3);
world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3);
if(GeneralConfig.enableDebugMode)
System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y +" " + z + "\n");
System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y + " " + z + "\n");
return true;
}

View File

@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidische Säure
fluid.toxic_fluid=Stereotypischer grüner Schleim
geiger.chunkRad=Chunk-Strahlung:
geiger.envRad=Gesamte Umgebungsstrahlung:
geiger.playerRad=Spieler-Kontaminierung:
geiger.playerRes=Strahlungsresistenz:
geiger.title=GEIGERZÄHLER
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaikpanele
item.pill_iodine.name=Iodpille
item.pin.name=Haarklammer
item.pipes_steel.name=Stahlrohre
item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet.
item.piston_selenium.name=Sternmotorenkolben
item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock
tile.block_cobalt.name=Kobaltblock
tile.block_combine_steel.name=CMB-Stahlblock
tile.block_copper.name=Kupferblock
tile.block_corium.name=Corium
tile.block_daffergon.name=Daffergonblock
tile.block_desh.name=Verstärketer Deshblock
tile.block_dineutronium.name=Dineutroniumblock
@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestdach
tile.deco_beryllium.name=Beryllium-Dekoblock
tile.deco_lead.name=Blei-Dekoblock
tile.deco_red_copper.name=Roter Kupfer-Dekoblock
tile.deco_pipe.name=Stahlrohr
tile.deco_pipe_rusted.name=Rostiges Stahlrohr
tile.deco_pipe_green.name=Grünes Stahlrohr
tile.deco_pipe_green_rusted.name=Rostiges grünes Stahlrohr
tile.deco_pipe_red.name=Rotes Stahlrohr
tile.deco_pipe_marked.name=Gasrohr
tile.deco_pipe_framed.name=Stahlrohr mit Rahmen
tile.deco_pipe_framed_rusted.name=Rostiges Stahlrohr mit Rahmen
tile.deco_pipe_framed_green.name=Grünes Stahlrohr mit Rahmen
tile.deco_pipe_framed_green_rusted.name=Rostiges grünes Stahlrohr mit Rahmen
tile.deco_pipe_framed_red.name=Rotes Stahlrohr mit Rahmen
tile.deco_pipe_framed_marked.name=Gasrohr mit Rahmen
tile.deco_pipe_quad.name=Stahlrohre
tile.deco_pipe_quad_rusted.name=Rostige Stahlrohre
tile.deco_pipe_quad_green.name=Grüne Stahlrohre
tile.deco_pipe_quad_green_rusted.name=Rostige grüne Stahlrohre
tile.deco_pipe_quad_red.name=Rote Stahlrohre
tile.deco_pipe_quad_marked.name=Gasrohre
tile.deco_pipe_rim.name=Stahlrohr mit Rand
tile.deco_pipe_rim_rusted.name=Rostiges Stahlrohr mit Rand
tile.deco_pipe_rim_green.name=Grünes Stahlrohr mit Rand
tile.deco_pipe_rim_green_rusted.name=Rostiges grünes Stahlrohr mit Rand
tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand
tile.deco_pipe_rim_marked.name=Gasrohr mit Rand
tile.deco_steel.name=Stahl-Dekoblock
tile.deco_titanium.name=Titan-Dekoblock
tile.deco_tungsten.name=Wolfram-Dekoblock
@ -2844,6 +2871,7 @@ tile.pole_satellite_receiver.name=Satellitenschüssel
tile.pole_top.name=Antennenspitze
tile.pribris.name=RBMK-Schutt
tile.pribris_burning.name=Flammender RBMK-Schutt
tile.pribris_radiating.name=Glühender RBMK-Schutt
tile.radiobox.name=Rosenberg Ungeziefervernichter
tile.radiorec.name=Kaputtes UKW Radio
tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen
@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Dampfkanal
tile.rbmk_console.name=RBMK Konsole
tile.rbmk_control.name=RBMK Steuerstäbe
tile.rbmk_control_auto.name=RBMK Automatische Steuerstäbe
tile.rbmk_loader.name=RBMK-Dampfadapter
tile.rbmk_moderator.name=RBMK Graphitmoderator
tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator
tile.rbmk_rod.name=RBMK Brennstäbe

View File

@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidic Acid
fluid.toxic_fluid=Stereotypical Green Ooze
geiger.chunkRad=Current chunk radiation:
geiger.envRad=Total environmental radiation:
geiger.playerRad=Player contamination:
geiger.playerRes=Player resistance:
geiger.title=GEIGER COUNTER
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaic Panel
item.pill_iodine.name=Iodine Pill
item.pin.name=Bobby Pin
item.pipes_steel.name=Steel Pipes
item.pipes_steel.desc=Uncrafting was omitted due to tax evasion.
item.piston_selenium.name=Radial Engine Piston
item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Advanced Alloy Plate
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps
tile.block_cobalt.name=Block of Cobalt
tile.block_combine_steel.name=Block of CMB Steel
tile.block_copper.name=Block of Copper
tile.block_corium.name=Corium
tile.block_daffergon.name=Block of Daffergon
tile.block_desh.name=Reinforced Block of Desh
tile.block_dineutronium.name=Block of Dineutronium
@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestos Roof
tile.deco_beryllium.name=Beryllium Deco Block
tile.deco_lead.name=Lead Deco Block
tile.deco_red_copper.name=Red Copper Deco Block
tile.deco_pipe.name=Steel Pipe
tile.deco_pipe_rusted.name=Rusty Steel Pipe
tile.deco_pipe_green.name=Green Steel Pipe
tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe
tile.deco_pipe_red.name=Red Steel Pipe
tile.deco_pipe_marked.name=Gas Pipe
tile.deco_pipe_framed.name=Steel Pipe (Framed)
tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed)
tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed)
tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed)
tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed)
tile.deco_pipe_framed_marked.name=Gas Pipe (Framed)
tile.deco_pipe_quad.name=Steel Pipes
tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes
tile.deco_pipe_quad_green.name=Green Steel Pipes
tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes
tile.deco_pipe_quad_red.name=Red Steel Pipes
tile.deco_pipe_quad_marked.name=Gas Pipes
tile.deco_pipe_rim.name=Steel Pipe (Rimmed)
tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed)
tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed)
tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed)
tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed)
tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed)
tile.deco_steel.name=Steel Deco Block
tile.deco_titanium.name=Titanium Deco Block
tile.deco_tungsten.name=Tungsten Deco Block
@ -2844,6 +2871,7 @@ tile.pole_satellite_receiver.name=Satellite Dish
tile.pole_top.name=Antenna Top
tile.pribris.name=RBMK Debris
tile.pribris_burning.name=Flaming RBMK Debris
tile.pribris_radiating.name=Smoldering RBMK Debris
tile.radiobox.name=Rosenberg Pest Control Box
tile.radiorec.name=Broken FM Radio
tile.rail_booster.name=High Speed Booster Rail
@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Steam Channel
tile.rbmk_console.name=RBMK Console
tile.rbmk_control.name=RBMK Control Rods
tile.rbmk_control_auto.name=RBMK Automatic Control Rods
tile.rbmk_loader.name=RBMK Steam Connector
tile.rbmk_moderator.name=RBMK Graphite Moderator
tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector
tile.rbmk_rod.name=RBMK Fuel Rod

View File

@ -0,0 +1,268 @@
# Blender v2.79 (sub 0) OBJ File: 'pipe_frame.blend'
# www.blender.org
o Frame
v 0.375000 -0.500000 0.500000
v 0.375000 0.500000 0.500000
v 0.375000 -0.500000 0.375000
v 0.375000 0.500000 0.375000
v 0.500000 -0.500000 0.500000
v 0.500000 0.500000 0.500000
v 0.500000 -0.500000 0.375000
v 0.500000 0.500000 0.375000
v -0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v -0.500000 -0.500000 0.375000
v -0.500000 0.500000 0.375000
v -0.375000 -0.500000 0.500000
v -0.375000 0.500000 0.500000
v -0.375000 -0.500000 0.375000
v -0.375000 0.500000 0.375000
v 0.375000 -0.500000 -0.375000
v 0.375000 0.500000 -0.375000
v 0.375000 -0.500000 -0.500000
v 0.375000 0.500000 -0.500000
v 0.500000 -0.500000 -0.375000
v 0.500000 0.500000 -0.375000
v 0.500000 -0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.375000
v -0.500000 0.500000 -0.375000
v -0.500000 -0.500000 -0.500000
v -0.500000 0.500000 -0.500000
v -0.375000 -0.500000 -0.375000
v -0.375000 0.500000 -0.375000
v -0.375000 -0.500000 -0.500000
v -0.375000 0.500000 -0.500000
vt 1.000000 1.000000
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 0.125000 1.000000
vt 0.000000 0.000000
vt 0.125000 0.000000
vt 0.125027 0.999965
vt 0.000035 0.000035
vt 0.125027 0.000035
vt 1.000000 1.000000
vt 0.875000 0.000000
vt 1.000000 -0.000000
vt 0.125000 1.000000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.125000
vt 0.000000 0.000000
vt 0.125000 0.000000
vt 1.000000 1.000000
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 0.125027 0.999965
vt 0.000035 0.000035
vt 0.125027 0.000035
vt 0.125000 1.000000
vt -0.000000 -0.000000
vt 0.125000 0.000000
vt 0.125000 0.125000
vt 0.125000 -0.000000
vt 0.125000 1.000000
vt 0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 1.000000
vt 0.000000 0.000000
vt 0.125000 0.000000
vt 0.125000 1.000000
vt 0.000000 0.000000
vt 0.125000 0.000000
vt 1.000000 1.000000
vt 0.875000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt 0.875000 -0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.875000 0.875000
vt 1.000000 0.875000
vt 1.000000 0.125000
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 0.125000 1.000000
vt 0.000000 0.000000
vt 0.125000 0.000000
vt 1.000000 1.000000
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.875000 -0.000000
vt 1.000000 -0.000000
vt 0.125000 1.000000
vt -0.000000 -0.000000
vt 0.125000 0.000000
vt 1.000000 0.125000
vt 0.875000 -0.000000
vt 0.875000 0.875000
vt 1.000000 0.875000
vt 0.875000 1.000000
vt 0.000000 1.000000
vt 0.000035 0.999965
vt 0.875000 1.000000
vt -0.000000 1.000000
vt 0.000000 0.125000
vt 0.875000 1.000000
vt 0.875000 1.000000
vt 0.000035 0.999965
vt 0.000000 1.000000
vt -0.000000 0.125000
vt 0.000000 1.000000
vt 0.000000 1.000000
vt 0.875000 1.000000
vt 0.875000 1.000000
vt 0.875000 1.000000
vt 0.875000 0.125000
vt 0.000000 1.000000
vt 0.875000 1.000000
vt 0.875000 1.000000
vt -0.000000 1.000000
vt 0.875000 0.125000
vt 0.875000 1.000000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
f 2/1/1 3/2/1 1/3/1
f 4/4/2 7/5/2 3/6/2
f 8/7/3 5/8/3 7/9/3
f 6/10/4 1/11/4 5/12/4
f 7/13/5 1/14/5 3/15/5
f 4/16/6 6/17/6 8/18/6
f 10/19/1 11/20/1 9/21/1
f 12/22/2 15/23/2 11/24/2
f 16/25/3 13/26/3 15/27/3
f 14/28/4 9/29/4 13/30/4
f 15/31/5 9/29/5 11/32/5
f 12/33/6 14/34/6 16/35/6
f 18/36/1 19/37/1 17/38/1
f 20/39/2 23/40/2 19/41/2
f 24/42/3 21/43/3 23/44/3
f 22/45/4 17/46/4 21/47/4
f 23/48/5 17/49/5 19/50/5
f 20/51/6 22/52/6 24/53/6
f 26/54/1 27/55/1 25/56/1
f 28/57/2 31/58/2 27/59/2
f 32/60/3 29/61/3 31/62/3
f 30/63/4 25/64/4 29/65/4
f 31/66/5 25/67/5 27/59/5
f 28/57/6 30/68/6 32/69/6
f 2/1/1 4/70/1 3/2/1
f 4/4/2 8/71/2 7/5/2
f 8/7/3 6/72/3 5/8/3
f 6/10/4 2/73/4 1/11/4
f 7/13/5 5/74/5 1/14/5
f 4/16/6 2/75/6 6/17/6
f 10/19/1 12/76/1 11/20/1
f 12/22/2 16/77/2 15/23/2
f 16/25/3 14/78/3 13/26/3
f 14/28/4 10/79/4 9/29/4
f 15/31/5 13/80/5 9/29/5
f 12/33/6 10/79/6 14/34/6
f 18/36/1 20/81/1 19/37/1
f 20/39/2 24/82/2 23/40/2
f 24/42/3 22/83/3 21/43/3
f 22/45/4 18/84/4 17/46/4
f 23/48/5 21/85/5 17/49/5
f 20/51/6 18/86/6 22/52/6
f 26/54/1 28/87/1 27/55/1
f 28/57/2 32/88/2 31/58/2
f 32/60/3 30/89/3 29/61/3
f 30/63/4 26/90/4 25/64/4
f 31/66/5 29/91/5 25/67/5
f 28/57/6 26/92/6 30/68/6
o Mesh
v 0.437500 -0.500000 0.375000
v 0.437500 0.500000 0.375000
v 0.437500 -0.500000 -0.375000
v 0.437500 0.500000 -0.375000
v -0.437500 -0.500000 0.375000
v -0.437500 0.500000 0.375000
v -0.437500 -0.500000 -0.375000
v -0.437500 0.500000 -0.375000
v 0.375000 -0.500000 -0.437500
v 0.375000 0.500000 -0.437500
v -0.375000 -0.500000 -0.437500
v -0.375000 0.500000 -0.437500
v 0.375000 -0.500000 0.437500
v 0.375000 0.500000 0.437500
v -0.375000 -0.500000 0.437500
v -0.375000 0.500000 0.437500
v 0.437500 -0.500000 0.375000
v 0.437500 0.500000 0.375000
v 0.437500 -0.500000 -0.375000
v 0.437500 0.500000 -0.375000
v -0.437500 -0.500000 0.375000
v -0.437500 0.500000 0.375000
v -0.437500 -0.500000 -0.375000
v -0.437500 0.500000 -0.375000
v 0.375000 -0.500000 -0.437500
v 0.375000 0.500000 -0.437500
v -0.375000 -0.500000 -0.437500
v -0.375000 0.500000 -0.437500
v 0.375000 -0.500000 0.437500
v 0.375000 0.500000 0.437500
v -0.375000 -0.500000 0.437500
v -0.375000 0.500000 0.437500
vt 0.875000 -0.000000
vt 0.125000 1.000000
vt 0.125000 -0.000000
vt 0.875000 1.000000
vt 0.125000 -0.000000
vt 0.875000 -0.000000
vt 0.875000 -0.000000
vt 0.125000 1.000000
vt 0.125000 -0.000000
vt 0.875000 1.000000
vt 0.125000 -0.000000
vt 0.875000 -0.000000
vt 0.125000 1.000000
vt 0.875000 -0.000000
vt 0.125000 -0.000000
vt 0.125000 -0.000000
vt 0.875000 1.000000
vt 0.875000 -0.000000
vt 0.125000 1.000000
vt 0.875000 -0.000000
vt 0.125000 -0.000000
vt 0.125000 -0.000000
vt 0.875000 1.000000
vt 0.875000 -0.000000
vt 0.875000 1.000000
vt 0.125000 1.000000
vt 0.875000 1.000000
vt 0.125000 1.000000
vt 0.875000 1.000000
vt 0.125000 1.000000
vt 0.875000 1.000000
vt 0.125000 1.000000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
s off
f 35/93/7 34/94/7 33/95/7
f 38/96/8 39/97/8 37/98/8
f 43/99/9 42/100/9 41/101/9
f 46/102/10 47/103/10 45/104/10
f 50/105/8 51/106/8 49/107/8
f 55/108/7 54/109/7 53/110/7
f 58/111/10 59/112/10 57/113/10
f 63/114/9 62/115/9 61/116/9
f 35/93/7 36/117/7 34/94/7
f 38/96/8 40/118/8 39/97/8
f 43/99/9 44/119/9 42/100/9
f 46/102/10 48/120/10 47/103/10
f 50/105/8 52/121/8 51/106/8
f 55/108/7 56/122/7 54/109/7
f 58/111/10 60/123/10 59/112/10
f 63/114/9 64/124/9 62/115/9

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

View File

@ -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-3864",
"version":"1.0.27-3868",
"mcversion": "1.7.10",
"url": "",
"updateUrl": "",