pipes, all of them
@ -299,14 +299,26 @@ public class ModBlocks {
|
||||
public static Block deco_pipe_rusted;
|
||||
public static Block deco_pipe_green;
|
||||
public static Block deco_pipe_green_rusted;
|
||||
public static Block deco_pipe_red;
|
||||
public static Block deco_pipe_marked;
|
||||
public static Block deco_pipe_rim;
|
||||
public static Block deco_pipe_rim_rusted;
|
||||
public static Block deco_pipe_rim_green;
|
||||
public static Block deco_pipe_rim_green_rusted;
|
||||
public static Block deco_pipe_rim_red;
|
||||
public static Block deco_pipe_rim_marked;
|
||||
public static Block deco_pipe_framed;
|
||||
public static Block deco_pipe_framed_rusted;
|
||||
public static Block deco_pipe_framed_green;
|
||||
public static Block deco_pipe_framed_green_rusted;
|
||||
public static Block deco_pipe_framed_red;
|
||||
public static Block deco_pipe_framed_marked;
|
||||
public static Block deco_pipe_quad;
|
||||
public static Block deco_pipe_quad_rusted;
|
||||
public static Block deco_pipe_quad_green;
|
||||
public static Block deco_pipe_quad_green_rusted;
|
||||
public static Block deco_pipe_quad_red;
|
||||
public static Block deco_pipe_quad_marked;
|
||||
|
||||
public static Block broadcaster_pc;
|
||||
public static Block geiger;
|
||||
@ -887,6 +899,7 @@ public class ModBlocks {
|
||||
public static final int guiID_rbmk_control = 115;
|
||||
public static final int guiID_rbmk_control_auto = 116;
|
||||
public static final int guiID_rbmk_console = 117;
|
||||
public static Block rbmk_loader;
|
||||
public static Block pribris;
|
||||
public static Block pribris_burning;
|
||||
public static Block pribris_radiating;
|
||||
@ -1284,14 +1297,26 @@ public class ModBlocks {
|
||||
deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
|
||||
deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
|
||||
deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
|
||||
deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
|
||||
deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
|
||||
deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
|
||||
deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
|
||||
deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
|
||||
deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
|
||||
deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
|
||||
deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
|
||||
deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
|
||||
deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
|
||||
deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
|
||||
deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
|
||||
deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
|
||||
deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
|
||||
deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top");
|
||||
deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty");
|
||||
deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green");
|
||||
deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty");
|
||||
deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red");
|
||||
deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked");
|
||||
|
||||
broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc");
|
||||
geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger");
|
||||
@ -1652,6 +1677,7 @@ public class ModBlocks {
|
||||
rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber");
|
||||
rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator");
|
||||
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
|
||||
rbmk_loader = new BlockGeneric(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
||||
pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris");
|
||||
pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning");
|
||||
pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating");
|
||||
@ -2118,18 +2144,30 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe, deco_pipe.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rusted, deco_pipe_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_green, deco_pipe_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_green_rusted, deco_pipe_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim, deco_pipe_rim.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_rusted, deco_pipe_rim_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_green, deco_pipe_rim_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_green_rusted, deco_pipe_rim_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad, deco_pipe_quad.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_rusted, deco_pipe_quad_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_green, deco_pipe_quad_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, deco_pipe_quad_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe, ItemBlockDecoPipe.class, deco_pipe.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockDecoPipe.class, deco_pipe_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_green, ItemBlockDecoPipe.class, deco_pipe_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockDecoPipe.class, deco_pipe_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_red, ItemBlockDecoPipe.class, deco_pipe_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_marked, ItemBlockDecoPipe.class, deco_pipe_marked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim, ItemBlockDecoPipe.class, deco_pipe_rim.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockDecoPipe.class, deco_pipe_rim_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockDecoPipe.class, deco_pipe_rim_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_rim_marked, ItemBlockDecoPipe.class, deco_pipe_rim_marked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed, ItemBlockDecoPipe.class, deco_pipe_framed.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed_green, ItemBlockDecoPipe.class, deco_pipe_framed_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed_green_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed_red, ItemBlockDecoPipe.class, deco_pipe_framed_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_framed_marked, ItemBlockDecoPipe.class, deco_pipe_framed_marked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad, ItemBlockDecoPipe.class, deco_pipe_quad.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_green, ItemBlockDecoPipe.class, deco_pipe_quad_green.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockDecoPipe.class, deco_pipe_quad_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockDecoPipe.class, deco_pipe_quad_marked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
|
||||
@ -2345,6 +2383,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName());
|
||||
|
||||
@ -5,6 +5,8 @@ import java.util.Random;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -12,6 +14,7 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
@ -71,7 +74,9 @@ public class SchrabidicBlock extends BlockFluidClassic {
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
entity.setInWeb();
|
||||
ContaminationUtil.applyRadData(entity, 1.0F);
|
||||
|
||||
if(entity instanceof EntityLivingBase)
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -5,6 +5,8 @@ import java.util.Random;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -12,6 +14,7 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
@ -71,7 +74,9 @@ public class ToxicBlock extends BlockFluidClassic {
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
entity.setInWeb();
|
||||
ContaminationUtil.applyRadData(entity, 1.0F);
|
||||
|
||||
if(entity instanceof EntityLivingBase)
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -3,6 +3,8 @@ package com.hbm.blocks.gas;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -26,7 +28,7 @@ public class BlockGasAsbestos extends BlockGasBase {
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
ContaminationUtil.applyAsbestos(entity, 1);
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.ASBESTOS, ContaminationType.GAS, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.util.ArmorUtil;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -17,7 +19,7 @@ public class BlockGasRadon extends BlockGasBase {
|
||||
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
ContaminationUtil.applyRadDirect(entity, 0.05F);
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.05F);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -5,6 +5,8 @@ import java.util.Random;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -21,7 +23,7 @@ public class BlockGasRadonDense extends BlockGasBase {
|
||||
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
ContaminationUtil.applyRadDirect(entity, 0.5F);
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.GAS, 0.5F);
|
||||
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -43,7 +45,7 @@ public class BlockGasRadonTomb extends BlockGasBase {
|
||||
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
ContaminationUtil.applyRadDirect(entity, 0.5F);
|
||||
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.5F);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -13,6 +15,11 @@ public class BlockPipe extends Block {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon sideIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon frameIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon meshIcon;
|
||||
|
||||
private String sideString;
|
||||
public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass
|
||||
|
||||
@ -27,6 +34,8 @@ public class BlockPipe extends Block {
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.sideIcon = iconRegister.registerIcon(sideString);
|
||||
this.frameIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_frame");
|
||||
this.meshIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_mesh");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -56,7 +56,7 @@ public class RBMKConsole extends BlockDummyable {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
return true;
|
||||
|
||||
TileEntityRBMKConsole entity = (TileEntityRBMKConsole) world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(entity != null) {
|
||||
|
||||
@ -12,11 +12,14 @@ import com.hbm.main.MainRegistry;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
|
||||
import net.minecraft.entity.ai.EntityAIHurtByTarget;
|
||||
@ -182,11 +185,12 @@ public class EntityNuclearCreeper extends EntityMob {
|
||||
}
|
||||
}
|
||||
|
||||
List<Entity> list = this.worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
|
||||
List<Entity> list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2));
|
||||
|
||||
for(Entity e : list)
|
||||
if(!(e instanceof EntityNuclearCreeper))
|
||||
ContaminationUtil.applyRadData(e, 0.25F);
|
||||
if(e instanceof EntityLivingBase) {
|
||||
ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F);
|
||||
}
|
||||
|
||||
super.onUpdate();
|
||||
|
||||
|
||||
@ -12,20 +12,20 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRadiationImmune {
|
||||
|
||||
|
||||
public int attackCounter = 0;
|
||||
|
||||
|
||||
protected final IEntitySelector selector = new IEntitySelector() {
|
||||
|
||||
@Override
|
||||
public boolean isEntityApplicable(Entity ent) {
|
||||
|
||||
if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT)ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID())
|
||||
|
||||
if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT) ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID())
|
||||
return false;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
public EntityBOTPrimeBase(World world) {
|
||||
@ -39,10 +39,10 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa
|
||||
this.dragInGround = 0.98F;
|
||||
this.knockbackDivider = 1.0D;
|
||||
}
|
||||
|
||||
public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) {
|
||||
return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double)p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null;
|
||||
}
|
||||
|
||||
public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) {
|
||||
return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double) this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double) p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyEntityAttributes() {
|
||||
@ -52,40 +52,40 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAIEnabled() {
|
||||
return true;
|
||||
}
|
||||
protected boolean isAIEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canDespawn() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected String getHurtSound() {
|
||||
return "mob.blaze.hit";
|
||||
}
|
||||
|
||||
protected String getDeathSound() {
|
||||
return "hbm:entity.bombDet";
|
||||
}
|
||||
|
||||
protected boolean canDespawn() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected String getHurtSound() {
|
||||
return "mob.blaze.hit";
|
||||
}
|
||||
|
||||
protected String getDeathSound() {
|
||||
return "hbm:entity.bombDet";
|
||||
}
|
||||
|
||||
protected void laserAttack(Entity target, boolean head) {
|
||||
|
||||
|
||||
if(!(target instanceof EntityLivingBase))
|
||||
return;
|
||||
|
||||
|
||||
EntityLivingBase living = (EntityLivingBase) target;
|
||||
|
||||
if(head) {
|
||||
|
||||
|
||||
for(int i = 0; i < 5; i++) {
|
||||
|
||||
|
||||
EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F);
|
||||
this.worldObj.spawnEntityInWorld(bullet);
|
||||
}
|
||||
|
||||
|
||||
this.playSound("hbm:weapon.ballsLaser", 5.0F, 0.75F);
|
||||
|
||||
|
||||
} else {
|
||||
EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F);
|
||||
this.worldObj.spawnEntityInWorld(bullet);
|
||||
|
||||
@ -11,34 +11,33 @@ import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
|
||||
|
||||
private WormMovementBodyNT movement = new WormMovementBodyNT(this);
|
||||
|
||||
//private WormMovementBodyNT movement = new WormMovementBodyNT(this);
|
||||
|
||||
public EntityBOTPrimeBody(World world) {
|
||||
super(world);
|
||||
this.bodySpeed = 0.6D;
|
||||
this.rangeForParts = 70.0D;
|
||||
this.segmentDistance = 3.5D;
|
||||
this.maxBodySpeed = 1.4D;
|
||||
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D));
|
||||
this.maxBodySpeed = 1.4D;
|
||||
this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void entityInit() {
|
||||
super.entityInit();
|
||||
this.dataWatcher.addObject(17, (byte)0);
|
||||
this.dataWatcher.addObject(17, (byte) 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getAttackStrength(Entity target) {
|
||||
|
||||
|
||||
if(target instanceof EntityLivingBase) {
|
||||
return ((EntityLivingBase) target).getHealth() * 0.75F;
|
||||
}
|
||||
|
||||
|
||||
return 100;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isPotionApplicable(PotionEffect potion) {
|
||||
return false;
|
||||
@ -48,8 +47,9 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
|
||||
protected void updateAITasks() {
|
||||
this.updateEntityActionState();
|
||||
this.targetTasks.onUpdateTasks();
|
||||
this.movement.updateMovement();
|
||||
|
||||
updateMovement();
|
||||
|
||||
if(this.didCheck) {
|
||||
if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) {
|
||||
setHealth(getHealth() - 1999.0F);
|
||||
@ -58,7 +58,7 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
|
||||
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(this.followed != null && this.followed.isEntityAlive() && getAttackTarget() != null) {
|
||||
if(canEntityBeSeenThroughNonSolids(getAttackTarget())) {
|
||||
this.attackCounter += 1;
|
||||
@ -73,22 +73,22 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase {
|
||||
} else if(this.attackCounter > 0) {
|
||||
this.attackCounter -= 1;
|
||||
}
|
||||
|
||||
|
||||
if(this.targetedEntity != null) {
|
||||
double dx = targetedEntity.posX - posX;
|
||||
double dy = targetedEntity.posY - posY;
|
||||
double dz = targetedEntity.posZ - posZ;
|
||||
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
|
||||
this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(dx, dz) * 180.0D / Math.PI);
|
||||
this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(dy, f3) * 180.0D / Math.PI);
|
||||
float f3 = MathHelper.sqrt_double(dx * dx + dz * dz);
|
||||
this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI);
|
||||
this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
|
||||
|
||||
super.onUpdate();
|
||||
|
||||
|
||||
if(this.targetedEntity != null) {
|
||||
double dx = targetedEntity.posX - posX;
|
||||
double dy = targetedEntity.posY - posY;
|
||||
|
||||
@ -28,8 +28,6 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
|
||||
|
||||
//TODO: clean-room implementation of the movement behavior classes (again)
|
||||
|
||||
private final WormMovementHeadNT movement = new WormMovementHeadNT(this);
|
||||
|
||||
public EntityBOTPrimeHead(World world) {
|
||||
super(world);
|
||||
this.experienceValue = 1000;
|
||||
@ -58,7 +56,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
|
||||
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) {
|
||||
|
||||
if(super.attackEntityFrom(par1DamageSource, par2)) {
|
||||
this.dmgCooldown = 4;
|
||||
this.dmgCooldown = 10;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -95,7 +93,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
|
||||
this.updateEntityActionState();
|
||||
super.updateAITasks();
|
||||
|
||||
this.movement.updateMovement();
|
||||
updateHeadMovement();
|
||||
|
||||
if((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) {
|
||||
if(this.targetedEntity != null) {
|
||||
@ -164,4 +162,79 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl
|
||||
this.spawnPoint.set(nbt.getInteger("spawnX"), nbt.getInteger("spawnY"), nbt.getInteger("spawnZ"));
|
||||
}
|
||||
|
||||
protected void updateHeadMovement() {
|
||||
|
||||
double deltaX = this.waypointX - this.posX;
|
||||
double deltaY = this.waypointY - this.posY;
|
||||
double deltaZ = this.waypointZ - this.posZ;
|
||||
double deltaSq = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ;
|
||||
|
||||
if(this.courseChangeCooldown-- <= 0) {
|
||||
|
||||
this.courseChangeCooldown += this.getRNG().nextInt(5) + 2;
|
||||
deltaSq = MathHelper.sqrt_double(deltaSq);
|
||||
|
||||
if(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ < this.maxSpeed) {
|
||||
|
||||
if(!this.isCourseTraversable()) {
|
||||
deltaSq *= 8.0D;
|
||||
}
|
||||
|
||||
double moverSpeed = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue();
|
||||
this.motionX += deltaX / deltaSq * moverSpeed;
|
||||
this.motionY += deltaY / deltaSq * moverSpeed;
|
||||
this.motionZ += deltaZ / deltaSq * moverSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
if(!this.isCourseTraversable()) {
|
||||
this.motionY -= this.fallSpeed;
|
||||
}
|
||||
|
||||
if(this.dmgCooldown > 0) {
|
||||
this.dmgCooldown -= 1;
|
||||
}
|
||||
|
||||
this.aggroCooldown -= 1;
|
||||
|
||||
if(this.getAttackTarget() != null) {
|
||||
|
||||
if(this.aggroCooldown <= 0) {
|
||||
this.targetedEntity = this.getAttackTarget();
|
||||
this.aggroCooldown = 20;
|
||||
}
|
||||
|
||||
} else if(this.targetedEntity == null) {
|
||||
this.waypointX = this.spawnPoint.posX - 50 + this.getRNG().nextInt(100);
|
||||
this.waypointY = this.spawnPoint.posY - 30 + this.getRNG().nextInt(60);
|
||||
this.waypointZ = this.spawnPoint.posZ - 50 + this.getRNG().nextInt(100);
|
||||
}
|
||||
|
||||
this.rotationYaw = -(float) -(Math.atan2(this.motionX, this.motionZ) * 180.0F / Math.PI);
|
||||
this.rotationPitch = (float) -(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI);
|
||||
|
||||
if(this.targetedEntity != null && this.targetedEntity .getDistanceSqToEntity(this) < this.attackRange * this.attackRange) {
|
||||
|
||||
if(this.wasNearGround || this.canFly) {
|
||||
|
||||
this.waypointX = this.targetedEntity.posX;
|
||||
this.waypointY = this.targetedEntity.posY;
|
||||
this.waypointZ = this.targetedEntity.posZ;
|
||||
|
||||
if(this.getRNG().nextInt(80) == 0 && this.posY > this.surfaceY && !this.isCourseTraversable()) {
|
||||
this.wasNearGround = false;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
this.waypointX = this.targetedEntity.posX;
|
||||
this.waypointY = 10.0D;
|
||||
this.waypointZ = this.targetedEntity.posZ;
|
||||
|
||||
if(this.posY < 15.0D) {
|
||||
this.wasNearGround = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,55 +1,53 @@
|
||||
package com.hbm.entity.mob.botprime;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityCreature;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class EntityBurrowingNT extends EntityCreature {
|
||||
|
||||
|
||||
protected float dragInAir;
|
||||
protected float dragInGround;
|
||||
|
||||
|
||||
public EntityBurrowingNT(World world) {
|
||||
super(world);
|
||||
}
|
||||
|
||||
protected void fall(float dist) { }
|
||||
|
||||
|
||||
protected void fall(float dist) {
|
||||
}
|
||||
|
||||
public float getEyeHeight() {
|
||||
return this.height * 0.5F;
|
||||
}
|
||||
|
||||
|
||||
public boolean getIsHead() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void updateFallState(double distFallen, boolean onGround) { }
|
||||
|
||||
public void moveEntityWithHeading(float strafe, float forward) {
|
||||
|
||||
float drag = this.dragInGround;
|
||||
|
||||
if((!isEntityInsideOpaqueBlock()) && (!isInWater()) && (!handleLavaMovement())) {
|
||||
drag = this.dragInAir;
|
||||
} else if(this.getRNG().nextInt(100) == 0) {
|
||||
//Block b = worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ));
|
||||
//this.playSound(b.stepSound.getStepResourcePath(), 5F, 1F);
|
||||
}
|
||||
|
||||
if (!getIsHead()) {
|
||||
drag *= 0.9F;
|
||||
}
|
||||
|
||||
moveFlying(strafe, forward, 0.02F);
|
||||
|
||||
moveEntity(this.motionX, this.motionY, this.motionZ);
|
||||
|
||||
this.motionX *= drag;
|
||||
this.motionY *= drag;
|
||||
this.motionZ *= drag;
|
||||
}
|
||||
|
||||
public boolean isOnLadder() {
|
||||
return false;
|
||||
}
|
||||
protected void updateFallState(double distFallen, boolean onGround) {
|
||||
}
|
||||
|
||||
public void moveEntityWithHeading(float strafe, float forward) {
|
||||
|
||||
float drag = this.dragInGround;
|
||||
|
||||
if(!isEntityInsideOpaqueBlock() && !isInWater() && !handleLavaMovement()) {
|
||||
drag = this.dragInAir;
|
||||
}
|
||||
|
||||
if(!getIsHead()) {
|
||||
drag *= 0.9F;
|
||||
}
|
||||
|
||||
moveFlying(strafe, forward, 0.02F);
|
||||
|
||||
moveEntity(this.motionX, this.motionY, this.motionZ);
|
||||
|
||||
this.motionX *= drag;
|
||||
this.motionY *= drag;
|
||||
this.motionZ *= drag;
|
||||
}
|
||||
|
||||
public boolean isOnLadder() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,12 @@ import java.util.List;
|
||||
|
||||
import net.minecraft.command.IEntitySelector;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.EnumDifficulty;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@ -32,7 +34,6 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
|
||||
private int headID;
|
||||
private int partNum;
|
||||
protected boolean didCheck;
|
||||
protected double bodySpeed;
|
||||
protected double maxBodySpeed;
|
||||
protected double segmentDistance;
|
||||
protected double knockbackDivider;
|
||||
@ -103,12 +104,8 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
|
||||
if((this.targetedEntity != null) && (this.targetedEntity.isDead)) {
|
||||
this.targetedEntity = null;
|
||||
}
|
||||
/*if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) {
|
||||
this.entityAge = 0;
|
||||
}*/
|
||||
if(this.posY < -10.0D) {
|
||||
setPositionAndUpdate(this.posX, 128.0D, this.posZ);
|
||||
this.motionY = 0.0D;
|
||||
this.motionY = 1D;
|
||||
} else if(this.posY < 3.0D) {
|
||||
this.motionY = 0.3D;
|
||||
}
|
||||
@ -121,7 +118,7 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
|
||||
protected void attackEntitiesInList(List<Entity> targets) {
|
||||
|
||||
for(Entity target : targets) {
|
||||
if(((target instanceof EntityLivingBase)) && (canAttackClass(target.getClass())) && ((!(target instanceof EntityWormBaseNT)) || (((EntityWormBaseNT) target).getHeadID() != this.getHeadID()))) {
|
||||
if((target instanceof EntityLivingBase) && canAttackClass(target.getClass()) && (!(target instanceof EntityWormBaseNT) || ((EntityWormBaseNT) target).getHeadID() != this.getHeadID())) {
|
||||
attackEntityAsMob(target);
|
||||
}
|
||||
}
|
||||
@ -155,12 +152,10 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
|
||||
public abstract float getAttackStrength(Entity paramsa);
|
||||
|
||||
@Override
|
||||
public void addVelocity(double x, double y, double z) {
|
||||
}
|
||||
public void addVelocity(double x, double y, double z) { }
|
||||
|
||||
@Override
|
||||
public void faceEntity(Entity entity, float yaw, float pitch) {
|
||||
}
|
||||
public void faceEntity(Entity entity, float yaw, float pitch) { }
|
||||
|
||||
protected boolean isCourseTraversable() {
|
||||
return (this.canFly) || (isEntityInsideOpaqueBlock());
|
||||
@ -187,4 +182,59 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT {
|
||||
setHeadID(nbt.getInteger("wormID"));
|
||||
}
|
||||
|
||||
protected void updateMovement() {
|
||||
|
||||
double targetingRange = 128.0D;
|
||||
|
||||
if(this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < targetingRange * targetingRange) {
|
||||
this.waypointX = this.targetedEntity.posX;
|
||||
this.waypointY = this.targetedEntity.posY;
|
||||
this.waypointZ = this.targetedEntity.posZ;
|
||||
}
|
||||
|
||||
if((this.ticksExisted % 60 == 0 || this.ticksExisted == 1) && (this.targetedEntity == null || this.followed == null)) {
|
||||
findEntityToFollow(this.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.boundingBox.expand(this.rangeForParts, this.rangeForParts, this.rangeForParts), EntityWormBaseNT.wormSelector));
|
||||
}
|
||||
|
||||
double deltaX = this.waypointX - this.posX;
|
||||
double deltaY = this.waypointY - this.posY;
|
||||
double deltaZ = this.waypointZ - this.posZ;
|
||||
double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
|
||||
|
||||
if(this.targetedEntity != null) {
|
||||
this.faceEntity(this.targetedEntity, 180.0F, 180.0F);
|
||||
}
|
||||
|
||||
double speed = Math.max(0.0D, Math.min(deltaDist - this.segmentDistance, this.maxBodySpeed));
|
||||
|
||||
if(deltaDist < this.segmentDistance * 0.895D) {
|
||||
this.motionX *= 0.8D;
|
||||
this.motionY *= 0.8D;
|
||||
this.motionZ *= 0.8D;
|
||||
} else {
|
||||
this.motionX = (deltaX / deltaDist * speed);
|
||||
this.motionY = (deltaY / deltaDist * speed);
|
||||
this.motionZ = (deltaZ / deltaDist * speed);
|
||||
}
|
||||
}
|
||||
|
||||
protected void findEntityToFollow(List<EntityWormBaseNT> segments) {
|
||||
|
||||
for(EntityWormBaseNT segment : segments) {
|
||||
|
||||
if(segment.getHeadID() == this.getHeadID()) {
|
||||
|
||||
if(segment.getIsHead()) {
|
||||
if(this.getPartNumber() == 0) {
|
||||
this.targetedEntity = ((Entity) segment);
|
||||
}
|
||||
this.followed = ((EntityLivingBase) segment);
|
||||
|
||||
} else if(segment.getPartNumber() == this.getPartNumber() - 1) {
|
||||
this.targetedEntity = ((Entity) segment);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.didCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
}
|
||||
@ -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"));
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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"));
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,8 @@ package com.hbm.explosion;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
@ -37,7 +39,7 @@ public class ExplosionHurtUtil {
|
||||
double interpolation = 1 - (dist / radius);
|
||||
float rad = (float) (outer + (inner - outer) * interpolation);
|
||||
|
||||
ContaminationUtil.applyRadData(entity, rad);
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -30,6 +30,8 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
private float radiation;
|
||||
private float digamma;
|
||||
private int asbestos;
|
||||
private float radEnv;
|
||||
private float radBuf;
|
||||
|
||||
public HbmLivingProps(EntityLivingBase entity) {
|
||||
this.entity = entity;
|
||||
@ -69,6 +71,24 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
data.setRadiation(entity, radiation);
|
||||
}
|
||||
|
||||
/// RAD ENV ///
|
||||
public static float getRadEnv(EntityLivingBase entity) {
|
||||
return getData(entity).radEnv;
|
||||
}
|
||||
|
||||
public static void setRadEnv(EntityLivingBase entity, float rad) {
|
||||
getData(entity).radEnv = rad;
|
||||
}
|
||||
|
||||
/// RAD BUF ///
|
||||
public static float getRadBuf(EntityLivingBase entity) {
|
||||
return getData(entity).radBuf;
|
||||
}
|
||||
|
||||
public static void setRadBuf(EntityLivingBase entity, float rad) {
|
||||
getData(entity).radBuf = rad;
|
||||
}
|
||||
|
||||
/// DIGAMA ///
|
||||
public static float getDigamma(EntityLivingBase entity) {
|
||||
return getData(entity).digamma;
|
||||
|
||||
@ -11,6 +11,8 @@ import com.hbm.packet.ExtPropPacket;
|
||||
import com.hbm.saveddata.AuxSavedData;
|
||||
import com.hbm.saveddata.RadiationSavedData;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.block.Block;
|
||||
@ -29,11 +31,19 @@ public class EntityEffectHandler {
|
||||
|
||||
public static void onUpdate(EntityLivingBase entity) {
|
||||
|
||||
if(!entity.worldObj.isRemote && entity instanceof EntityPlayerMP) {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
HbmLivingProps props = HbmLivingProps.getData(entity);
|
||||
props.saveNBTData(data);
|
||||
PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity);
|
||||
if(!entity.worldObj.isRemote) {
|
||||
|
||||
if(entity.ticksExisted % 20 == 0) {
|
||||
HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity));
|
||||
HbmLivingProps.setRadEnv(entity, 0);
|
||||
}
|
||||
|
||||
if(entity instanceof EntityPlayerMP) {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
HbmLivingProps props = HbmLivingProps.getData(entity);
|
||||
props.saveNBTData(data);
|
||||
PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity);
|
||||
}
|
||||
}
|
||||
|
||||
handleRadiation(entity);
|
||||
@ -50,9 +60,6 @@ public class EntityEffectHandler {
|
||||
RadiationSavedData data = RadiationSavedData.getData(world);
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)
|
||||
return;
|
||||
int ix = (int)MathHelper.floor_double(entity.posX);
|
||||
int iy = (int)MathHelper.floor_double(entity.posY);
|
||||
int iz = (int)MathHelper.floor_double(entity.posZ);
|
||||
@ -64,14 +71,17 @@ public class EntityEffectHandler {
|
||||
rad = RadiationConfig.hellRad;
|
||||
|
||||
if(rad > 0) {
|
||||
ContaminationUtil.applyRadData(entity, rad / 20F);
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad / 20F);
|
||||
}
|
||||
|
||||
if(entity.worldObj.isRaining() && RadiationConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) {
|
||||
|
||||
ContaminationUtil.applyRadData(entity, RadiationConfig.cont * 0.0005F);
|
||||
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, RadiationConfig.cont * 0.0005F);
|
||||
}
|
||||
|
||||
if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)
|
||||
return;
|
||||
|
||||
Random rand = new Random(entity.getEntityId());
|
||||
|
||||
if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) {
|
||||
|
||||
@ -7,6 +7,8 @@ import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.WeightedRandomObject;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
@ -44,7 +46,8 @@ public abstract class WeaponAbility {
|
||||
@Override
|
||||
public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) {
|
||||
|
||||
ContaminationUtil.applyRadData(victim, rad);
|
||||
if(victim instanceof EntityLivingBase)
|
||||
ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, rad);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -30,10 +30,14 @@ public class CyclotronRecipes {
|
||||
|
||||
/// LITHIUM START ///
|
||||
int liA = 50;
|
||||
|
||||
|
||||
makeRecipe(lithium, liAmat, "dustLithium", new ItemStack(ModItems.powder_beryllium), liA);
|
||||
makeRecipe(lithium, liAmat, "dustBeryllium", new ItemStack(ModItems.powder_boron), liA);
|
||||
makeRecipe(lithium, liAmat, "dustBoron", new ItemStack(ModItems.powder_coal), liA);
|
||||
makeRecipe(lithium, liAmat, "dustNetherQuartz", new ItemStack(ModItems.powder_fire), liA);
|
||||
makeRecipe(lithium, liAmat, "dustPhosphorus", new ItemStack(ModItems.sulfur), liA);
|
||||
makeRecipe(lithium, liAmat, "dustIron", new ItemStack(ModItems.powder_cobalt), liA);
|
||||
makeRecipe(lithium, liAmat, new ComparableStack(ModItems.powder_strontium), new ItemStack(ModItems.powder_zirconium), liA);
|
||||
makeRecipe(lithium, liAmat, "dustGold", new ItemStack(ModItems.nugget_mercury), liA);
|
||||
makeRecipe(lithium, liAmat, "dustPolonium", new ItemStack(ModItems.powder_astatine), liA);
|
||||
makeRecipe(lithium, liAmat, "dustLanthanium", new ItemStack(ModItems.powder_cerium), liA);
|
||||
@ -45,7 +49,8 @@ public class CyclotronRecipes {
|
||||
|
||||
/// BERYLLIUM START ///
|
||||
int beA = 25;
|
||||
|
||||
|
||||
makeRecipe(beryllium, beAmat, "dustLithium", new ItemStack(ModItems.powder_boron), beA);
|
||||
makeRecipe(beryllium, beAmat, "dustNetherQuartz", new ItemStack(ModItems.sulfur), beA);
|
||||
makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA);
|
||||
makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA);
|
||||
@ -57,7 +62,8 @@ public class CyclotronRecipes {
|
||||
|
||||
/// CARBON START ///
|
||||
int caA = 10;
|
||||
|
||||
|
||||
makeRecipe(carbon, caAmat, "dustBoron", new ItemStack(ModItems.powder_aluminium), caA);
|
||||
makeRecipe(carbon, caAmat, "dustSulfur", new ItemStack(ModItems.powder_titanium), caA);
|
||||
makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_cobalt), caA);
|
||||
makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA);
|
||||
|
||||
@ -204,6 +204,31 @@ public class ShredderRecipes {
|
||||
ShredderRecipes.setRecipe(ModBlocks.chain, new ItemStack(ModItems.powder_steel_tiny, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3));
|
||||
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_red, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_marked, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_red, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_marked, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_red, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_marked, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green_rusted, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_red, new ItemStack(ModItems.powder_steel, 1));
|
||||
ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_marked, new ItemStack(ModItems.powder_steel, 1));
|
||||
|
||||
ShredderRecipes.setRecipe(ModBlocks.turret_light, new ItemStack(ModItems.powder_steel, 16));
|
||||
ShredderRecipes.setRecipe(ModBlocks.turret_heavy, new ItemStack(ModItems.powder_steel, 16));
|
||||
ShredderRecipes.setRecipe(ModBlocks.turret_flamer, new ItemStack(ModItems.powder_steel, 16));
|
||||
|
||||
@ -40,7 +40,7 @@ public class GUIRBMKRod extends GuiContainer {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
if(rod.slots[0] != null) {
|
||||
if(rod.slots[0] != null && rod.slots[0].getItem() instanceof ItemRBMKRod) {
|
||||
drawTexturedModalRect(guiLeft + 34, guiTop + 21, 176, 0, 18, 67);
|
||||
|
||||
double depletion = 1D - ItemRBMKRod.getEnrichment(rod.slots[0]);
|
||||
|
||||
@ -2356,7 +2356,7 @@ public class ModItems {
|
||||
plate_paa = new ItemCustomLore().setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa");
|
||||
board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper");
|
||||
bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel");
|
||||
pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel");
|
||||
pipes_steel = new ItemCustomLore().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel");
|
||||
drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium");
|
||||
plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium");
|
||||
plate_euphemium = new ItemCustomLore().setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium");
|
||||
@ -2811,7 +2811,7 @@ public class ModItems {
|
||||
cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6");
|
||||
cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter");
|
||||
cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium");
|
||||
cell_tritium = new ItemHazard(0.5F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium");
|
||||
cell_tritium = new ItemHazard(0.001F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium");
|
||||
cell_sas3 = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3");
|
||||
cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium");
|
||||
|
||||
@ -3169,50 +3169,50 @@ public class ModItems {
|
||||
.setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu");
|
||||
rbmk_fuel_thmeu = new ItemRBMKRod("Thorium with MEU Driver Fuel")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(50)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu");
|
||||
rbmk_fuel_lep = new ItemRBMKRod("Low Enriched Plutonium-239")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(120)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.puf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep");
|
||||
rbmk_fuel_mep = new ItemRBMKRod("Medium Enriched Plutonium-239")
|
||||
.setYield(100000000D)
|
||||
.setStats(100, 20)
|
||||
.setStats(150, 20)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep");
|
||||
rbmk_fuel_men = new ItemRBMKRod("Medium Enriched Neptunium-237")
|
||||
.setYield(100000000D)
|
||||
.setStats(100, 20)
|
||||
.setStats(130)
|
||||
.setMeltingPoint(2000)
|
||||
.setNeutronTypes(NType.FAST, NType.FAST)
|
||||
.addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men");
|
||||
rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(130)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox");
|
||||
rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(150)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les");
|
||||
rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(200)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes");
|
||||
rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326")
|
||||
.setYield(100000000D)
|
||||
.setStats(100)
|
||||
.setStats(250)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes");
|
||||
@ -3238,7 +3238,7 @@ public class ModItems {
|
||||
.setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be");
|
||||
rbmk_fuel_balefire = new ItemRBMKRod("Draconic Flames")
|
||||
.setYield(100000000D)
|
||||
.setStats(60, 35)
|
||||
.setStats(300, 35)
|
||||
.setMeltingPoint(2000)
|
||||
.addRadiation(800000F).toItem()
|
||||
.setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire");
|
||||
|
||||
@ -9,6 +9,8 @@ import com.hbm.interfaces.IItemHazard;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.modules.ItemHazardModule;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -115,7 +117,7 @@ public class ItemModInsert extends ItemArmorMod implements IItemHazard {
|
||||
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
|
||||
|
||||
if(!entity.worldObj.isRemote && this == ModItems.insert_polonium) {
|
||||
ContaminationUtil.applyRadDirect(entity, 5);
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
22
src/main/java/com/hbm/items/block/ItemBlockDecoPipe.java
Normal 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");
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,8 @@ import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -82,20 +84,20 @@ public class ItemEnergy extends Item {
|
||||
player.heal(4F);
|
||||
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1));
|
||||
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 30 * 20, 1));
|
||||
ContaminationUtil.applyRadDirect(player, 5.0F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
|
||||
}
|
||||
if(this == ModItems.bottle_cherry) {
|
||||
player.heal(6F);
|
||||
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0));
|
||||
player.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 2));
|
||||
ContaminationUtil.applyRadDirect(player, 5.0F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
|
||||
}
|
||||
if(this == ModItems.bottle_quantum) {
|
||||
player.heal(10F);
|
||||
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1));
|
||||
player.addPotionEffect(new PotionEffect(Potion.resistance.id, 30 * 20, 2));
|
||||
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 1));
|
||||
ContaminationUtil.applyRadDirect(player, 15.0F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F);
|
||||
}
|
||||
if(this == ModItems.bottle2_korl) {
|
||||
player.heal(6);
|
||||
@ -127,7 +129,7 @@ public class ItemEnergy extends Item {
|
||||
player.addPotionEffect(new PotionEffect(Potion.resistance.id, 120 * 20, 2));
|
||||
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2));
|
||||
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1));
|
||||
ContaminationUtil.applyRadDirect(player, 5.0F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F);
|
||||
}
|
||||
if(this == ModItems.bottle_rad) {
|
||||
player.heal(10F);
|
||||
@ -136,7 +138,7 @@ public class ItemEnergy extends Item {
|
||||
player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 120 * 20, 0));
|
||||
player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4));
|
||||
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1));
|
||||
ContaminationUtil.applyRadDirect(player, 15.0F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F);
|
||||
}
|
||||
if(this == ModItems.bottle2_sunset) {
|
||||
player.heal(6);
|
||||
|
||||
@ -5,6 +5,8 @@ import java.util.Random;
|
||||
import com.hbm.blocks.bomb.BlockCrashedBomb;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
@ -43,7 +45,7 @@ public class ItemCell extends Item {
|
||||
}
|
||||
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
ContaminationUtil.applyRadDirect(player, 50F);
|
||||
ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.CREATIVE, 50.0F);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -403,6 +403,11 @@ public class ItemCustomLore extends Item {
|
||||
if(this == ModItems.billet_mox_fuel) {
|
||||
list.add(EnumChatFormatting.ITALIC + "Pocket-Moxie!");
|
||||
}
|
||||
|
||||
if(this == ModItems.ingot_lanthanium)
|
||||
{
|
||||
list.add("Or 'Lanthanum' for stupid people.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -5,12 +5,14 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorFSB;
|
||||
import com.hbm.saveddata.RadiationSavedData;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -25,21 +27,18 @@ public class ItemGeigerCounter extends Item {
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) {
|
||||
|
||||
if(!(entity instanceof EntityLivingBase) || world.isRemote)
|
||||
return;
|
||||
|
||||
if(entity instanceof EntityPlayer) {
|
||||
|
||||
if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound)
|
||||
return;
|
||||
}
|
||||
|
||||
setInt(stack, getInt(stack, "timer") + 1, "timer");
|
||||
if(getInt(stack, "timer") == 10) {
|
||||
setInt(stack, 0, "timer");
|
||||
setInt(stack, check(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ), "ticker");
|
||||
}
|
||||
float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity);
|
||||
|
||||
int x = getInt(stack, "ticker");
|
||||
|
||||
if(getInt(stack, "timer") % 5 == 0) {
|
||||
if(world.getTotalWorldTime() % 5 == 0) {
|
||||
if(x > 0) {
|
||||
List<Integer> list = new ArrayList<Integer>();
|
||||
|
||||
@ -70,16 +69,16 @@ public class ItemGeigerCounter extends Item {
|
||||
}
|
||||
}
|
||||
|
||||
static void setInt(ItemStack stack, int i, String name) {
|
||||
static void setFloat(ItemStack stack, float i, String name) {
|
||||
if(!stack.hasTagCompound())
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
|
||||
stack.stackTagCompound.setInteger(name, i);
|
||||
stack.stackTagCompound.setFloat(name, i);
|
||||
}
|
||||
|
||||
public static int getInt(ItemStack stack, String name) {
|
||||
public static float getFloat(ItemStack stack, String name) {
|
||||
if(stack.hasTagCompound())
|
||||
return stack.stackTagCompound.getInteger(name);
|
||||
return stack.stackTagCompound.getFloat(name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -93,20 +92,6 @@ public class ItemGeigerCounter extends Item {
|
||||
|
||||
return rads;
|
||||
}
|
||||
|
||||
//what?!
|
||||
/*@Override
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2)
|
||||
{
|
||||
if(world.getBlock(x, y, z) == ModBlocks.block_red_copper) {
|
||||
world.func_147480_a(x, y, z, false);
|
||||
player.inventory.consumeInventoryItem(ModItems.geiger_counter);
|
||||
player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner));
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
@ -152,7 +152,8 @@ public class Library {
|
||||
world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base ||
|
||||
world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small ||
|
||||
world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher ||
|
||||
world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table) {
|
||||
world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table ||
|
||||
world.getBlock(x, y, z) == ModBlocks.rbmk_loader) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (3864)";
|
||||
public static final String VERSION = "1.0.27 BETA (3868)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -44,7 +44,6 @@ import com.hbm.entity.missile.*;
|
||||
import com.hbm.entity.mob.*;
|
||||
import com.hbm.entity.mob.botprime.EntityBOTPrimeBody;
|
||||
import com.hbm.entity.mob.botprime.EntityBOTPrimeHead;
|
||||
import com.hbm.entity.mob.sodtekhnologiyah.EntityBallsOTronSegment;
|
||||
import com.hbm.entity.particle.*;
|
||||
import com.hbm.entity.projectile.*;
|
||||
import com.hbm.handler.HbmKeybinds.EnumKeybind;
|
||||
@ -497,7 +496,6 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityTaintCrab.class, new RenderTaintCrab());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMaskMan.class, new RenderMaskMan());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBallsOTronSegment.class, new RenderBalls());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeHead.class, new RenderWormHead());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeBody.class, new RenderWormBody());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityDuck.class, new RenderDuck(new ModelChicken(), 0.3F));
|
||||
|
||||
@ -622,8 +622,8 @@ public class CraftingManager {
|
||||
GameRegistry.addRecipe(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ModItems.coke, 'S', Items.stick });
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', "plateSteel", 'C', ModBlocks.steel_scaffold }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete_smooth }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete }));
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.struct_scaffold, 1), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.fluid_duct, 'C', ModBlocks.red_cable });
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', "plateAluminum", 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam }));
|
||||
@ -736,6 +736,7 @@ public class CraftingManager {
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank });
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank });
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "PPP", "PCP", "PPP", 'C', ModItems.circuit_targeting_tier3, 'P', Items.potato });
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', "plateSteel", 'C', "ingotCopper", 'B', ModItems.tank_steel }));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_sturdy, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "plankWood" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_iron, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotIron" }));
|
||||
@ -748,6 +749,37 @@ public class CraftingManager {
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_steel, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotSteel" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_tungsten, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotTungsten" }));
|
||||
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel });
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim });
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed });
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_quad });
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "plateSteel" }));
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_quad, 4), new Object[] { "PP", "PP", 'P', ModBlocks.deco_pipe });
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', Blocks.iron_bars });
|
||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', Blocks.iron_bars });
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dustIron" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeRed" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeRed" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeRed" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeRed" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dyeGreen" }));
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dyeGreen" }));
|
||||
|
||||
if(GeneralConfig.enableBabyMode) {
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, ModItems.niter });
|
||||
|
||||
@ -1007,6 +1007,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom pipe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe.obj"));
|
||||
public static final IModelCustom pipe_rim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj"));
|
||||
public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj"));
|
||||
public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj"));
|
||||
|
||||
public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj"));
|
||||
public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj"));
|
||||
|
||||
@ -6,6 +6,8 @@ import com.hbm.inventory.BreederRecipes;
|
||||
import com.hbm.util.ArmorUtil;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -65,7 +67,7 @@ public class ItemHazardModule {
|
||||
public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean currentItem) {
|
||||
|
||||
if(this.radiation > 0)
|
||||
ContaminationUtil.applyRadData(entity, this.radiation * mod / 20F);
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, this.radiation * mod / 20F);
|
||||
|
||||
if(this.digamma > 0)
|
||||
ContaminationUtil.applyDigammaData(entity, this.digamma * mod / 20F);
|
||||
|
||||
@ -12,6 +12,8 @@ import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -113,8 +115,7 @@ public class HbmPotion extends Potion {
|
||||
}
|
||||
}
|
||||
if(this == radiation) {
|
||||
|
||||
ContaminationUtil.applyRadData(entity, (float)(level + 1F) * 0.05F);
|
||||
ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F);
|
||||
}
|
||||
if(this == radaway) {
|
||||
|
||||
|
||||
@ -47,6 +47,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler {
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, 0, false);
|
||||
}
|
||||
|
||||
if(pipe.rType == 3) {
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, 0, false);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, 0, false);
|
||||
}
|
||||
|
||||
tessellator.draw();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
@ -96,6 +103,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler {
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, rot, pitch, true);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, rot, pitch, true);
|
||||
}
|
||||
|
||||
if(pipe.rType == 3) {
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, rot, pitch, true);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, rot, pitch, true);
|
||||
}
|
||||
|
||||
tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F);
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ public class SatelliteResonator extends Satellite {
|
||||
public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) {
|
||||
|
||||
if(!(player instanceof EntityPlayerMP))
|
||||
return;
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
player.mountEntity(null);
|
||||
|
||||
@ -327,6 +327,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv
|
||||
|
||||
power -= 250;
|
||||
|
||||
if(power > 0)
|
||||
power = 0;
|
||||
|
||||
if(this.dualCookTime == processingSpeed)
|
||||
{
|
||||
this.dualCookTime = 0;
|
||||
|
||||
@ -129,7 +129,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
||||
}
|
||||
}
|
||||
|
||||
private void coolPassively() {
|
||||
protected void coolPassively() {
|
||||
|
||||
this.heat -= this.passiveCooling();
|
||||
|
||||
@ -137,33 +137,47 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
||||
heat = 20D;
|
||||
}
|
||||
|
||||
protected static boolean diag = false;
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
if(!diag) {
|
||||
super.readFromNBT(nbt);
|
||||
}
|
||||
|
||||
this.heat = nbt.getDouble("heat");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
if(!diag) {
|
||||
super.writeToNBT(nbt);
|
||||
}
|
||||
|
||||
nbt.setDouble("heat", this.heat);
|
||||
}
|
||||
|
||||
public void networkPack(NBTTagCompound nbt, int range) {
|
||||
|
||||
diag = true;
|
||||
if(!worldObj.isRemote)
|
||||
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
|
||||
diag = false;
|
||||
}
|
||||
|
||||
public void networkUnpack(NBTTagCompound nbt) {
|
||||
|
||||
diag = true;
|
||||
this.readFromNBT(nbt);
|
||||
diag = false;
|
||||
}
|
||||
|
||||
public void getDiagData(NBTTagCompound nbt) {
|
||||
diag = true;
|
||||
this.writeToNBT(nbt);
|
||||
diag = false;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
@ -93,6 +93,25 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
|
||||
public void fillFluidInit(FluidType type) {
|
||||
|
||||
fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type);
|
||||
|
||||
if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) {
|
||||
|
||||
fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type);
|
||||
fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type);
|
||||
}
|
||||
|
||||
if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) {
|
||||
|
||||
fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type);
|
||||
fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type);
|
||||
fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -143,13 +143,16 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
NBTTagList list = nbt.getTagList("items", 10);
|
||||
|
||||
for(int i = 0; i < list.tagCount(); i++) {
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
byte b0 = nbt1.getByte("slot");
|
||||
if(b0 >= 0 && b0 < slots.length) {
|
||||
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
|
||||
if(!diag) {
|
||||
NBTTagList list = nbt.getTagList("items", 10);
|
||||
|
||||
for(int i = 0; i < list.tagCount(); i++) {
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
byte b0 = nbt1.getByte("slot");
|
||||
if(b0 >= 0 && b0 < slots.length) {
|
||||
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -157,16 +160,19 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
for(int i = 0; i < slots.length; i++) {
|
||||
if(slots[i] != null) {
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
nbt1.setByte("slot", (byte) i);
|
||||
slots[i].writeToNBT(nbt1);
|
||||
list.appendTag(nbt1);
|
||||
|
||||
if(!diag) {
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
for(int i = 0; i < slots.length; i++) {
|
||||
if(slots[i] != null) {
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
nbt1.setByte("slot", (byte) i);
|
||||
slots[i].writeToNBT(nbt1);
|
||||
list.appendTag(nbt1);
|
||||
}
|
||||
}
|
||||
nbt.setTag("items", list);
|
||||
}
|
||||
nbt.setTag("items", list);
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ public class ContaminationUtil {
|
||||
}
|
||||
|
||||
/// RADIATION ///
|
||||
public static void applyRadData(Entity e, float f) {
|
||||
private static void applyRadData(Entity e, float f) {
|
||||
|
||||
if(!(e instanceof EntityLivingBase))
|
||||
return;
|
||||
@ -51,31 +51,31 @@ public class ContaminationUtil {
|
||||
if(isRadImmune(e))
|
||||
return;
|
||||
|
||||
EntityLivingBase entity = (EntityLivingBase)e;
|
||||
|
||||
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
|
||||
return;
|
||||
|
||||
if(e instanceof EntityPlayer && e.ticksExisted < 200)
|
||||
return;
|
||||
|
||||
EntityLivingBase entity = (EntityLivingBase)e;
|
||||
|
||||
f *= calculateRadiationMod(entity);
|
||||
|
||||
HbmLivingProps.incrementRadiation(entity, f);
|
||||
}
|
||||
|
||||
public static void applyRadDirect(Entity e, float f) {
|
||||
private static void applyRadDirect(Entity e, float f) {
|
||||
|
||||
if(!(e instanceof EntityLivingBase))
|
||||
return;
|
||||
|
||||
EntityLivingBase entity = (EntityLivingBase)e;
|
||||
|
||||
if(isRadImmune(e))
|
||||
return;
|
||||
|
||||
if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)
|
||||
return;
|
||||
|
||||
EntityLivingBase entity = (EntityLivingBase)e;
|
||||
|
||||
HbmLivingProps.incrementRadiation(entity, f);
|
||||
}
|
||||
@ -179,27 +179,16 @@ public class ContaminationUtil {
|
||||
RadiationSavedData data = RadiationSavedData.getData(player.worldObj);
|
||||
Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);
|
||||
double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D;
|
||||
double env = ((int)(HbmLivingProps.getRadBuf(player) * 10D)) / 10D;
|
||||
|
||||
double res = 100.0D - ((int)(ContaminationUtil.calculateRadiationMod(player) * 10000)) / 100D;
|
||||
double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100)) / 100D;
|
||||
|
||||
String chunkPrefix = "";
|
||||
double res = ((int)(10000D - ContaminationUtil.calculateRadiationMod(player) * 10000D)) / 100D;
|
||||
double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100D)) / 100D;
|
||||
|
||||
String chunkPrefix = getPreffixFromRad(rads);
|
||||
String envPrefix = getPreffixFromRad(env);
|
||||
String radPrefix = "";
|
||||
String resPrefix = "" + EnumChatFormatting.WHITE;
|
||||
|
||||
if(rads == 0)
|
||||
chunkPrefix += EnumChatFormatting.GREEN;
|
||||
else if(rads < 1)
|
||||
chunkPrefix += EnumChatFormatting.YELLOW;
|
||||
else if(rads < 10)
|
||||
chunkPrefix += EnumChatFormatting.GOLD;
|
||||
else if(rads < 100)
|
||||
chunkPrefix += EnumChatFormatting.RED;
|
||||
else if(rads < 1000)
|
||||
chunkPrefix += EnumChatFormatting.DARK_RED;
|
||||
else
|
||||
chunkPrefix += EnumChatFormatting.DARK_GRAY;
|
||||
|
||||
if(eRad < 200)
|
||||
radPrefix += EnumChatFormatting.GREEN;
|
||||
else if(eRad < 400)
|
||||
@ -220,10 +209,31 @@ public class ContaminationUtil {
|
||||
//a *functioning* painful mess, nonetheless
|
||||
player.addChatMessage(new ChatComponentText("===== ☢ ").appendSibling(new ChatComponentTranslation("geiger.title")).appendSibling(new ChatComponentText(" ☢ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD)));
|
||||
player.addChatMessage(new ChatComponentTranslation("geiger.chunkRad").appendSibling(new ChatComponentText(" " + chunkPrefix + rads + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
|
||||
player.addChatMessage(new ChatComponentTranslation("geiger.envRad").appendSibling(new ChatComponentText(" " + envPrefix + env + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
|
||||
player.addChatMessage(new ChatComponentTranslation("geiger.playerRad").appendSibling(new ChatComponentText(" " + radPrefix + eRad + " RAD")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
|
||||
player.addChatMessage(new ChatComponentTranslation("geiger.playerRes").appendSibling(new ChatComponentText(" " + resPrefix + res + "% (" + resKoeff + ")")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)));
|
||||
}
|
||||
|
||||
public static String getPreffixFromRad(double rads) {
|
||||
|
||||
String chunkPrefix = "";
|
||||
|
||||
if(rads == 0)
|
||||
chunkPrefix += EnumChatFormatting.GREEN;
|
||||
else if(rads < 1)
|
||||
chunkPrefix += EnumChatFormatting.YELLOW;
|
||||
else if(rads < 10)
|
||||
chunkPrefix += EnumChatFormatting.GOLD;
|
||||
else if(rads < 100)
|
||||
chunkPrefix += EnumChatFormatting.RED;
|
||||
else if(rads < 1000)
|
||||
chunkPrefix += EnumChatFormatting.DARK_RED;
|
||||
else
|
||||
chunkPrefix += EnumChatFormatting.DARK_GRAY;
|
||||
|
||||
return chunkPrefix;
|
||||
}
|
||||
|
||||
public static void printDiagnosticData(EntityPlayer player) {
|
||||
|
||||
double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D;
|
||||
@ -251,13 +261,22 @@ public class ContaminationUtil {
|
||||
HAZMAT2, //preventable by heavy hazmat
|
||||
DIGAMMA, //preventable by fau armor or stability
|
||||
DIGAMMA2, //preventable by robes
|
||||
CREATIVE, //preventable by creative mode
|
||||
CREATIVE, //preventable by creative mode, for rad calculation armor piece bonuses still apply
|
||||
RAD_BYPASS, //same as creaative but fill not apply radiation resistance calculation
|
||||
NONE //not preventable
|
||||
}
|
||||
|
||||
/*
|
||||
* This system is nice but the cont types are a bit confusing. Cont types should have much better names and multiple cont types should be applicable.
|
||||
*/
|
||||
@SuppressWarnings("incomplete-switch") //just shut up
|
||||
public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) {
|
||||
|
||||
if(hazard == HazardType.RADIATION) {
|
||||
float radEnv = HbmLivingProps.getRadEnv(entity);
|
||||
HbmLivingProps.setRadEnv(entity, radEnv + amount);
|
||||
}
|
||||
|
||||
if(entity instanceof EntityPlayer) {
|
||||
|
||||
EntityPlayer player = (EntityPlayer)entity;
|
||||
@ -285,7 +304,7 @@ public class ContaminationUtil {
|
||||
|
||||
switch(hazard) {
|
||||
case MONOXIDE: entity.attackEntityFrom(ModDamageSource.monoxide, amount); break;
|
||||
case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * calculateRadiationMod(entity)); break;
|
||||
case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * (cont == ContaminationType.RAD_BYPASS ? 1 : calculateRadiationMod(entity))); break;
|
||||
case ASBESTOS: HbmLivingProps.incrementAsbestos(entity, (int)amount); break;
|
||||
case DIGAMMA: HbmLivingProps.incrementDigamma(entity, amount); break;
|
||||
}
|
||||
|
||||
@ -19,54 +19,69 @@ import net.minecraft.util.WeightedRandomChestContent;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||
|
||||
public class Bunker extends WorldGenerator
|
||||
{
|
||||
public class Bunker extends WorldGenerator {
|
||||
Block Block1 = ModBlocks.reinforced_brick;
|
||||
Block Block3 = ModBlocks.reinforced_light;
|
||||
Block Block4 = ModBlocks.deco_steel;
|
||||
Block Block5 = ModBlocks.deco_tungsten;
|
||||
|
||||
protected Block[] GetValidSpawnBlocks()
|
||||
{
|
||||
return new Block[]
|
||||
{
|
||||
Blocks.grass,
|
||||
Blocks.dirt,
|
||||
Blocks.stone,
|
||||
Blocks.sand,
|
||||
Blocks.sandstone,
|
||||
};
|
||||
|
||||
protected Block[] GetValidSpawnBlocks() {
|
||||
return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generate(World world, Random rand, int x, int y, int z)
|
||||
{
|
||||
public boolean generate(World world, Random rand, int x, int y, int z) {
|
||||
int i = rand.nextInt(1);
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
generate_r0(world, rand, x, y, z);
|
||||
if(i == 0) {
|
||||
generate_r0(world, rand, x, y, z);
|
||||
}
|
||||
|
||||
return true;
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public boolean generate_r0(World world, Random rand, int x, int y, int z)
|
||||
{
|
||||
public boolean LocationIsValidSpawn(World world, int x, int y, int z) {
|
||||
|
||||
Block checkBlock = world.getBlock(x, y - 1, z);
|
||||
Block blockAbove = world.getBlock(x, y, z);
|
||||
Block blockBelow = world.getBlock(x, y - 2, z);
|
||||
|
||||
for(Block i : GetValidSpawnBlocks()) {
|
||||
if(blockAbove != Blocks.air) {
|
||||
return false;
|
||||
}
|
||||
if(checkBlock == i) {
|
||||
return true;
|
||||
} else if(checkBlock == Blocks.snow_layer && blockBelow == i) {
|
||||
return true;
|
||||
} else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean generate_r0(World world, Random rand, int x, int y, int z) {
|
||||
y += 1;
|
||||
|
||||
for(int i = 0; i < 11; i++)
|
||||
if(!LocationIsValidSpawn(world, x + 9, y, z + 9)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!LocationIsValidSpawn(world, x, y, z))
|
||||
{
|
||||
for(int j = 0; j < 9; j++)
|
||||
{
|
||||
for(int k = 0; k < 15; k++)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 11; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
for(int k = 0; k < 15; k++) {
|
||||
world.setBlock(x + i, y + j - 25, z + k, Blocks.air, 0, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
world.setBlock(x + 0, y + -25, z + 0, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -25, z + 0, Block1, 0, 3);
|
||||
world.setBlock(x + 2, y + -25, z + 0, Block1, 0, 3);
|
||||
@ -263,47 +278,42 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
|
||||
world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3);
|
||||
world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3);
|
||||
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest)world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2)+ 6);
|
||||
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest) world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2) + 6);
|
||||
}
|
||||
world.setBlock(x + 2, y + -23, z + 1, ModBlocks.geiger, 2, 3);
|
||||
world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
|
||||
world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3);
|
||||
world.setBlock(x + 4, y + -24, z + 1, Block1, 0, 3);
|
||||
world.setBlock(x + 11, y + -24, z + 1, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -24, z + 2, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3);
|
||||
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3);
|
||||
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 2), 8);
|
||||
if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 2), 8);
|
||||
}
|
||||
world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3);
|
||||
world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3);
|
||||
world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3);
|
||||
if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 2), 8);
|
||||
if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 2), 8);
|
||||
}
|
||||
world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3);
|
||||
world.setBlock(x + 11, y + -24, z + 2, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3);
|
||||
world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3);
|
||||
if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 3), 8);
|
||||
if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 3), 8);
|
||||
}
|
||||
world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3);
|
||||
world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3);
|
||||
world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3);
|
||||
if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 3), 8);
|
||||
if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 3), 8);
|
||||
}
|
||||
world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 8, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 9, y + -24, z + 3, Blocks.iron_door, 5, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door);
|
||||
world.setBlock(x + 10, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 11, y + -24, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -24, z + 4, Block1, 0, 3);
|
||||
@ -316,7 +326,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 0, y + -24, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -24, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 2, y + -24, z + 5, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 3, y + -24, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -24, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -24, z + 5, Block1, 0, 3);
|
||||
@ -341,7 +351,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 0, y + -24, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -24, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -24, z + 9, Blocks.iron_door, 1, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door);
|
||||
world.setBlock(x + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3);
|
||||
world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -24, z + 10, Block1, 0, 3);
|
||||
@ -403,7 +413,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 4, y + -23, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -23, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 8, y + -23, z + 3, Block1, 0, 3);
|
||||
//world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 10, y + -23, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 11, y + -23, z + 3, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -23, z + 4, Block1, 0, 3);
|
||||
@ -414,7 +424,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 11, y + -23, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -23, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -23, z + 5, Block1, 0, 3);
|
||||
//world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 3, y + -23, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3);
|
||||
world.setBlock(x + 7, y + -23, z + 5, Block1, 0, 3);
|
||||
@ -435,7 +445,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 0, y + -23, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 0, 3);
|
||||
world.setBlock(x + 3, y + -23, z + 9, Block3, 0, 3);
|
||||
//world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 11, y + -23, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -23, z + 10, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -23, z + 10, Block1, 0, 3);
|
||||
@ -459,8 +469,8 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 11, y + -23, z + 13, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -23, z + 14, Block1, 0, 3);
|
||||
world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3);
|
||||
//prevent geiger displacement
|
||||
//world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3);
|
||||
// prevent geiger displacement
|
||||
// world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -23, z + 14, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3);
|
||||
world.setBlock(x + 5, y + -23, z + 14, Block1, 0, 3);
|
||||
@ -782,11 +792,10 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 3, y + -20, z + 1, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3);
|
||||
world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3);
|
||||
if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest)world.getTileEntity(x + 4, y + -20, z + 1), 12);
|
||||
if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) {
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest) world.getTileEntity(x + 4, y + -20, z + 1), 12);
|
||||
}
|
||||
world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3);
|
||||
world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3);
|
||||
world.setBlock(x + 9, y + -20, z + 1, Block4, 0, 3);
|
||||
world.setBlock(x + 10, y + -20, z + 1, Block4, 0, 3);
|
||||
world.setBlock(x + 11, y + -20, z + 1, Block1, 0, 3);
|
||||
@ -806,7 +815,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 3, y + -20, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -20, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 5, y + -20, z + 4, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 6, y + -20, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -20, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 8, y + -20, z + 4, Block1, 0, 3);
|
||||
@ -818,25 +827,25 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 11, y + -20, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -20, z + 6, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -20, z + 6, Blocks.iron_door, 0, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door);
|
||||
world.setBlock(x + 11, y + -20, z + 6, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -20, z + 7, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -20, z + 7, Block1, 0, 3);
|
||||
world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door);
|
||||
world.setBlock(x + 10, y + -20, z + 7, Blocks.iron_door, 1, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door);
|
||||
world.setBlock(x + 11, y + -20, z + 7, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -20, z + 8, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -20, z + 8, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 6, y + -20, z + 8, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 8, y + -20, z + 8, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 10, y + -20, z + 8, Blocks.iron_door, 3, 3);
|
||||
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door);
|
||||
world.setBlock(x + 11, y + -20, z + 8, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -20, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -20, z + 9, Block1, 0, 3);
|
||||
@ -906,7 +915,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 0, y + -19, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -19, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 4, y + -19, z + 4, Block1, 0, 3);
|
||||
//world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 6, y + -19, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 7, y + -19, z + 4, Block1, 0, 3);
|
||||
world.setBlock(x + 8, y + -19, z + 4, Block1, 0, 3);
|
||||
@ -917,19 +926,19 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 3, y + -19, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 11, y + -19, z + 5, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -19, z + 6, Block1, 0, 3);
|
||||
//world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 11, y + -19, z + 6, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -19, z + 7, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -19, z + 7, Block3, 0, 3);
|
||||
//world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3);
|
||||
//world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3);
|
||||
world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -19, z + 8, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -19, z + 8, Block1, 0, 3);
|
||||
//world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
//world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
//world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
//world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3);
|
||||
// world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3);
|
||||
// world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3);
|
||||
world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 3);
|
||||
world.setBlock(x + 0, y + -19, z + 9, Block1, 0, 3);
|
||||
world.setBlock(x + 3, y + -19, z + 9, Block1, 0, 3);
|
||||
@ -1497,8 +1506,8 @@ public class Bunker extends WorldGenerator
|
||||
return true;
|
||||
|
||||
}
|
||||
public boolean generate_r02_last(World world, Random rand, int x, int y, int z)
|
||||
{
|
||||
|
||||
public boolean generate_r02_last(World world, Random rand, int x, int y, int z) {
|
||||
|
||||
world.setBlock(x + 10, y + -24, z + 12, Blocks.ladder, 4, 3);
|
||||
world.setBlock(x + 10, y + -24, z + 13, Blocks.ladder, 4, 3);
|
||||
@ -1567,7 +1576,7 @@ public class Bunker extends WorldGenerator
|
||||
world.setBlock(x + 8, y + -19, z + 10, Blocks.bed, 8, 3);
|
||||
world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3);
|
||||
if(GeneralConfig.enableDebugMode)
|
||||
System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y +" " + z + "\n");
|
||||
System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y + " " + z + "\n");
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidische Säure
|
||||
fluid.toxic_fluid=Stereotypischer grüner Schleim
|
||||
|
||||
geiger.chunkRad=Chunk-Strahlung:
|
||||
geiger.envRad=Gesamte Umgebungsstrahlung:
|
||||
geiger.playerRad=Spieler-Kontaminierung:
|
||||
geiger.playerRes=Strahlungsresistenz:
|
||||
geiger.title=GEIGERZÄHLER
|
||||
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaikpanele
|
||||
item.pill_iodine.name=Iodpille
|
||||
item.pin.name=Haarklammer
|
||||
item.pipes_steel.name=Stahlrohre
|
||||
item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet.
|
||||
item.piston_selenium.name=Sternmotorenkolben
|
||||
item.plan_c.name=Plan C
|
||||
item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte
|
||||
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock
|
||||
tile.block_cobalt.name=Kobaltblock
|
||||
tile.block_combine_steel.name=CMB-Stahlblock
|
||||
tile.block_copper.name=Kupferblock
|
||||
tile.block_corium.name=Corium
|
||||
tile.block_daffergon.name=Daffergonblock
|
||||
tile.block_desh.name=Verstärketer Deshblock
|
||||
tile.block_dineutronium.name=Dineutroniumblock
|
||||
@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestdach
|
||||
tile.deco_beryllium.name=Beryllium-Dekoblock
|
||||
tile.deco_lead.name=Blei-Dekoblock
|
||||
tile.deco_red_copper.name=Roter Kupfer-Dekoblock
|
||||
tile.deco_pipe.name=Stahlrohr
|
||||
tile.deco_pipe_rusted.name=Rostiges Stahlrohr
|
||||
tile.deco_pipe_green.name=Grünes Stahlrohr
|
||||
tile.deco_pipe_green_rusted.name=Rostiges grünes Stahlrohr
|
||||
tile.deco_pipe_red.name=Rotes Stahlrohr
|
||||
tile.deco_pipe_marked.name=Gasrohr
|
||||
tile.deco_pipe_framed.name=Stahlrohr mit Rahmen
|
||||
tile.deco_pipe_framed_rusted.name=Rostiges Stahlrohr mit Rahmen
|
||||
tile.deco_pipe_framed_green.name=Grünes Stahlrohr mit Rahmen
|
||||
tile.deco_pipe_framed_green_rusted.name=Rostiges grünes Stahlrohr mit Rahmen
|
||||
tile.deco_pipe_framed_red.name=Rotes Stahlrohr mit Rahmen
|
||||
tile.deco_pipe_framed_marked.name=Gasrohr mit Rahmen
|
||||
tile.deco_pipe_quad.name=Stahlrohre
|
||||
tile.deco_pipe_quad_rusted.name=Rostige Stahlrohre
|
||||
tile.deco_pipe_quad_green.name=Grüne Stahlrohre
|
||||
tile.deco_pipe_quad_green_rusted.name=Rostige grüne Stahlrohre
|
||||
tile.deco_pipe_quad_red.name=Rote Stahlrohre
|
||||
tile.deco_pipe_quad_marked.name=Gasrohre
|
||||
tile.deco_pipe_rim.name=Stahlrohr mit Rand
|
||||
tile.deco_pipe_rim_rusted.name=Rostiges Stahlrohr mit Rand
|
||||
tile.deco_pipe_rim_green.name=Grünes Stahlrohr mit Rand
|
||||
tile.deco_pipe_rim_green_rusted.name=Rostiges grünes Stahlrohr mit Rand
|
||||
tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand
|
||||
tile.deco_pipe_rim_marked.name=Gasrohr mit Rand
|
||||
tile.deco_steel.name=Stahl-Dekoblock
|
||||
tile.deco_titanium.name=Titan-Dekoblock
|
||||
tile.deco_tungsten.name=Wolfram-Dekoblock
|
||||
@ -2844,6 +2871,7 @@ tile.pole_satellite_receiver.name=Satellitenschüssel
|
||||
tile.pole_top.name=Antennenspitze
|
||||
tile.pribris.name=RBMK-Schutt
|
||||
tile.pribris_burning.name=Flammender RBMK-Schutt
|
||||
tile.pribris_radiating.name=Glühender RBMK-Schutt
|
||||
tile.radiobox.name=Rosenberg Ungeziefervernichter
|
||||
tile.radiorec.name=Kaputtes UKW Radio
|
||||
tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen
|
||||
@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Dampfkanal
|
||||
tile.rbmk_console.name=RBMK Konsole
|
||||
tile.rbmk_control.name=RBMK Steuerstäbe
|
||||
tile.rbmk_control_auto.name=RBMK Automatische Steuerstäbe
|
||||
tile.rbmk_loader.name=RBMK-Dampfadapter
|
||||
tile.rbmk_moderator.name=RBMK Graphitmoderator
|
||||
tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator
|
||||
tile.rbmk_rod.name=RBMK Brennstäbe
|
||||
|
||||
@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidic Acid
|
||||
fluid.toxic_fluid=Stereotypical Green Ooze
|
||||
|
||||
geiger.chunkRad=Current chunk radiation:
|
||||
geiger.envRad=Total environmental radiation:
|
||||
geiger.playerRad=Player contamination:
|
||||
geiger.playerRes=Player resistance:
|
||||
geiger.title=GEIGER COUNTER
|
||||
@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaic Panel
|
||||
item.pill_iodine.name=Iodine Pill
|
||||
item.pin.name=Bobby Pin
|
||||
item.pipes_steel.name=Steel Pipes
|
||||
item.pipes_steel.desc=Uncrafting was omitted due to tax evasion.
|
||||
item.piston_selenium.name=Radial Engine Piston
|
||||
item.plan_c.name=Plan C
|
||||
item.plate_advanced_alloy.name=Advanced Alloy Plate
|
||||
@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps
|
||||
tile.block_cobalt.name=Block of Cobalt
|
||||
tile.block_combine_steel.name=Block of CMB Steel
|
||||
tile.block_copper.name=Block of Copper
|
||||
tile.block_corium.name=Corium
|
||||
tile.block_daffergon.name=Block of Daffergon
|
||||
tile.block_desh.name=Reinforced Block of Desh
|
||||
tile.block_dineutronium.name=Block of Dineutronium
|
||||
@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestos Roof
|
||||
tile.deco_beryllium.name=Beryllium Deco Block
|
||||
tile.deco_lead.name=Lead Deco Block
|
||||
tile.deco_red_copper.name=Red Copper Deco Block
|
||||
tile.deco_pipe.name=Steel Pipe
|
||||
tile.deco_pipe_rusted.name=Rusty Steel Pipe
|
||||
tile.deco_pipe_green.name=Green Steel Pipe
|
||||
tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe
|
||||
tile.deco_pipe_red.name=Red Steel Pipe
|
||||
tile.deco_pipe_marked.name=Gas Pipe
|
||||
tile.deco_pipe_framed.name=Steel Pipe (Framed)
|
||||
tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed)
|
||||
tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed)
|
||||
tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed)
|
||||
tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed)
|
||||
tile.deco_pipe_framed_marked.name=Gas Pipe (Framed)
|
||||
tile.deco_pipe_quad.name=Steel Pipes
|
||||
tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes
|
||||
tile.deco_pipe_quad_green.name=Green Steel Pipes
|
||||
tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes
|
||||
tile.deco_pipe_quad_red.name=Red Steel Pipes
|
||||
tile.deco_pipe_quad_marked.name=Gas Pipes
|
||||
tile.deco_pipe_rim.name=Steel Pipe (Rimmed)
|
||||
tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed)
|
||||
tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed)
|
||||
tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed)
|
||||
tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed)
|
||||
tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed)
|
||||
tile.deco_steel.name=Steel Deco Block
|
||||
tile.deco_titanium.name=Titanium Deco Block
|
||||
tile.deco_tungsten.name=Tungsten Deco Block
|
||||
@ -2844,6 +2871,7 @@ tile.pole_satellite_receiver.name=Satellite Dish
|
||||
tile.pole_top.name=Antenna Top
|
||||
tile.pribris.name=RBMK Debris
|
||||
tile.pribris_burning.name=Flaming RBMK Debris
|
||||
tile.pribris_radiating.name=Smoldering RBMK Debris
|
||||
tile.radiobox.name=Rosenberg Pest Control Box
|
||||
tile.radiorec.name=Broken FM Radio
|
||||
tile.rail_booster.name=High Speed Booster Rail
|
||||
@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Steam Channel
|
||||
tile.rbmk_console.name=RBMK Console
|
||||
tile.rbmk_control.name=RBMK Control Rods
|
||||
tile.rbmk_control_auto.name=RBMK Automatic Control Rods
|
||||
tile.rbmk_loader.name=RBMK Steam Connector
|
||||
tile.rbmk_moderator.name=RBMK Graphite Moderator
|
||||
tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector
|
||||
tile.rbmk_rod.name=RBMK Fuel Rod
|
||||
|
||||
268
src/main/resources/assets/hbm/models/blocks/pipe_frame.obj
Normal 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
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/pipe_frame.png
Normal file
|
After Width: | Height: | Size: 325 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pipe_mesh.png
Normal file
|
After Width: | Height: | Size: 115 B |
|
After Width: | Height: | Size: 479 B |
|
After Width: | Height: | Size: 474 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pipe_side_red.png
Normal file
|
After Width: | Height: | Size: 524 B |
|
After Width: | Height: | Size: 473 B |
|
After Width: | Height: | Size: 590 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pipe_top_red.png
Normal file
|
After Width: | Height: | Size: 609 B |
BIN
src/main/resources/assets/hbm/textures/blocks/rbmk_loader.png
Normal file
|
After Width: | Height: | Size: 579 B |
@ -3,7 +3,7 @@
|
||||
"modid": "hbm",
|
||||
"name": "Hbm's Nuclear Tech",
|
||||
"description": "A mod that adds weapons, nuclear themed stuff and machines",
|
||||
"version":"1.0.27-3864",
|
||||
"version":"1.0.27-3868",
|
||||
"mcversion": "1.7.10",
|
||||
"url": "",
|
||||
"updateUrl": "",
|
||||
|
||||