fusion reactor almost finished

This commit is contained in:
Bob 2020-08-23 19:02:01 +02:00
parent e829d75b28
commit fe15f2abb7
40 changed files with 13150 additions and 7220 deletions

View File

@ -2029,6 +2029,8 @@ tile.brick_jungle.name=Enargitziegel
tile.brick_jungle_cracked.name=Rissige Enargitziegel
tile.brick_jungle_glyph.name=Enargit-Glyphenziegel
tile.brick_jungle_lava.name=Magmatische Enargitziegel
tile.brick_jungle_mystic.name=Arkane Enargitziegel
tile.brick_jungle_ooze.name=Radioaktive Enargitziegel
tile.brick_jungle_trap.name=Enargit-Falle
tile.brick_light.name=Helle Ziegel
tile.brick_obsidian.name=Obsidianziegel

View File

@ -2029,6 +2029,8 @@ tile.brick_jungle.name=Enargite Bricks
tile.brick_jungle_cracked.name=Cracked Enargite Bricks
tile.brick_jungle_glyph.name=Enargite Glyph Bricks
tile.brick_jungle_lava.name=Magmatic Enargite Bricks
tile.brick_jungle_mystic.name=Arcane Enargite Bricks
tile.brick_jungle_ooze.name=Radioactive Enargite Bricks
tile.brick_jungle_trap.name=Trapped Enargite Bricks
tile.brick_light.name=Light Bricks
tile.brick_obsidian.name=Obsidian Bricks

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 4
}
}

View File

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 4
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

After

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -118,6 +118,7 @@ public class ModBlocks {
public static Block block_lead;
public static Block block_trinitite;
public static Block block_waste;
public static Block block_waste_painted;
public static Block block_scrap;
public static Block block_electrical_scrap;
public static Block block_beryllium;
@ -182,6 +183,7 @@ public class ModBlocks {
public static Block brick_obsidian;
public static Block brick_light;
public static Block brick_compound;
public static Block brick_asbestos;
public static Block cmb_brick;
public static Block cmb_brick_reinforced;
@ -207,6 +209,8 @@ public class ModBlocks {
public static Block brick_jungle;
public static Block brick_jungle_cracked;
public static Block brick_jungle_lava;
public static Block brick_jungle_ooze;
public static Block brick_jungle_mystic;
public static Block brick_jungle_trap;
public static Block brick_jungle_glyph;
@ -894,6 +898,7 @@ public class ModBlocks {
block_lead = new BlockGeneric(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lead");
block_trinitite = new BlockOre(Material.iron, 3F, 35F).setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite");
block_waste = new BlockOre(Material.iron, 5F, 60F).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste");
block_waste_painted = new BlockOre(Material.iron, 5F, 60F).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted");
block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap");
block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2");
block_beryllium = new BlockGeneric(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium");
@ -960,6 +965,7 @@ public class ModBlocks {
brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound");
cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick");
cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced");
brick_asbestos = new BlockGeneric(Material.rock).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos");
tile_lab = new BlockGeneric(Material.rock).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab");
tile_lab_cracked = new BlockGeneric(Material.rock).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked");
@ -982,6 +988,8 @@ public class ModBlocks {
brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle");
brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked");
brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava");
brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze");
brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic");
brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap");
brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F);
@ -1548,6 +1556,7 @@ public class ModBlocks {
GameRegistry.registerBlock(block_asbestos, block_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName());
GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName());
GameRegistry.registerBlock(block_waste_painted, block_waste_painted.getUnlocalizedName());
GameRegistry.registerBlock(block_schrabidium, ItemBlockLore.class, block_schrabidium.getUnlocalizedName());
GameRegistry.registerBlock(block_solinium, ItemBlockLore.class, block_solinium.getUnlocalizedName());
GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockLore.class, block_schrabidium_fuel.getUnlocalizedName());
@ -1602,6 +1611,7 @@ public class ModBlocks {
GameRegistry.registerBlock(brick_obsidian, brick_obsidian.getUnlocalizedName());
GameRegistry.registerBlock(brick_compound, brick_compound.getUnlocalizedName());
GameRegistry.registerBlock(brick_light, brick_light.getUnlocalizedName());
GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName());
//CMB Building Elements
GameRegistry.registerBlock(cmb_brick, cmb_brick.getUnlocalizedName());
@ -1638,6 +1648,8 @@ public class ModBlocks {
GameRegistry.registerBlock(brick_jungle, brick_jungle.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_cracked, brick_jungle_cracked.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_lava, brick_jungle_lava.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_ooze, brick_jungle_ooze.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_mystic, brick_jungle_mystic.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName());
GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName());
GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName());

View File

@ -49,8 +49,7 @@ public class BlockGlyph extends Block {
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_)
{
for (int i = 0; i < 16; ++i)
{
for (int i = 0; i < 16; ++i) {
p_149666_3_.add(new ItemStack(p_149666_1_, 1, i));
}
}

View File

@ -264,6 +264,14 @@ public class BlockOre extends Block {
{
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 5));
}
if (entity instanceof EntityLivingBase && this == ModBlocks.brick_jungle_ooze)
{
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 9));
}
if (entity instanceof EntityLivingBase && this == ModBlocks.brick_jungle_mystic)
{
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.taint.id, 15 * 20, 2));
}
if(this == ModBlocks.block_meteor_molten)
entity.setFire(5);

View File

@ -1,13 +1,22 @@
package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.tileentity.deco.TileEntityTrappedBrick;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.tileentity.TileEntity;
@ -27,6 +36,14 @@ public class TrappedBrick extends BlockContainer {
return null;
}
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
for (int i = 0; i < Trap.values().length; ++i) {
list.add(new ItemStack(item, 1, i));
}
}
@Override
public void onEntityWalking(World world, int x, int y, int z, Entity entity) {
@ -44,6 +61,10 @@ public class TrappedBrick extends BlockContainer {
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z))
world.setBlock(x, y + 1, z, Blocks.fire);
break;
case SPIKES:
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z))
world.setBlock(x, y + 1, z, ModBlocks.barbed_wire);
break;
case MINE:
world.createExplosion(null, x + 0.5, y + 1.5, z + 0.5, 1F, false);
break;
@ -51,6 +72,38 @@ public class TrappedBrick extends BlockContainer {
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z))
world.setBlock(x, y + 1, z, Blocks.web);
break;
case RAD_CONVERSION:
for(int a = - 3; a <= 3; a++) {
for(int b = - 3; b <= 3; b++) {
for(int c = - 3; c <= 3; c++) {
if(world.rand.nextBoolean())
continue;
Block bl = world.getBlock(x + a, y + b, z + c);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y + b, z + c, ModBlocks.brick_jungle_ooze);
}
}
}
}
break;
case MAGIC_CONVERSTION:
for(int a = - 3; a <= 3; a++) {
for(int b = - 3; b <= 3; b++) {
for(int c = - 3; c <= 3; c++) {
if(world.rand.nextBoolean())
continue;
Block bl = world.getBlock(x + a, y + b, z + c);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y + b, z + c, ModBlocks.brick_jungle_mystic);
}
}
}
}
break;
case SLOWNESS:
player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 300, 2));
break;
@ -94,7 +147,7 @@ public class TrappedBrick extends BlockContainer {
public static Trap get(int i) {
if(i < 0 || i >= Trap.values().length)
if(i >= 0 && i < Trap.values().length)
return Trap.values()[i];
return FIRE;

View File

@ -3,6 +3,8 @@ package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.TileEntityProxyInventory;
import com.hbm.tileentity.machine.TileEntityITER;
import com.hbm.tileentity.machine.TileEntityITERStruct;
@ -13,7 +15,9 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.MathHelper;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -28,6 +32,10 @@ public class MachineITER extends BlockDummyable {
if(meta >= 12)
return new TileEntityITER();
if(meta >= 6)
return new TileEntityProxyCombo(false, true, true);
return null;
}
@ -56,6 +64,7 @@ public class MachineITER extends BlockDummyable {
}
return true;
} else {
player.addChatComponentMessage(new ChatComponentText("" + world.getBlockMetadata(x, y, z)));
return false;
}
}
@ -204,6 +213,17 @@ public class MachineITER extends BlockDummyable {
}
}
}
this.makeExtra(world, x, y, z);
this.makeExtra(world, x, y + 4, z);
Vec3 vec = Vec3.createVectorHelper(5.75, 0, 0);
for(int i = 0; i < 16; i++) {
vec.rotateAroundY((float) (Math.PI / 8));
this.makeExtra(world, x + (int)vec.xCoord, y, z + (int)vec.zCoord);
this.makeExtra(world, x + (int)vec.xCoord, y + 4, z + (int)vec.zCoord);
}
}
@Override

View File

@ -37,6 +37,9 @@ public class GUIITER extends GuiInfoContainer {
iter.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 54, 16, 52); //Water
iter.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 54, 16, 52); //Steam
iter.plasma.renderTankInfo(this, mouseX, mouseY, guiLeft + 71, guiTop + 54, 34, 34); //Plasma
String text = "Magnets are " + ((iter.isOn && iter.power >= iter.powerReq) ? "ON" : "OFF");
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 76, guiTop + 94, 24, 12, mouseX, mouseY, new String[] { text });
}
protected void mouseClicked(int x, int y, int i) {
@ -72,6 +75,9 @@ public class GUIITER extends GuiInfoContainer {
if(iter.getShield() >= iter.plasma.getTankType().temperature)
drawTexturedModalRect(guiLeft + 97, guiTop + 17, 218, 0, 18, 18);
int i = (int)iter.getPowerScaled(34);
drawTexturedModalRect(guiLeft + 71, guiTop + 108, 176, 25, i, 16);
for(int t = 0; t < 2; t++) {
Minecraft.getMinecraft().getTextureManager().bindTexture(iter.tanks[t].getSheet());

View File

@ -2,6 +2,8 @@ package com.hbm.items.block;
import java.util.List;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
@ -18,24 +20,7 @@ public class ItemTrapBlock extends ItemBlock {
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
switch(itemstack.getItemDamage()) {
case 0: list.add("Hourglass"); break;
case 1: list.add("Eye"); break;
case 2: list.add("'Pillar'"); break;
case 3: list.add("IOI"); break;
case 4: list.add("Delta"); break;
case 5: list.add("VTPC"); break;
case 6: list.add("Cool S"); break;
case 7: list.add("Trefoil"); break;
case 8: list.add("Pony"); break;
case 9: list.add("Sparkle"); break;
case 10: list.add("PiP"); break;
case 11: list.add("Triangles"); break;
case 12: list.add("Linux Mint"); break;
case 13: list.add("13"); break;
case 14: list.add("Digamma"); break;
case 15: list.add("Celestial Altar"); break;
}
list.add(Trap.get(itemstack.getItemDamage()).toString());
}
public int getMetadata(int meta)

View File

@ -69,6 +69,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste, 8), new Object[] { "B", 'B', ModBlocks.yellow_barrel });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gas_empty, 2), new Object[] { "S ", "AA", "AA", 'A', "plateSteel", 'S', "plateCopper" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.vitrified_barrel, 1), new Object[] { "LSL", "PWP", "LSL", 'L', "plateLead", 'S', Blocks.sand, 'P', "ingotPolymer", 'W', ModBlocks.block_waste }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.block_waste_painted, 1), new Object[] { "dyeYellow", ModBlocks.block_waste }));
GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_aluminium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_aluminium });
GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_copper), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_copper });
@ -157,6 +158,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(ModItems.ingot_lead, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_lead) });
GameRegistry.addRecipe(new ItemStack(ModItems.trinitite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_trinitite) });
GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_waste) });
GameRegistry.addRecipe(new ItemStack(ModItems.nuclear_waste, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_waste_painted) });
GameRegistry.addRecipe(new ItemStack(ModItems.ingot_beryllium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_beryllium) });
GameRegistry.addRecipe(new ItemStack(ModItems.ingot_schrabidium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_schrabidium) });
GameRegistry.addRecipe(new ItemStack(ModItems.ingot_euphemium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_euphemium) });
@ -639,6 +641,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_advanced_alloy, 1), new Object[] { " P ", "PIP", " P ", 'P', "plateAdvanced", 'I', "ingotAdvanced" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_combine_steel, 1), new Object[] { " P ", "PIP", " P ", 'P', "plateCMBSteel", 'I', "ingotCMBSteel" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_schrabidium, 1), new Object[] { " P ", "PIP", " P ", 'P', "plateSchrabidium", 'I', "ingotSchrabidium" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_desh, 1), new Object[] { "NPN", "PBP", "NPN", 'N', "nuggetSchrabidium", 'P', ModItems.plate_desh, 'B', ModItems.blades_combine_steel }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_aluminium, 1), new Object[] { "PIP", 'P', "plateAluminum", 'I', new ItemStack(ModItems.blades_aluminium, 1, OreDictionary.WILDCARD_VALUE) }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blades_gold, 1), new Object[] { "PIP", 'P', "plateGold", 'I', new ItemStack(ModItems.blades_gold, 1, OreDictionary.WILDCARD_VALUE) }));
@ -673,6 +676,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ItemStack(ModBlocks.reinforced_stone, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.cobblestone, 'B', Blocks.stone });
GameRegistry.addRecipe(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block });
GameRegistry.addRecipe(new ItemStack(ModBlocks.brick_asbestos, 2), new Object[] { " A ", "ABA", " A ", 'B', ModBlocks.brick_light, 'A', ModItems.ingot_asbestos });
GameRegistry.addRecipe(new ItemStack(ModBlocks.concrete, 4), new Object[] { "CC", "CC", 'C', ModBlocks.concrete_smooth });
GameRegistry.addRecipe(new ItemStack(ModBlocks.concrete_pillar, 8), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars });
GameRegistry.addRecipe(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.clay_ball });

View File

@ -420,6 +420,7 @@ public class MainRegistry {
GameRegistry.registerTileEntity(TileEntityITER.class, "tileentity_iter");
GameRegistry.registerTileEntity(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater");
GameRegistry.registerTileEntity(TileEntityMachineFENSU.class, "tileentity_fensu");
GameRegistry.registerTileEntity(TileEntityTrappedBrick.class, "tileentity_trapped_brick");
EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true);
EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);

View File

@ -35,7 +35,7 @@ public class RenderITER extends TileEntitySpecialRenderer {
ResourceManager.iter.renderPart("Torus");
GL11.glPushMatrix();
GL11.glRotated(System.currentTimeMillis() / 5D % 360, 0, 1, 0);
GL11.glRotated(iter.lastRotor + (iter.rotor - iter.lastRotor) * f, 0, 1, 0);
bindTexture(ResourceManager.iter_solenoid);
ResourceManager.iter.renderPart("Solenoid");
GL11.glPopMatrix();

View File

@ -1,14 +1,30 @@
package com.hbm.tileentity.deco;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.blocks.generic.TrappedBrick.TrapType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.entity.projectile.EntityBulletBase;
import com.hbm.entity.projectile.EntityRubble;
import com.hbm.handler.BulletConfigSyncingUtil;
import com.hbm.items.ModItems;
import net.minecraft.entity.monster.EntityCaveSpider;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityTrappedBrick extends TileEntity {
AxisAlignedBB detector = null;
ForgeDirection dir = ForgeDirection.UNKNOWN;
@Override
public void updateEntity() {
@ -18,21 +34,145 @@ public class TileEntityTrappedBrick extends TileEntity {
if(detector == null) {
setDetector();
}
List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, detector);
if(!players.isEmpty())
trigger();
}
}
private void trigger() {
Trap trap = Trap.get(this.getBlockMetadata());
switch(trap) {
case FALLING_ROCKS:
for(int x = 0; x < 3; x++) {
for(int z = 0; z < 3; z++) {
EntityRubble rubble = new EntityRubble(worldObj, xCoord - 0.5 + x, yCoord - 0.5, zCoord - 0.5 + z);
rubble.setMetaBasedOnBlock(ModBlocks.reinforced_stone, 0);
worldObj.spawnEntityInWorld(rubble);
}
}
break;
case ARROW:
EntityArrow arrow = new EntityArrow(worldObj);
arrow.setPosition(xCoord + 0.5 + dir.offsetX, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ);
arrow.motionX = dir.offsetX;
arrow.motionZ = dir.offsetZ;
worldObj.spawnEntityInWorld(arrow);
break;
case FLAMING_ARROW:
EntityArrow farrow = new EntityArrow(worldObj);
farrow.setPosition(xCoord + 0.5 + dir.offsetX, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ);
farrow.motionX = dir.offsetX;
farrow.motionZ = dir.offsetZ;
farrow.setFire(60);
worldObj.spawnEntityInWorld(farrow);
break;
case PILLAR:
for(int i = 0; i < 3; i++)
worldObj.setBlock(xCoord, yCoord - 1 - i, zCoord, ModBlocks.concrete_pillar);
break;
case POISON_DART:
EntityBulletBase dart = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.G20_CAUSTIC);
dart.setPosition(xCoord + 0.5 + dir.offsetX, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ);
dart.motionX = dir.offsetX;
dart.motionZ = dir.offsetZ;
worldObj.spawnEntityInWorld(dart);
break;
case ZOMBIE:
EntityZombie zombie = new EntityZombie(worldObj);
zombie.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5);
switch(worldObj.rand.nextInt(3)) {
case 0: zombie.setCurrentItemOrArmor(0, new ItemStack(ModItems.chernobylsign)); break;
case 1: zombie.setCurrentItemOrArmor(0, new ItemStack(ModItems.cobalt_sword)); break;
case 2: zombie.setCurrentItemOrArmor(0, new ItemStack(ModItems.cmb_hoe)); break;
}
zombie.setEquipmentDropChance(0, 1.0F);
worldObj.spawnEntityInWorld(zombie);
break;
case SPIDERS:
for(int i = 0; i < 3; i++) {
EntityCaveSpider spider = new EntityCaveSpider(worldObj);
spider.setPosition(xCoord + 0.5, yCoord - 1, zCoord + 0.5);
worldObj.spawnEntityInWorld(spider);
}
break;
}
worldObj.playSoundEffect(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D, "random.click", 0.3F, 0.6F);
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.brick_jungle);
}
private void setDetector() {
Trap trap = Trap.get(this.getBlockMetadata());
switch(trap) {
case FALLING_ROCKS: break;
case ARROW: break;
case FLAMING_ARROW: break;
case PILLAR: break;
case POISON_DART: break;
case ZOMBIE: break;
case SPIDERS: break;
case FALLING_ROCKS:
detector = AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord - 3, zCoord - 1, xCoord + 2, yCoord, zCoord + 2);
break;
case PILLAR:
detector = AxisAlignedBB.getBoundingBox(xCoord + 0.2, yCoord - 3, zCoord + 0.2, xCoord + 0.8, yCoord, zCoord + 0.8);
break;
case ARROW:
case FLAMING_ARROW:
case POISON_DART:
setDetectorDirectional();
break;
case ZOMBIE:
detector = AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 1, zCoord - 1, xCoord + 2, yCoord + 2, zCoord + 2);
break;
case SPIDERS:
detector = AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord - 3, zCoord - 1, xCoord + 2, yCoord, zCoord + 2);
break;
}
}
private void setDetectorDirectional() {
List<ForgeDirection> dirs = new ArrayList() {{
add(ForgeDirection.NORTH);
add(ForgeDirection.SOUTH);
add(ForgeDirection.EAST);
add(ForgeDirection.WEST);
}};
Collections.shuffle(dirs);
for(ForgeDirection dir : dirs) {
if(worldObj.getBlock(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ) == Blocks.air) {
double minX = xCoord + 0.4;
double minY = yCoord + 0.4;
double minZ = zCoord + 0.4;
double maxX = xCoord + 0.6;
double maxY = yCoord + 0.6;
double maxZ = zCoord + 0.6;
if(dir.offsetX > 0)
maxX += 3;
else if(dir.offsetX < 0)
minX -= 3;
if(dir.offsetZ > 0)
maxZ += 3;
else if(dir.offsetZ < 0)
minZ -= 3;
detector = AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ);
this.dir = dir;
return;
}
}
detector = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1);
}
}

View File

@ -15,10 +15,7 @@ import com.hbm.tileentity.TileEntityMachineBase;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
@ -79,6 +76,10 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer,
worldObj.newExplosion(null, xCoord + 0.5 + vec.xCoord, yCoord + 0.5 + worldObj.rand.nextGaussian() * 1.5D, zCoord + 0.5 + vec.zCoord, 2.5F, true, true);
}
if(isOn && power >= powerReq) {
power -= powerReq;
}
/// END Processing part ///
/// START Notif packets ///
@ -91,6 +92,19 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer,
data.setBoolean("isOn", isOn);
data.setLong("power", power);
this.networkPack(data, 250);
} else {
this.lastRotor = this.rotor;
if(this.isOn && this.power >= this.powerReq) {
this.rotor += 15F;
if(this.rotor >= 360) {
this.rotor -= 360;
this.lastRotor -= 360;
}
}
}
}
@ -108,6 +122,10 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer,
}
}
public long getPowerScaled(long i) {
return (power * i) / maxPower;
}
@Override
public void setPower(long i) {
this.power = i;
@ -218,6 +236,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer,
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.power = nbt.getLong("power");
tanks[0].readFromNBT(nbt, "water");
tanks[1].readFromNBT(nbt, "steam");
@ -227,6 +247,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer,
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setLong("power", this.power);
tanks[0].writeToNBT(nbt, "water");
tanks[1].writeToNBT(nbt, "steam");

View File

@ -21,7 +21,22 @@ public class CellularDungeonFactory {
meteor.rooms.add(new TestDungeonRoom8(meteor));
jungle = new JungleDungeon(5, 5, 25, 25, 700, 6);
jungle.rooms.add(new JungleDungeonRoom(jungle));
for(int i = 0; i < 10; i++) jungle.rooms.add(new JungleDungeonRoom(jungle));
jungle.rooms.add(new JungleDungeonRoomArrow(jungle));
jungle.rooms.add(new JungleDungeonRoomArrowFire(jungle));
jungle.rooms.add(new JungleDungeonRoomFire(jungle));
jungle.rooms.add(new JungleDungeonRoomMagic(jungle));
jungle.rooms.add(new JungleDungeonRoomMine(jungle));
jungle.rooms.add(new JungleDungeonRoomPillar(jungle));
jungle.rooms.add(new JungleDungeonRoomPoison(jungle));
jungle.rooms.add(new JungleDungeonRoomRad(jungle));
jungle.rooms.add(new JungleDungeonRoomRubble(jungle));
jungle.rooms.add(new JungleDungeonRoomSlowness(jungle));
jungle.rooms.add(new JungleDungeonRoomSpiders(jungle));
jungle.rooms.add(new JungleDungeonRoomSpikes(jungle));
jungle.rooms.add(new JungleDungeonRoomWeakness(jungle));
jungle.rooms.add(new JungleDungeonRoomWeb(jungle));
jungle.rooms.add(new JungleDungeonRoomZombie(jungle));
}
}

View File

@ -0,0 +1,67 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomArrow extends JungleDungeonRoom {
public JungleDungeonRoomArrow(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + parent.width / 2, y + i, z);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width / 2, y + i, z, ModBlocks.brick_jungle_trap, Trap.ARROW.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + parent.width / 2, y + i, z + parent.width - 1);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width / 2, y + i, z + parent.width - 1, ModBlocks.brick_jungle_trap, Trap.ARROW.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x, y + i, z + parent.width / 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x, y + i, z + parent.width / 2, ModBlocks.brick_jungle_trap, Trap.ARROW.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + parent.width - 1, y + i, z + parent.width / 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width - 1, y + i, z + parent.width / 2, ModBlocks.brick_jungle_trap, Trap.ARROW.ordinal(), 3);
}
}
}
};
TimedGenerator.addOp(world, job);
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,61 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomArrowFire extends JungleDungeonRoom {
public JungleDungeonRoomArrowFire(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
ITimedJob job = new ITimedJob() {
@Override
public void work() {
Block bl;
bl = world.getBlock(x + parent.width / 2, y + 2, z);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width / 2, y + 2, z, ModBlocks.brick_jungle_trap, Trap.FLAMING_ARROW.ordinal(), 3);
}
bl = world.getBlock(x + parent.width / 2, y + 2, z + parent.width - 1);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width / 2, y + 2, z + parent.width - 1, ModBlocks.brick_jungle_trap, Trap.FLAMING_ARROW.ordinal(), 3);
}
bl = world.getBlock(x, y + 2, z + parent.width / 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x, y + 2, z + parent.width / 2, ModBlocks.brick_jungle_trap, Trap.FLAMING_ARROW.ordinal(), 3);
}
bl = world.getBlock(x + parent.width - 1, y + 2, z + parent.width / 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width - 1, y + 2, z + parent.width / 2, ModBlocks.brick_jungle_trap, Trap.FLAMING_ARROW.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,44 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomFire extends JungleDungeonRoom {
public JungleDungeonRoomFire(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 0; a < 3; a++) {
for(int b = 0; b < 3; b++) {
if(a == 1 && b == 1)
continue;
Block bl = world.getBlock(x + 1 + a, y, z + 1 + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava || bl == ModBlocks.brick_jungle_trap) {
world.setBlock(x + 1 + a, y, z + 1 + b, ModBlocks.brick_jungle_trap, Trap.FIRE.ordinal(), 3);
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,38 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomMagic extends JungleDungeonRoom {
public JungleDungeonRoomMagic(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
int ix = world.rand.nextInt(3) + 1;
int iz = world.rand.nextInt(3) + 1;
Block bl = world.getBlock(x + ix, y, z + iz);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + ix, y, z + iz, ModBlocks.brick_jungle_trap, Trap.MAGIC_CONVERSTION.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomMine extends JungleDungeonRoom {
public JungleDungeonRoomMine(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 1; a < 4; a++) {
for(int b = 1; b < 4; b++) {
if(world.rand.nextInt(3) == 0) {
Block bl = world.getBlock(x + a, y, z + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y, z + b, ModBlocks.brick_jungle_trap, Trap.MINE.ordinal(), 3);
}
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,44 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomPillar extends JungleDungeonRoom {
public JungleDungeonRoomPillar(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 0; a < 3; a++) {
for(int b = 0; b < 3; b++) {
if(a == 1 && b == 1)
continue;
Block bl = world.getBlock(x + 1 + a, y + 4, z + 1 + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava || bl == ModBlocks.brick_jungle_trap) {
world.setBlock(x + 1 + a, y + 4, z + 1 + b, ModBlocks.brick_jungle_trap, Trap.PILLAR.ordinal(), 3);
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,67 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomPoison extends JungleDungeonRoom {
public JungleDungeonRoomPoison(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x, y + 2, z + i);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x, y + 2, z + i, ModBlocks.brick_jungle_trap, Trap.POISON_DART.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + parent.width - 1, y + 2, z + i);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + parent.width - 1, y + 2, z + i, ModBlocks.brick_jungle_trap, Trap.POISON_DART.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + i, y + 2, z);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + i, y + 2, z, ModBlocks.brick_jungle_trap, Trap.POISON_DART.ordinal(), 3);
}
}
for(int i = 1; i < 4; i++) {
Block bl = world.getBlock(x + i, y + 2, z + parent.width - 1);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + i, y + 2, z + parent.width - 1, ModBlocks.brick_jungle_trap, Trap.POISON_DART.ordinal(), 3);
}
}
}
};
TimedGenerator.addOp(world, job);
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,38 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomRad extends JungleDungeonRoom {
public JungleDungeonRoomRad(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
int ix = world.rand.nextInt(3) + 1;
int iz = world.rand.nextInt(3) + 1;
Block bl = world.getBlock(x + ix, y, z + iz);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + ix, y, z + iz, ModBlocks.brick_jungle_trap, Trap.RAD_CONVERSION.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,35 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomRubble extends JungleDungeonRoom {
public JungleDungeonRoomRubble(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
Block bl = world.getBlock(x + 2, y + 4, z + 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + 2, y + 4, z + 2, ModBlocks.brick_jungle_trap, Trap.FALLING_ROCKS.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomSlowness extends JungleDungeonRoom {
public JungleDungeonRoomSlowness(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 1; a < 4; a++) {
for(int b = 1; b < 4; b++) {
if(world.rand.nextInt(2) == 0) {
Block bl = world.getBlock(x + a, y, z + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y, z + b, ModBlocks.brick_jungle_trap, Trap.SLOWNESS.ordinal(), 3);
}
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,35 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomSpiders extends JungleDungeonRoom {
public JungleDungeonRoomSpiders(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
Block bl = world.getBlock(x + 2, y + 4, z + 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + 2, y + 4, z + 2, ModBlocks.brick_jungle_trap, Trap.SPIDERS.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,35 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomSpikes extends JungleDungeonRoom {
public JungleDungeonRoomSpikes(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
Block bl = world.getBlock(x + 2, y, z + 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + 2, y, z + 2, ModBlocks.brick_jungle_trap, Trap.SPIKES.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomWeakness extends JungleDungeonRoom {
public JungleDungeonRoomWeakness(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 1; a < 4; a++) {
for(int b = 1; b < 4; b++) {
if(world.rand.nextInt(2) == 0) {
Block bl = world.getBlock(x + a, y, z + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y, z + b, ModBlocks.brick_jungle_trap, Trap.WEAKNESS.ordinal(), 3);
}
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,43 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomWeb extends JungleDungeonRoom {
public JungleDungeonRoomWeb(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
for(int a = 1; a < 4; a++) {
for(int b = 1; b < 4; b++) {
if(world.rand.nextInt(3) == 0) {
Block bl = world.getBlock(x + a, y, z + b);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + a, y, z + b, ModBlocks.brick_jungle_trap, Trap.WEB.ordinal(), 3);
}
}
}
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -0,0 +1,35 @@
package com.hbm.world.generator.room;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.TrappedBrick.Trap;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.TimedGenerator;
import com.hbm.world.generator.TimedGenerator.ITimedJob;
import net.minecraft.block.Block;
import net.minecraft.world.World;
public class JungleDungeonRoomZombie extends JungleDungeonRoom {
public JungleDungeonRoomZombie(CellularDungeon parent) {
super(parent);
}
public void generateMain(final World world, final int x, final int y, final int z) {
super.generateMain(world, x, y, z);
ITimedJob job = new ITimedJob() {
@Override
public void work() {
Block bl = world.getBlock(x + 2, y, z + 2);
if(bl == ModBlocks.brick_jungle || bl == ModBlocks.brick_jungle_cracked || bl == ModBlocks.brick_jungle_lava) {
world.setBlock(x + 2, y, z + 2, ModBlocks.brick_jungle_trap, Trap.ZOMBIE.ordinal(), 3);
}
}
};
TimedGenerator.addOp(world, job);
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.world.generator.room;
import java.util.ArrayList;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.RecipesCommon.MetaBlock;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.CellularDungeonRoom;
import com.hbm.world.generator.DungeonToolbox;
@ -22,9 +23,16 @@ public class TestDungeonRoom4 extends CellularDungeonRoom {
public void generateMain(World world, int x, int y, int z) {
super.generateMain(world, x, y, z);
DungeonToolbox.generateBox(world, x, y + parent.height - 2, z, parent.width, 1, parent.width, new ArrayList() {{ add(Blocks.air); add(Blocks.web); }});
DungeonToolbox.generateBox(world, x, y + parent.height - 2, z, parent.width, 1, parent.width, new ArrayList() {{ add(new MetaBlock(Blocks.air)); add(new MetaBlock(Blocks.web)); }});
DungeonToolbox.generateBox(world, x + 1, y, z + 1, parent.width - 2, 1, parent.width - 2, new ArrayList() {{ add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_spawner); }});
DungeonToolbox.generateBox(world, x + 1, y, z + 1, parent.width - 2, 1, parent.width - 2, new ArrayList() {{
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_spawner));
}});
}
public void generateWall(World world, int x, int y, int z, ForgeDirection wall, boolean door) {

View File

@ -3,6 +3,7 @@ package com.hbm.world.generator.room;
import java.util.ArrayList;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.RecipesCommon.MetaBlock;
import com.hbm.world.generator.CellularDungeon;
import com.hbm.world.generator.CellularDungeonRoom;
import com.hbm.world.generator.DungeonToolbox;
@ -20,9 +21,15 @@ public class TestDungeonRoom5 extends CellularDungeonRoom {
public void generateMain(World world, int x, int y, int z) {
super.generateMain(world, x, y, z);
DungeonToolbox.generateBox(world, x, y + parent.height - 2, z, parent.width, 1, parent.width, new ArrayList() {{ add(Blocks.air); add(Blocks.web); }});
DungeonToolbox.generateBox(world, x, y + parent.height - 2, z, parent.width, 1, parent.width, new ArrayList() {{ add(new MetaBlock(Blocks.air)); add(new MetaBlock(Blocks.web)); }});
DungeonToolbox.generateBox(world, x + 1, y, z + 1, parent.width - 2, 1, parent.width - 2, new ArrayList() {{ add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_polished); add(ModBlocks.meteor_spawner); }});
DungeonToolbox.generateBox(world, x + 1, y, z + 1, parent.width - 2, 1, parent.width - 2, new ArrayList() {{
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_polished));
add(new MetaBlock(ModBlocks.meteor_spawner)); }});
}
public void generateWall(World world, int x, int y, int z, ForgeDirection wall, boolean door) {