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_rusted;
public static Block deco_pipe_green; public static Block deco_pipe_green;
public static Block deco_pipe_green_rusted; 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;
public static Block deco_pipe_rim_rusted; public static Block deco_pipe_rim_rusted;
public static Block deco_pipe_rim_green; public static Block deco_pipe_rim_green;
public static Block deco_pipe_rim_green_rusted; 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;
public static Block deco_pipe_quad_rusted; public static Block deco_pipe_quad_rusted;
public static Block deco_pipe_quad_green; public static Block deco_pipe_quad_green;
public static Block deco_pipe_quad_green_rusted; 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 broadcaster_pc;
public static Block geiger; 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 = 115;
public static final int guiID_rbmk_control_auto = 116; public static final int guiID_rbmk_control_auto = 116;
public static final int guiID_rbmk_console = 117; public static final int guiID_rbmk_console = 117;
public static Block rbmk_loader;
public static Block pribris; public static Block pribris;
public static Block pribris_burning; public static Block pribris_burning;
public static Block pribris_radiating; 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_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 = 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_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 = 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_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 = 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_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 = 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_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 = 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_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"); 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"); 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_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_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_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 = 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_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"); 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_beam, steel_beam.getUnlocalizedName());
GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName()); GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName());
GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe, deco_pipe.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe, ItemBlockDecoPipe.class, deco_pipe.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rusted, deco_pipe_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockDecoPipe.class, deco_pipe_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green, deco_pipe_green.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_green, ItemBlockDecoPipe.class, deco_pipe_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_green_rusted, deco_pipe_green_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockDecoPipe.class, deco_pipe_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim, deco_pipe_rim.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_red, ItemBlockDecoPipe.class, deco_pipe_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_rusted, deco_pipe_rim_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_marked, ItemBlockDecoPipe.class, deco_pipe_marked.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green, deco_pipe_rim_green.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rim, ItemBlockDecoPipe.class, deco_pipe_rim.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_rim_green_rusted, deco_pipe_rim_green_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad, deco_pipe_quad.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockDecoPipe.class, deco_pipe_rim_green.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_rusted, deco_pipe_quad_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_green_rusted.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green, deco_pipe_quad_green.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockDecoPipe.class, deco_pipe_rim_red.getUnlocalizedName());
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, deco_pipe_quad_green_rusted.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, mush.getUnlocalizedName());
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
@ -2345,6 +2383,7 @@ public class ModBlocks {
GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName());
GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName());
GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName());
GameRegistry.registerBlock(pribris_radiating, pribris_radiating.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.blocks.ModBlocks;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.util.ContaminationUtil; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -12,6 +14,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
@ -71,7 +74,9 @@ public class SchrabidicBlock extends BlockFluidClassic {
@Override @Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
entity.setInWeb(); entity.setInWeb();
ContaminationUtil.applyRadData(entity, 1.0F);
if(entity instanceof EntityLivingBase)
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F);
} }
@Override @Override

View File

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

View File

@ -3,6 +3,8 @@ package com.hbm.blocks.gas;
import java.util.Random; import java.util.Random;
import com.hbm.util.ContaminationUtil; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; 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) { public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
if(entity instanceof EntityLivingBase) { 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.ArmorUtil;
import com.hbm.util.ContaminationUtil; 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.Entity;
import net.minecraft.entity.EntityLivingBase; 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) { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) { 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.blocks.ModBlocks;
import com.hbm.potion.HbmPotion; import com.hbm.potion.HbmPotion;
import com.hbm.util.ContaminationUtil; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; 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) { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) { 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)); ((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.blocks.ModBlocks;
import com.hbm.util.ContaminationUtil; 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.Entity;
import net.minecraft.entity.EntityLivingBase; 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) { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(entity instanceof EntityLivingBase) { 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; package com.hbm.blocks.generic;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -13,6 +15,11 @@ public class BlockPipe extends Block {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private IIcon sideIcon; private IIcon sideIcon;
@SideOnly(Side.CLIENT)
public IIcon frameIcon;
@SideOnly(Side.CLIENT)
public IIcon meshIcon;
private String sideString; private String sideString;
public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass 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) { public void registerBlockIcons(IIconRegister iconRegister) {
super.registerBlockIcons(iconRegister); super.registerBlockIcons(iconRegister);
this.sideIcon = iconRegister.registerIcon(sideString); this.sideIcon = iconRegister.registerIcon(sideString);
this.frameIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_frame");
this.meshIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_mesh");
} }
@Override @Override

View File

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

View File

@ -12,11 +12,14 @@ import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.util.ContaminationUtil; 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.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIHurtByTarget; 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) for(Entity e : list)
if(!(e instanceof EntityNuclearCreeper)) if(e instanceof EntityLivingBase) {
ContaminationUtil.applyRadData(e, 0.25F); ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F);
}
super.onUpdate(); super.onUpdate();

View File

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

View File

@ -11,34 +11,33 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityBOTPrimeBody extends EntityBOTPrimeBase { public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
private WormMovementBodyNT movement = new WormMovementBodyNT(this); //private WormMovementBodyNT movement = new WormMovementBodyNT(this);
public EntityBOTPrimeBody(World world) { public EntityBOTPrimeBody(World world) {
super(world); super(world);
this.bodySpeed = 0.6D;
this.rangeForParts = 70.0D; this.rangeForParts = 70.0D;
this.segmentDistance = 3.5D; this.segmentDistance = 3.5D;
this.maxBodySpeed = 1.4D; this.maxBodySpeed = 1.4D;
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D)); this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D));
} }
@Override @Override
protected void entityInit() { protected void entityInit() {
super.entityInit(); super.entityInit();
this.dataWatcher.addObject(17, (byte)0); this.dataWatcher.addObject(17, (byte) 0);
} }
@Override @Override
public float getAttackStrength(Entity target) { public float getAttackStrength(Entity target) {
if(target instanceof EntityLivingBase) { if(target instanceof EntityLivingBase) {
return ((EntityLivingBase) target).getHealth() * 0.75F; return ((EntityLivingBase) target).getHealth() * 0.75F;
} }
return 100; return 100;
} }
@Override @Override
public boolean isPotionApplicable(PotionEffect potion) { public boolean isPotionApplicable(PotionEffect potion) {
return false; return false;
@ -48,8 +47,9 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
protected void updateAITasks() { protected void updateAITasks() {
this.updateEntityActionState(); this.updateEntityActionState();
this.targetTasks.onUpdateTasks(); this.targetTasks.onUpdateTasks();
this.movement.updateMovement();
updateMovement();
if(this.didCheck) { if(this.didCheck) {
if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) { if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) {
setHealth(getHealth() - 1999.0F); 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); this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false);
} }
} }
if(this.followed != null && this.followed.isEntityAlive() && getAttackTarget() != null) { if(this.followed != null && this.followed.isEntityAlive() && getAttackTarget() != null) {
if(canEntityBeSeenThroughNonSolids(getAttackTarget())) { if(canEntityBeSeenThroughNonSolids(getAttackTarget())) {
this.attackCounter += 1; this.attackCounter += 1;
@ -73,22 +73,22 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
} else if(this.attackCounter > 0) { } else if(this.attackCounter > 0) {
this.attackCounter -= 1; this.attackCounter -= 1;
} }
if(this.targetedEntity != null) { if(this.targetedEntity != null) {
double dx = targetedEntity.posX - posX; double dx = targetedEntity.posX - posX;
double dy = targetedEntity.posY - posY; double dy = targetedEntity.posY - posY;
double dz = targetedEntity.posZ - posZ; double dz = targetedEntity.posZ - posZ;
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz); float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(dx, dz) * 180.0D / Math.PI); 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); this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI);
} }
} }
@Override @Override
public void onUpdate() { public void onUpdate() {
super.onUpdate(); super.onUpdate();
if(this.targetedEntity != null) { if(this.targetedEntity != null) {
double dx = targetedEntity.posX - posX; double dx = targetedEntity.posX - posX;
double dy = targetedEntity.posY - posY; 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) //TODO: clean-room implementation of the movement behavior classes (again)
private final WormMovementHeadNT movement = new WormMovementHeadNT(this);
public EntityBOTPrimeHead(World world) { public EntityBOTPrimeHead(World world) {
super(world); super(world);
this.experienceValue = 1000; this.experienceValue = 1000;
@ -58,7 +56,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) { public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) {
if(super.attackEntityFrom(par1DamageSource, par2)) { if(super.attackEntityFrom(par1DamageSource, par2)) {
this.dmgCooldown = 4; this.dmgCooldown = 10;
return true; return true;
} }
@ -95,7 +93,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
this.updateEntityActionState(); this.updateEntityActionState();
super.updateAITasks(); super.updateAITasks();
this.movement.updateMovement(); updateHeadMovement();
if((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) { if((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) {
if(this.targetedEntity != null) { 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")); 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; package com.hbm.entity.mob.botprime;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityCreature;
import net.minecraft.world.World; import net.minecraft.world.World;
public abstract class EntityBurrowingNT extends EntityCreature { public abstract class EntityBurrowingNT extends EntityCreature {
protected float dragInAir; protected float dragInAir;
protected float dragInGround; protected float dragInGround;
public EntityBurrowingNT(World world) { public EntityBurrowingNT(World world) {
super(world); super(world);
} }
protected void fall(float dist) { } protected void fall(float dist) {
}
public float getEyeHeight() { public float getEyeHeight() {
return this.height * 0.5F; return this.height * 0.5F;
} }
public boolean getIsHead() { public boolean getIsHead() {
return false; 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() { protected void updateFallState(double distFallen, boolean onGround) {
return false; }
}
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.command.IEntitySelector;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.ChunkCoordinates;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.world.EnumDifficulty; import net.minecraft.world.EnumDifficulty;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -32,7 +34,6 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
private int headID; private int headID;
private int partNum; private int partNum;
protected boolean didCheck; protected boolean didCheck;
protected double bodySpeed;
protected double maxBodySpeed; protected double maxBodySpeed;
protected double segmentDistance; protected double segmentDistance;
protected double knockbackDivider; protected double knockbackDivider;
@ -103,12 +104,8 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { if((this.targetedEntity != null) && (this.targetedEntity.isDead)) {
this.targetedEntity = null; this.targetedEntity = null;
} }
/*if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) {
this.entityAge = 0;
}*/
if(this.posY < -10.0D) { if(this.posY < -10.0D) {
setPositionAndUpdate(this.posX, 128.0D, this.posZ); this.motionY = 1D;
this.motionY = 0.0D;
} else if(this.posY < 3.0D) { } else if(this.posY < 3.0D) {
this.motionY = 0.3D; this.motionY = 0.3D;
} }
@ -121,7 +118,7 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
protected void attackEntitiesInList(List<Entity> targets) { protected void attackEntitiesInList(List<Entity> targets) {
for(Entity target : 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); attackEntityAsMob(target);
} }
} }
@ -155,12 +152,10 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
public abstract float getAttackStrength(Entity paramsa); public abstract float getAttackStrength(Entity paramsa);
@Override @Override
public void addVelocity(double x, double y, double z) { public void addVelocity(double x, double y, double z) { }
}
@Override @Override
public void faceEntity(Entity entity, float yaw, float pitch) { public void faceEntity(Entity entity, float yaw, float pitch) { }
}
protected boolean isCourseTraversable() { protected boolean isCourseTraversable() {
return (this.canFly) || (isEntityInsideOpaqueBlock()); return (this.canFly) || (isEntityInsideOpaqueBlock());
@ -187,4 +182,59 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
setHeadID(nbt.getInteger("wormID")); 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 java.util.List;
import com.hbm.util.ContaminationUtil; 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.entity.EntityLivingBase;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
@ -37,7 +39,7 @@ public class ExplosionHurtUtil {
double interpolation = 1 - (dist / radius); double interpolation = 1 - (dist / radius);
float rad = (float) (outer + (inner - outer) * interpolation); 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 radiation;
private float digamma; private float digamma;
private int asbestos; private int asbestos;
private float radEnv;
private float radBuf;
public HbmLivingProps(EntityLivingBase entity) { public HbmLivingProps(EntityLivingBase entity) {
this.entity = entity; this.entity = entity;
@ -69,6 +71,24 @@ public class HbmLivingProps implements IExtendedEntityProperties {
data.setRadiation(entity, radiation); 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 /// /// DIGAMA ///
public static float getDigamma(EntityLivingBase entity) { public static float getDigamma(EntityLivingBase entity) {
return getData(entity).digamma; return getData(entity).digamma;

View File

@ -11,6 +11,8 @@ import com.hbm.packet.ExtPropPacket;
import com.hbm.saveddata.AuxSavedData; import com.hbm.saveddata.AuxSavedData;
import com.hbm.saveddata.RadiationSavedData; import com.hbm.saveddata.RadiationSavedData;
import com.hbm.util.ContaminationUtil; 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.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -29,11 +31,19 @@ public class EntityEffectHandler {
public static void onUpdate(EntityLivingBase entity) { public static void onUpdate(EntityLivingBase entity) {
if(!entity.worldObj.isRemote && entity instanceof EntityPlayerMP) { if(!entity.worldObj.isRemote) {
NBTTagCompound data = new NBTTagCompound();
HbmLivingProps props = HbmLivingProps.getData(entity); if(entity.ticksExisted % 20 == 0) {
props.saveNBTData(data); HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity));
PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) 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); handleRadiation(entity);
@ -50,9 +60,6 @@ public class EntityEffectHandler {
RadiationSavedData data = RadiationSavedData.getData(world); RadiationSavedData data = RadiationSavedData.getData(world);
if(!world.isRemote) { if(!world.isRemote) {
if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)
return;
int ix = (int)MathHelper.floor_double(entity.posX); int ix = (int)MathHelper.floor_double(entity.posX);
int iy = (int)MathHelper.floor_double(entity.posY); int iy = (int)MathHelper.floor_double(entity.posY);
int iz = (int)MathHelper.floor_double(entity.posZ); int iz = (int)MathHelper.floor_double(entity.posZ);
@ -64,14 +71,17 @@ public class EntityEffectHandler {
rad = RadiationConfig.hellRad; rad = RadiationConfig.hellRad;
if(rad > 0) { 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)) { 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()); Random rand = new Random(entity.getEntityId());
if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) { 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.potion.HbmPotion;
import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil;
import com.hbm.util.WeightedRandomObject; 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.block.Block;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
@ -44,7 +46,8 @@ public abstract class WeaponAbility {
@Override @Override
public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { 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 @Override

View File

@ -30,10 +30,14 @@ public class CyclotronRecipes {
/// LITHIUM START /// /// LITHIUM START ///
int liA = 50; 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, "dustNetherQuartz", new ItemStack(ModItems.powder_fire), liA);
makeRecipe(lithium, liAmat, "dustPhosphorus", new ItemStack(ModItems.sulfur), liA); makeRecipe(lithium, liAmat, "dustPhosphorus", new ItemStack(ModItems.sulfur), liA);
makeRecipe(lithium, liAmat, "dustIron", new ItemStack(ModItems.powder_cobalt), 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, "dustGold", new ItemStack(ModItems.nugget_mercury), liA);
makeRecipe(lithium, liAmat, "dustPolonium", new ItemStack(ModItems.powder_astatine), liA); makeRecipe(lithium, liAmat, "dustPolonium", new ItemStack(ModItems.powder_astatine), liA);
makeRecipe(lithium, liAmat, "dustLanthanium", new ItemStack(ModItems.powder_cerium), liA); makeRecipe(lithium, liAmat, "dustLanthanium", new ItemStack(ModItems.powder_cerium), liA);
@ -45,7 +49,8 @@ public class CyclotronRecipes {
/// BERYLLIUM START /// /// BERYLLIUM START ///
int beA = 25; 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, "dustNetherQuartz", new ItemStack(ModItems.sulfur), beA);
makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA); makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA);
makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA); makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA);
@ -57,7 +62,8 @@ public class CyclotronRecipes {
/// CARBON START /// /// CARBON START ///
int caA = 10; 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, "dustSulfur", new ItemStack(ModItems.powder_titanium), caA);
makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_cobalt), 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); 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.chain, new ItemStack(ModItems.powder_steel_tiny, 1));
ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3)); 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_light, new ItemStack(ModItems.powder_steel, 16));
ShredderRecipes.setRecipe(ModBlocks.turret_heavy, 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)); 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); Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); 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); drawTexturedModalRect(guiLeft + 34, guiTop + 21, 176, 0, 18, 67);
double depletion = 1D - ItemRBMKRod.getEnrichment(rod.slots[0]); 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"); 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"); 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"); 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"); 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_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"); 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_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_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_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_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"); 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"); .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu");
rbmk_fuel_thmeu = new ItemRBMKRod("Thorium with MEU Driver Fuel") rbmk_fuel_thmeu = new ItemRBMKRod("Thorium with MEU Driver Fuel")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(50)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu"); .setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu");
rbmk_fuel_lep = new ItemRBMKRod("Low Enriched Plutonium-239") rbmk_fuel_lep = new ItemRBMKRod("Low Enriched Plutonium-239")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(120)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.puf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.puf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep"); .setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep");
rbmk_fuel_mep = new ItemRBMKRod("Medium Enriched Plutonium-239") rbmk_fuel_mep = new ItemRBMKRod("Medium Enriched Plutonium-239")
.setYield(100000000D) .setYield(100000000D)
.setStats(100, 20) .setStats(150, 20)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep"); .setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep");
rbmk_fuel_men = new ItemRBMKRod("Medium Enriched Neptunium-237") rbmk_fuel_men = new ItemRBMKRod("Medium Enriched Neptunium-237")
.setYield(100000000D) .setYield(100000000D)
.setStats(100, 20) .setStats(130)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.setNeutronTypes(NType.FAST, NType.FAST) .setNeutronTypes(NType.FAST, NType.FAST)
.addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men");
rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide") rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(130)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox"); .setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox");
rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326") rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(150)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les");
rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326") rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(200)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes"); .setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes");
rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326") rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326")
.setYield(100000000D) .setYield(100000000D)
.setStats(100) .setStats(250)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes"); .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"); .setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be");
rbmk_fuel_balefire = new ItemRBMKRod("Draconic Flames") rbmk_fuel_balefire = new ItemRBMKRod("Draconic Flames")
.setYield(100000000D) .setYield(100000000D)
.setStats(60, 35) .setStats(300, 35)
.setMeltingPoint(2000) .setMeltingPoint(2000)
.addRadiation(800000F).toItem() .addRadiation(800000F).toItem()
.setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire"); .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.items.ModItems;
import com.hbm.modules.ItemHazardModule; import com.hbm.modules.ItemHazardModule;
import com.hbm.util.ContaminationUtil; 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.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -115,7 +117,7 @@ public class ItemModInsert extends ItemArmorMod implements IItemHazard {
public void modUpdate(EntityLivingBase entity, ItemStack armor) { public void modUpdate(EntityLivingBase entity, ItemStack armor) {
if(!entity.worldObj.isRemote && this == ModItems.insert_polonium) { 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.items.ModItems;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.util.ContaminationUtil; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -82,20 +84,20 @@ public class ItemEnergy extends Item {
player.heal(4F); player.heal(4F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.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) { if(this == ModItems.bottle_cherry) {
player.heal(6F); player.heal(6F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0));
player.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 2)); 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) { if(this == ModItems.bottle_quantum) {
player.heal(10F); player.heal(10F);
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); 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.resistance.id, 30 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 1)); 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) { if(this == ModItems.bottle2_korl) {
player.heal(6); 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.resistance.id, 120 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); 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) { if(this == ModItems.bottle_rad) {
player.heal(10F); 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.fireResistance.id, 120 * 20, 0));
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4));
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); 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) { if(this == ModItems.bottle2_sunset) {
player.heal(6); player.heal(6);

View File

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

View File

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

View File

@ -5,12 +5,14 @@ import java.util.List;
import java.util.Random; import java.util.Random;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSB;
import com.hbm.saveddata.RadiationSavedData; import com.hbm.saveddata.RadiationSavedData;
import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -25,21 +27,18 @@ public class ItemGeigerCounter extends Item {
@Override @Override
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { 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(entity instanceof EntityPlayer) {
if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound)
return; return;
} }
setInt(stack, getInt(stack, "timer") + 1, "timer"); float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity);
if(getInt(stack, "timer") == 10) {
setInt(stack, 0, "timer");
setInt(stack, check(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ), "ticker");
}
int x = getInt(stack, "ticker"); if(world.getTotalWorldTime() % 5 == 0) {
if(getInt(stack, "timer") % 5 == 0) {
if(x > 0) { if(x > 0) {
List<Integer> list = new ArrayList<Integer>(); 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()) if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound(); 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()) if(stack.hasTagCompound())
return stack.stackTagCompound.getInteger(name); return stack.stackTagCompound.getFloat(name);
return 0; return 0;
} }
@ -93,20 +92,6 @@ public class ItemGeigerCounter extends Item {
return rads; 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 @Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { 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_ams_base ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small || 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_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; return true;
} }

View File

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

View File

@ -44,7 +44,6 @@ import com.hbm.entity.missile.*;
import com.hbm.entity.mob.*; import com.hbm.entity.mob.*;
import com.hbm.entity.mob.botprime.EntityBOTPrimeBody; import com.hbm.entity.mob.botprime.EntityBOTPrimeBody;
import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; import com.hbm.entity.mob.botprime.EntityBOTPrimeHead;
import com.hbm.entity.mob.sodtekhnologiyah.EntityBallsOTronSegment;
import com.hbm.entity.particle.*; import com.hbm.entity.particle.*;
import com.hbm.entity.projectile.*; import com.hbm.entity.projectile.*;
import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.HbmKeybinds.EnumKeybind;
@ -497,7 +496,6 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab()); RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab());
RenderingRegistry.registerEntityRenderingHandler(EntityTaintCrab.class, new RenderTaintCrab()); RenderingRegistry.registerEntityRenderingHandler(EntityTaintCrab.class, new RenderTaintCrab());
RenderingRegistry.registerEntityRenderingHandler(EntityMaskMan.class, new RenderMaskMan()); RenderingRegistry.registerEntityRenderingHandler(EntityMaskMan.class, new RenderMaskMan());
RenderingRegistry.registerEntityRenderingHandler(EntityBallsOTronSegment.class, new RenderBalls());
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeHead.class, new RenderWormHead()); RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeHead.class, new RenderWormHead());
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeBody.class, new RenderWormBody()); RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeBody.class, new RenderWormBody());
RenderingRegistry.registerEntityRenderingHandler(EntityDuck.class, new RenderDuck(new ModelChicken(), 0.3F)); 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 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.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.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.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 }));
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 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 })); 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_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_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 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_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" })); 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_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 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) { 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.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 }); 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 = 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_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_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_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")); 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.ArmorUtil;
import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil;
import com.hbm.util.I18nUtil; 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.block.material.Material;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -65,7 +67,7 @@ public class ItemHazardModule {
public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean currentItem) { public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean currentItem) {
if(this.radiation > 0) 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) if(this.digamma > 0)
ContaminationUtil.applyDigammaData(entity, this.digamma * mod / 20F); 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.extprop.HbmLivingProps;
import com.hbm.lib.ModDamageSource; import com.hbm.lib.ModDamageSource;
import com.hbm.util.ContaminationUtil; 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.ReflectionHelper;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -113,8 +115,7 @@ public class HbmPotion extends Potion {
} }
} }
if(this == radiation) { if(this == radiation) {
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F);
ContaminationUtil.applyRadData(entity, (float)(level + 1F) * 0.05F);
} }
if(this == radaway) { 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); 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(); tessellator.draw();
GL11.glPopMatrix(); 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, "Top", iiconTop, tessellator, rot, pitch, true);
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, 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); 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) { public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) {
if(!(player instanceof EntityPlayerMP)) if(!(player instanceof EntityPlayerMP))
return;
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
player.mountEntity(null); player.mountEntity(null);

View File

@ -327,6 +327,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
power -= 250; power -= 250;
if(power > 0)
power = 0;
if(this.dualCookTime == processingSpeed) if(this.dualCookTime == processingSpeed)
{ {
this.dualCookTime = 0; 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(); this.heat -= this.passiveCooling();
@ -137,33 +137,47 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
heat = 20D; heat = 20D;
} }
protected static boolean diag = false;
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
if(!diag) {
super.readFromNBT(nbt);
}
this.heat = nbt.getDouble("heat"); this.heat = nbt.getDouble("heat");
} }
@Override @Override
public void writeToNBT(NBTTagCompound nbt) { public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
if(!diag) {
super.writeToNBT(nbt);
}
nbt.setDouble("heat", this.heat); nbt.setDouble("heat", this.heat);
} }
public void networkPack(NBTTagCompound nbt, int range) { public void networkPack(NBTTagCompound nbt, int range) {
diag = true;
if(!worldObj.isRemote) if(!worldObj.isRemote)
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); 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) { public void networkUnpack(NBTTagCompound nbt) {
diag = true;
this.readFromNBT(nbt); this.readFromNBT(nbt);
diag = false;
} }
public void getDiagData(NBTTagCompound nbt) { public void getDiagData(NBTTagCompound nbt) {
diag = true;
this.writeToNBT(nbt); this.writeToNBT(nbt);
diag = false;
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)

View File

@ -93,6 +93,25 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
public void fillFluidInit(FluidType type) { public void fillFluidInit(FluidType type) {
fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), 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 @Override

View File

@ -143,13 +143,16 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
@Override @Override
public void readFromNBT(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt); super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
if(!diag) {
for(int i = 0; i < list.tagCount(); i++) { NBTTagList list = nbt.getTagList("items", 10);
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot"); for(int i = 0; i < list.tagCount(); i++) {
if(b0 >= 0 && b0 < slots.length) { NBTTagCompound nbt1 = list.getCompoundTagAt(i);
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); 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 @Override
public void writeToNBT(NBTTagCompound nbt) { public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt); super.writeToNBT(nbt);
NBTTagList list = new NBTTagList();
if(!diag) {
for(int i = 0; i < slots.length; i++) { NBTTagList list = new NBTTagList();
if(slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound(); for(int i = 0; i < slots.length; i++) {
nbt1.setByte("slot", (byte) i); if(slots[i] != null) {
slots[i].writeToNBT(nbt1); NBTTagCompound nbt1 = new NBTTagCompound();
list.appendTag(nbt1); 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 /// /// RADIATION ///
public static void applyRadData(Entity e, float f) { private static void applyRadData(Entity e, float f) {
if(!(e instanceof EntityLivingBase)) if(!(e instanceof EntityLivingBase))
return; return;
@ -51,31 +51,31 @@ public class ContaminationUtil {
if(isRadImmune(e)) if(isRadImmune(e))
return; return;
EntityLivingBase entity = (EntityLivingBase)e;
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
return; return;
if(e instanceof EntityPlayer && e.ticksExisted < 200) if(e instanceof EntityPlayer && e.ticksExisted < 200)
return; return;
EntityLivingBase entity = (EntityLivingBase)e;
f *= calculateRadiationMod(entity); f *= calculateRadiationMod(entity);
HbmLivingProps.incrementRadiation(entity, f); HbmLivingProps.incrementRadiation(entity, f);
} }
public static void applyRadDirect(Entity e, float f) { private static void applyRadDirect(Entity e, float f) {
if(!(e instanceof EntityLivingBase)) if(!(e instanceof EntityLivingBase))
return; return;
EntityLivingBase entity = (EntityLivingBase)e;
if(isRadImmune(e)) if(isRadImmune(e))
return; return;
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
return; return;
EntityLivingBase entity = (EntityLivingBase)e;
HbmLivingProps.incrementRadiation(entity, f); HbmLivingProps.incrementRadiation(entity, f);
} }
@ -179,27 +179,16 @@ public class ContaminationUtil {
RadiationSavedData data = RadiationSavedData.getData(player.worldObj); RadiationSavedData data = RadiationSavedData.getData(player.worldObj);
Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ); Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);
double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D; 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 res = ((int)(10000D - ContaminationUtil.calculateRadiationMod(player) * 10000D)) / 100D;
double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100)) / 100D; double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100D)) / 100D;
String chunkPrefix = ""; String chunkPrefix = getPreffixFromRad(rads);
String envPrefix = getPreffixFromRad(env);
String radPrefix = ""; String radPrefix = "";
String resPrefix = "" + EnumChatFormatting.WHITE; 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) if(eRad < 200)
radPrefix += EnumChatFormatting.GREEN; radPrefix += EnumChatFormatting.GREEN;
else if(eRad < 400) else if(eRad < 400)
@ -220,10 +209,31 @@ public class ContaminationUtil {
//a *functioning* painful mess, nonetheless //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 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.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.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))); 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) { public static void printDiagnosticData(EntityPlayer player) {
double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D; double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D;
@ -251,13 +261,22 @@ public class ContaminationUtil {
HAZMAT2, //preventable by heavy hazmat HAZMAT2, //preventable by heavy hazmat
DIGAMMA, //preventable by fau armor or stability DIGAMMA, //preventable by fau armor or stability
DIGAMMA2, //preventable by robes 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 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 @SuppressWarnings("incomplete-switch") //just shut up
public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) { 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) { if(entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer)entity; EntityPlayer player = (EntityPlayer)entity;
@ -285,7 +304,7 @@ public class ContaminationUtil {
switch(hazard) { switch(hazard) {
case MONOXIDE: entity.attackEntityFrom(ModDamageSource.monoxide, amount); break; 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 ASBESTOS: HbmLivingProps.incrementAsbestos(entity, (int)amount); break;
case DIGAMMA: HbmLivingProps.incrementDigamma(entity, 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.World;
import net.minecraft.world.gen.feature.WorldGenerator; import net.minecraft.world.gen.feature.WorldGenerator;
public class Bunker extends WorldGenerator public class Bunker extends WorldGenerator {
{
Block Block1 = ModBlocks.reinforced_brick; Block Block1 = ModBlocks.reinforced_brick;
Block Block3 = ModBlocks.reinforced_light; Block Block3 = ModBlocks.reinforced_light;
Block Block4 = ModBlocks.deco_steel; Block Block4 = ModBlocks.deco_steel;
Block Block5 = ModBlocks.deco_tungsten; Block Block5 = ModBlocks.deco_tungsten;
protected Block[] GetValidSpawnBlocks() protected Block[] GetValidSpawnBlocks() {
{ return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, };
return new Block[]
{
Blocks.grass,
Blocks.dirt,
Blocks.stone,
Blocks.sand,
Blocks.sandstone,
};
} }
@Override @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); int i = rand.nextInt(1);
if(i == 0) if(i == 0) {
{ generate_r0(world, rand, x, y, z);
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; 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++) return false;
{ }
for(int k = 0; k < 15; k++)
{ 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 + i, y + j - 25, z + k, Blocks.air, 0, 3);
} }
} }
} }
world.setBlock(x + 0, y + -25, z + 0, Block1, 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 + 1, y + -25, z + 0, Block1, 0, 3);
world.setBlock(x + 2, 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 + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3); world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3);
world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3); world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) 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);
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 + 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 + 4, y + -24, z + 1, Block1, 0, 3);
world.setBlock(x + 11, 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 + 0, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3); world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3); world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3);
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) 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);
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); world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3);
if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) 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);
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 + 11, y + -24, z + 2, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 3, 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.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3); world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3);
if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) 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);
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); world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3);
if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) 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);
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 + 7, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 8, 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); 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 + 10, y + -24, z + 3, Block1, 0, 3);
world.setBlock(x + 11, 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); 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 + 0, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 1, 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); 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 + 3, y + -24, z + 5, Block1, 0, 3);
world.setBlock(x + 4, 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); 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 + 0, y + -24, z + 9, Block1, 0, 3);
world.setBlock(x + 3, 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); 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 + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3);
world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3); world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3);
world.setBlock(x + 0, y + -24, z + 10, 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 + 4, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 7, 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 + 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 + 10, y + -23, z + 3, Block1, 0, 3);
world.setBlock(x + 11, 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); 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 + 11, y + -23, z + 4, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 5, 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 + 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 + 3, y + -23, z + 5, Block1, 0, 3);
world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3); world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3);
world.setBlock(x + 7, y + -23, z + 5, Block1, 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 + 0, y + -23, z + 9, Block1, 0, 3);
world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 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 + 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 + 11, y + -23, z + 9, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 10, 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); 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 + 11, y + -23, z + 13, Block1, 0, 3);
world.setBlock(x + 0, y + -23, z + 14, 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); world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3);
//prevent geiger displacement // prevent geiger displacement
//world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3); // 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 + 3, y + -23, z + 14, Block1, 0, 3);
world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3); world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3);
world.setBlock(x + 5, y + -23, z + 14, Block1, 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 + 3, y + -20, z + 1, Block1, 0, 3);
world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3); world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3);
world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3); world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3);
if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) 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);
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 + 9, y + -20, z + 1, Block4, 0, 3);
world.setBlock(x + 10, 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); 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 + 3, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 4, 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); 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 + 6, y + -20, z + 4, Block1, 0, 3);
world.setBlock(x + 7, 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); 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 + 11, y + -20, z + 5, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 6, 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); 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 + 11, y + -20, z + 6, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 7, 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 + 3, y + -20, z + 7, Block1, 0, 3);
world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 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); 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 + 11, y + -20, z + 7, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 8, 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 + 3, y + -20, z + 8, Block1, 0, 3);
world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 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); 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); 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); 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 + 11, y + -20, z + 8, Block1, 0, 3);
world.setBlock(x + 0, y + -20, z + 9, 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); 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 + 0, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 3, 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 + 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 + 6, y + -19, z + 4, Block1, 0, 3);
world.setBlock(x + 7, 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); 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 + 3, y + -19, z + 5, Block1, 0, 3);
world.setBlock(x + 11, 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 + 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 + 11, y + -19, z + 6, Block1, 0, 3);
world.setBlock(x + 0, y + -19, z + 7, 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 + 3, y + -19, z + 7, Block3, 0, 3);
//world.setBlock(x + 8, 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 + 10, y + -19, z + 7, Blocks.iron_door, 8, 3);
world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 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 + 0, y + -19, z + 8, Block1, 0, 3);
world.setBlock(x + 3, 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 + 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 + 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 + 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 + 10, y + -19, z + 8, Blocks.iron_door, 9, 3);
world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 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 + 0, y + -19, z + 9, Block1, 0, 3);
world.setBlock(x + 3, 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; 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 + 12, Blocks.ladder, 4, 3);
world.setBlock(x + 10, y + -24, z + 13, 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 + 8, y + -19, z + 10, Blocks.bed, 8, 3);
world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3); world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3);
if(GeneralConfig.enableDebugMode) 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; return true;
} }

View File

@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidische Säure
fluid.toxic_fluid=Stereotypischer grüner Schleim fluid.toxic_fluid=Stereotypischer grüner Schleim
geiger.chunkRad=Chunk-Strahlung: geiger.chunkRad=Chunk-Strahlung:
geiger.envRad=Gesamte Umgebungsstrahlung:
geiger.playerRad=Spieler-Kontaminierung: geiger.playerRad=Spieler-Kontaminierung:
geiger.playerRes=Strahlungsresistenz: geiger.playerRes=Strahlungsresistenz:
geiger.title=GEIGERZÄHLER geiger.title=GEIGERZÄHLER
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaikpanele
item.pill_iodine.name=Iodpille item.pill_iodine.name=Iodpille
item.pin.name=Haarklammer item.pin.name=Haarklammer
item.pipes_steel.name=Stahlrohre item.pipes_steel.name=Stahlrohre
item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet.
item.piston_selenium.name=Sternmotorenkolben item.piston_selenium.name=Sternmotorenkolben
item.plan_c.name=Plan C item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock
tile.block_cobalt.name=Kobaltblock tile.block_cobalt.name=Kobaltblock
tile.block_combine_steel.name=CMB-Stahlblock tile.block_combine_steel.name=CMB-Stahlblock
tile.block_copper.name=Kupferblock tile.block_copper.name=Kupferblock
tile.block_corium.name=Corium
tile.block_daffergon.name=Daffergonblock tile.block_daffergon.name=Daffergonblock
tile.block_desh.name=Verstärketer Deshblock tile.block_desh.name=Verstärketer Deshblock
tile.block_dineutronium.name=Dineutroniumblock tile.block_dineutronium.name=Dineutroniumblock
@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestdach
tile.deco_beryllium.name=Beryllium-Dekoblock tile.deco_beryllium.name=Beryllium-Dekoblock
tile.deco_lead.name=Blei-Dekoblock tile.deco_lead.name=Blei-Dekoblock
tile.deco_red_copper.name=Roter Kupfer-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_steel.name=Stahl-Dekoblock
tile.deco_titanium.name=Titan-Dekoblock tile.deco_titanium.name=Titan-Dekoblock
tile.deco_tungsten.name=Wolfram-Dekoblock tile.deco_tungsten.name=Wolfram-Dekoblock
@ -2844,6 +2871,7 @@ tile.pole_satellite_receiver.name=Satellitenschüssel
tile.pole_top.name=Antennenspitze tile.pole_top.name=Antennenspitze
tile.pribris.name=RBMK-Schutt tile.pribris.name=RBMK-Schutt
tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt
tile.pribris_radiating.name=Glühender RBMK-Schutt
tile.radiobox.name=Rosenberg Ungeziefervernichter tile.radiobox.name=Rosenberg Ungeziefervernichter
tile.radiorec.name=Kaputtes UKW Radio tile.radiorec.name=Kaputtes UKW Radio
tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen
@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Dampfkanal
tile.rbmk_console.name=RBMK Konsole tile.rbmk_console.name=RBMK Konsole
tile.rbmk_control.name=RBMK Steuerstäbe tile.rbmk_control.name=RBMK Steuerstäbe
tile.rbmk_control_auto.name=RBMK Automatische 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_moderator.name=RBMK Graphitmoderator
tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator
tile.rbmk_rod.name=RBMK Brennstäbe tile.rbmk_rod.name=RBMK Brennstäbe

View File

@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidic Acid
fluid.toxic_fluid=Stereotypical Green Ooze fluid.toxic_fluid=Stereotypical Green Ooze
geiger.chunkRad=Current chunk radiation: geiger.chunkRad=Current chunk radiation:
geiger.envRad=Total environmental radiation:
geiger.playerRad=Player contamination: geiger.playerRad=Player contamination:
geiger.playerRes=Player resistance: geiger.playerRes=Player resistance:
geiger.title=GEIGER COUNTER geiger.title=GEIGER COUNTER
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaic Panel
item.pill_iodine.name=Iodine Pill item.pill_iodine.name=Iodine Pill
item.pin.name=Bobby Pin item.pin.name=Bobby Pin
item.pipes_steel.name=Steel Pipes 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.piston_selenium.name=Radial Engine Piston
item.plan_c.name=Plan C item.plan_c.name=Plan C
item.plate_advanced_alloy.name=Advanced Alloy Plate item.plate_advanced_alloy.name=Advanced Alloy Plate
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps
tile.block_cobalt.name=Block of Cobalt tile.block_cobalt.name=Block of Cobalt
tile.block_combine_steel.name=Block of CMB Steel tile.block_combine_steel.name=Block of CMB Steel
tile.block_copper.name=Block of Copper tile.block_copper.name=Block of Copper
tile.block_corium.name=Corium
tile.block_daffergon.name=Block of Daffergon tile.block_daffergon.name=Block of Daffergon
tile.block_desh.name=Reinforced Block of Desh tile.block_desh.name=Reinforced Block of Desh
tile.block_dineutronium.name=Block of Dineutronium 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_beryllium.name=Beryllium Deco Block
tile.deco_lead.name=Lead Deco Block tile.deco_lead.name=Lead Deco Block
tile.deco_red_copper.name=Red Copper 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_steel.name=Steel Deco Block
tile.deco_titanium.name=Titanium Deco Block tile.deco_titanium.name=Titanium Deco Block
tile.deco_tungsten.name=Tungsten 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.pole_top.name=Antenna Top
tile.pribris.name=RBMK Debris tile.pribris.name=RBMK Debris
tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris
tile.pribris_radiating.name=Smoldering RBMK Debris
tile.radiobox.name=Rosenberg Pest Control Box tile.radiobox.name=Rosenberg Pest Control Box
tile.radiorec.name=Broken FM Radio tile.radiorec.name=Broken FM Radio
tile.rail_booster.name=High Speed Booster Rail 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_console.name=RBMK Console
tile.rbmk_control.name=RBMK Control Rods tile.rbmk_control.name=RBMK Control Rods
tile.rbmk_control_auto.name=RBMK Automatic 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_moderator.name=RBMK Graphite Moderator
tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector
tile.rbmk_rod.name=RBMK Fuel Rod 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", "modid": "hbm",
"name": "Hbm's Nuclear Tech", "name": "Hbm's Nuclear Tech",
"description": "A mod that adds weapons, nuclear themed stuff and machines", "description": "A mod that adds weapons, nuclear themed stuff and machines",
"version":"1.0.27-3864", "version":"1.0.27-3868",
"mcversion": "1.7.10", "mcversion": "1.7.10",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",