From 4bf34653e106684bbca509d208ab6c78b57b6aa5 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 3 Nov 2021 15:14:10 +0100 Subject: [PATCH] merged PR #319 (that's the funny one) --- src/main/java/com/hbm/blocks/ModBlocks.java | 14 +- .../com/hbm/blocks/generic/BlockBobble.java | 59 +- .../com/hbm/blocks/generic/BlockDirt.java | 80 ++ .../com/hbm/blocks/generic/WasteEarth.java | 88 +- .../java/com/hbm/crafting/MineralRecipes.java | 2 + .../com/hbm/crafting/SmeltingRecipes.java | 1 + .../com/hbm/entity/logic/EntityTomBlast.java | 6 + .../java/com/hbm/explosion/ExplosionTom.java | 19 +- .../com/hbm/handler/FluidTypeHandler.java | 3 +- .../com/hbm/handler/ImpactWorldHandler.java | 112 ++ .../com/hbm/inventory/OreDictManager.java | 2 + .../inventory/recipes/CentrifugeRecipes.java | 6 + .../recipes/CrystallizerRecipes.java | 2 + .../hbm/inventory/recipes/MachineRecipes.java | 11 + .../hbm/inventory/recipes/SILEXRecipes.java | 4 + .../inventory/recipes/ShredderRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 33 +- .../items/machine/ItemChemistryTemplate.java | 5 +- .../java/com/hbm/main/CraftingManager.java | 8 +- .../java/com/hbm/main/ModEventHandler.java | 195 ++- .../com/hbm/main/ModEventHandlerClient.java | 6 +- .../com/hbm/render/world/RenderNTMSkybox.java | 396 ++++-- .../java/com/hbm/saveddata/TomSaveData.java | 56 + .../tileentity/machine/TileEntityBarrel.java | 11 + .../machine/TileEntityCondenser.java | 10 + .../tileentity/machine/TileEntitySILEX.java | 1 + .../machine/rbmk/TileEntityRBMKBase.java | 9 + .../java/com/hbm/world/WorldProviderNTM.java | 154 +++ .../java/com/hbm/world/dungeon/Satellite.java | 1177 ++++++++--------- src/main/resources/assets/hbm/lang/de_DE.lang | 11 + src/main/resources/assets/hbm/lang/en_US.lang | 11 + .../textures/blocks/burning_grass_side.png | Bin 0 -> 716 bytes .../hbm/textures/blocks/burning_grass_top.png | Bin 0 -> 724 bytes .../blocks/ore_tektite_osmiridium.png | Bin 0 -> 737 bytes .../assets/hbm/textures/blocks/tektite.png | Bin 0 -> 763 bytes .../assets/hbm/textures/gui/fluids2.png | Bin 33606 -> 37416 bytes .../items/chem_icon_OSMIRIDIUM_DEATH.png | Bin 0 -> 410 bytes .../hbm/textures/items/crystal_osmiridium.png | Bin 0 -> 513 bytes .../hbm/textures/items/ingot_osmiridium.png | Bin 0 -> 420 bytes .../hbm/textures/items/nugget_osmiridium.png | Bin 0 -> 276 bytes .../items/powder_impure_osmiridium.png | Bin 0 -> 418 bytes .../hbm/textures/items/powder_paleogenite.png | Bin 0 -> 343 bytes .../items/powder_paleogenite_tiny.png | Bin 0 -> 261 bytes .../hbm/textures/items/powder_tektite.png | Bin 0 -> 381 bytes 44 files changed, 1772 insertions(+), 721 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockDirt.java create mode 100644 src/main/java/com/hbm/handler/ImpactWorldHandler.java create mode 100644 src/main/java/com/hbm/saveddata/TomSaveData.java create mode 100644 src/main/java/com/hbm/world/WorldProviderNTM.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/burning_grass_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/burning_grass_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_tektite_osmiridium.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/tektite.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_OSMIRIDIUM_DEATH.png create mode 100644 src/main/resources/assets/hbm/textures/items/crystal_osmiridium.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_osmiridium.png create mode 100644 src/main/resources/assets/hbm/textures/items/nugget_osmiridium.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_impure_osmiridium.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_paleogenite.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_paleogenite_tiny.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_tektite.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 06169a87c..b82465974 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -440,6 +440,10 @@ public class ModBlocks { public static Block dirt_oily; public static Block sand_dirty; public static Block sand_dirty_red; + public static Block burning_earth; + public static Block tektite; + public static Block ore_tektite_osmiridium; + public static Block impact_dirt; public static Block fallout; public static Block foam_layer; @@ -1608,7 +1612,11 @@ public class ModBlocks { foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); - dirt_dead = new BlockGeneric(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); + burning_earth = new WasteEarth(Material.ground, true).setBlockName("burning_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":burning_earth"); + tektite = new BlockGeneric(Material.sand).setBlockName("tektite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":tektite"); + ore_tektite_osmiridium = new BlockGeneric(Material.sand).setBlockName("ore_tektite_osmiridium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":ore_tektite_osmiridium"); + impact_dirt = new BlockDirt(Material.ground, true).setBlockName("impact_dirt").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":waste_earth_bottom"); + dirt_dead = new BlockGeneric(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); dirt_oily = new BlockGeneric(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); sand_dirty = new BlockFalling(Material.sand).setBlockName("sand_dirty").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty"); sand_dirty_red = new BlockFalling(Material.sand).setBlockName("sand_dirty_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty_red"); @@ -2587,6 +2595,10 @@ public class ModBlocks { GameRegistry.registerBlock(fallout, ItemBlockHazard.class, fallout.getUnlocalizedName()); GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); + GameRegistry.registerBlock(burning_earth, burning_earth.getUnlocalizedName()); + GameRegistry.registerBlock(tektite, tektite.getUnlocalizedName()); + GameRegistry.registerBlock(ore_tektite_osmiridium, ore_tektite_osmiridium.getUnlocalizedName()); + GameRegistry.registerBlock(impact_dirt, impact_dirt.getUnlocalizedName()); //RAD GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 43b4875a9..944eb9a39 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -2,8 +2,15 @@ package com.hbm.blocks.generic; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -27,6 +34,12 @@ public class BlockBobble extends BlockContainer { public boolean renderAsNormalBlock() { return false; } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int meta = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + } @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { @@ -46,14 +59,52 @@ public class BlockBobble extends BlockContainer { public static class TileEntityBobble extends TileEntity { + public BobbleType type = BobbleType.NONE; + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.type = BobbleType.values()[nbt.getByte("type") % BobbleType.values().length]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("type", (byte) type.ordinal()); + } } public static enum BobbleType { - NONE; + NONE("null", "null", null, null); + + public String name; //the title of the tooltip + public String label; //the name engraved in the socket + public String contribution; //what contributions this person has made, if applicable + public String inscription; //the flavor text - public String name; - public String contribution; - public String inscription; + private BobbleType(String name, String label, String contribution, String inscription) { + this.name = name; + this.label = label; + this.contribution = contribution; + this.inscription = inscription; + } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockDirt.java b/src/main/java/com/hbm/blocks/generic/BlockDirt.java new file mode 100644 index 000000000..a49e27c8f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDirt.java @@ -0,0 +1,80 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.interfaces.Spaghetti; +import com.hbm.items.ModItems; +import com.hbm.main.ModEventHandler; +import com.hbm.potion.HbmPotion; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockGrass; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +/* + * ___________ + * / \ + * |\___________/| + * | , | + * | | ` | + * | | | + * | ' . | + * \___________/ + * + * PU-238 + * + */ +public class BlockDirt extends Block { + + public BlockDirt(Material mat) { + super(mat); + } + + public BlockDirt(Material mat, boolean tick) { + super(mat); + this.setTickRandomly(tick); + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return Item.getItemFromBlock(Blocks.dirt); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + for(int i = -1; i < 2; i++) { + for(int j = -1; j < 2; j++) { + for(int k = -1; k < 2; k++) { + Block b = world.getBlock(x + i, y + j, z + k); + if(b instanceof BlockGrass) { + world.setBlock(x, y, z, Blocks.dirt); + } + } + } + } + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + if(!world.isRemote) { + int light = Math.max(world.getSavedLightValue(EnumSkyBlock.Block, x, y + 1, z), (int) (world.getBlockLightValue(x, y + 1, z) * (1 - ModEventHandler.dust))); + if(light >= 9 && ModEventHandler.fire == 0) { + world.setBlock(x, y, z, Blocks.grass); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index 4d63444e7..9d6e28078 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -11,6 +11,9 @@ import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockLiquid; import net.minecraft.block.BlockMushroom; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -27,6 +30,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.BlockFluidBase; public class WasteEarth extends Block { @@ -43,9 +47,9 @@ public class WasteEarth extends Block { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_top" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_top" : ":frozen_grass_top"))); - this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_earth_bottom" : (this == ModBlocks.waste_mycelium ? ":waste_earth_bottom" : ":frozen_dirt"))); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_side" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_side" : ":frozen_grass_side"))); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_top" : (this == ModBlocks.burning_earth ? ":burning_grass_top" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_top" : ":frozen_grass_top")))); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_earth_bottom" : (this == ModBlocks.burning_earth ? ":waste_earth_bottom" : (this == ModBlocks.waste_mycelium ? ":waste_earth_bottom" : ":frozen_dirt")))); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_side" : (this == ModBlocks.burning_earth ? ":burning_grass_side" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_side" : ":frozen_grass_side")))); } @Override @@ -56,7 +60,8 @@ public class WasteEarth extends Block { @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) { + + if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium || this == ModBlocks.burning_earth) { return Item.getItemFromBlock(Blocks.dirt); } @@ -73,23 +78,35 @@ public class WasteEarth extends Block { } @Override - public void onEntityWalking(World p_149724_1_, int p_149724_2_, int p_149724_3_, int p_149724_4_, Entity entity) { - if(entity instanceof EntityLivingBase && this == ModBlocks.frozen_grass) { - - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); - } - if(entity instanceof EntityLivingBase && this == ModBlocks.waste_mycelium) { - - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 3)); + public void onEntityWalking(World p_149724_1_, int x, int y, int z, Entity entity) { + + if(entity instanceof EntityLivingBase) { + + EntityLivingBase living = (EntityLivingBase) entity; + + if(this == ModBlocks.frozen_grass) { + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); + } + if(this == ModBlocks.waste_mycelium) { + living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 3)); + } + if(this == ModBlocks.burning_earth) { + living.setFire(5); + } } } @Override @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_) { - super.randomDisplayTick(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_, p_149734_5_); + public void randomDisplayTick(World world, int x, int y, int z, Random rand) { + super.randomDisplayTick(world, x, y, z, rand); + if(this == ModBlocks.waste_mycelium) { - p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat(), p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat(), 0.0D, 0.0D, 0.0D); + world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); + } + if(this == ModBlocks.burning_earth) { + world.spawnParticle("flame", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); + world.spawnParticle("smoke", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); } } @@ -109,6 +126,36 @@ public class WasteEarth extends Block { } } } + + if(this == ModBlocks.burning_earth) { + + for(int i = -1; i < 2; i++) { + for(int j = -1; j < 2; j++) { + for(int k = -1; k < 2; k++) { + + Block b0 = world.getBlock(x + i, y + j, z + k); + Block b1 = world.getBlock(x + i, y + j + 1, z + k); + + if(!b1.isOpaqueCube() && + ((b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth || + b0 == ModBlocks.frozen_grass || b0 == ModBlocks.waste_mycelium) + && !world.canLightningStrikeAt(x, y, z))) { + world.setBlock(x + i, y + j, z + k, ModBlocks.burning_earth); + } + if((b0 instanceof BlockLeaves || b0 instanceof BlockBush)) { + world.setBlockToAir(x + i, y + j, z + k); + } + if(b0 == ModBlocks.frozen_dirt) { + world.setBlock(x + i, y + j, z + k, Blocks.dirt); + } + if(b1.isFlammable(world, x, y, z, ForgeDirection.UP) && !(b1 instanceof BlockLeaves || b1 instanceof BlockBush) && world.getBlock(x, y + 1, z) == Blocks.air) { + world.setBlock(x, y + 1, z, Blocks.fire); + } + } + } + } + world.setBlock(x, y, z, ModBlocks.impact_dirt); + } if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) { @@ -123,6 +170,17 @@ public class WasteEarth extends Block { } } + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + if(this == ModBlocks.burning_earth) { + Block b = world.getBlock(x, y + 1, z); + if(b instanceof BlockLiquid || b instanceof BlockFluidBase || b.isBlockNormalCube()) { + world.setBlock(x, y, z, Blocks.dirt); + } + } + } + @Override public boolean canSustainPlant(IBlockAccess world, int x, int y, int z, ForgeDirection direction, IPlantable plantable) { diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 71fb891c6..28970778f 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -354,6 +354,8 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.nugget_mercury, 8), new Object[] { "#", '#', ModItems.bottle_mercury }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire, 1), new Object[] { "###", "###", "###", '#', ModItems.egg_balefire_shard }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); + add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); + add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); GameRegistry.addRecipe(new ItemStack(ModBlocks.hazmat, 8), new Object[] { "###", "# #", "###", '#', ModItems.hazmat_cloth }); GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_cloth, 1), new Object[] { "#", '#', ModBlocks.hazmat }); diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 50cd8a7af..1cc165b5b 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -142,6 +142,7 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.crystal_starmetal, new ItemStack(ModItems.ingot_starmetal, 2), 2.0F); GameRegistry.addSmelting(ModItems.crystal_trixite, new ItemStack(ModItems.ingot_plutonium, 4), 2.0F); GameRegistry.addSmelting(ModItems.crystal_cinnebar, new ItemStack(ModItems.cinnebar, 4), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_osmiridium, new ItemStack(ModItems.ingot_osmiridium, 1), 2.0F); GameRegistry.addSmelting(ModItems.casing_357, new ItemStack(ModItems.ingot_copper), 0.1F); GameRegistry.addSmelting(ModItems.casing_44, new ItemStack(ModItems.ingot_copper), 0.1F); diff --git a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java index 3eaa1479e..9572ee734 100644 --- a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java @@ -6,6 +6,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionTom; import com.hbm.main.MainRegistry; +import com.hbm.saveddata.TomSaveData; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; @@ -71,6 +72,11 @@ public class EntityTomBlast extends Entity { if(flag) { this.setDead(); + TomSaveData data = TomSaveData.forWorld(worldObj); + NBTTagCompound tag = data.getData(); + tag.setBoolean("impact", true); + tag.setFloat("fire", 1); + data.markDirty(); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionTom.java b/src/main/java/com/hbm/explosion/ExplosionTom.java index 5100ec26e..7125232e4 100644 --- a/src/main/java/com/hbm/explosion/ExplosionTom.java +++ b/src/main/java/com/hbm/explosion/ExplosionTom.java @@ -1,5 +1,7 @@ package com.hbm.explosion; +import com.hbm.blocks.ModBlocks; + import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -105,7 +107,22 @@ public class ExplosionTom if(y == 0) break; - worldObj.setBlockToAir(pX, y, pZ); + if(y <= threshold + 2 && worldObj.getBlock(pX, y, pZ) != Blocks.air) { + + if(worldObj.rand.nextInt(499) < 1) { + worldObj.setBlock(pX, y, pZ, ModBlocks.ore_tektite_osmiridium); + } else { + worldObj.setBlock(pX, y, pZ, ModBlocks.tektite); + } + + } else { + if(y > 16) { + worldObj.setBlockToAir(pX, y, pZ); + } else { + worldObj.setBlock(pX, y, pZ, Blocks.lava, 0, 2); + } + + } y--; } diff --git a/src/main/java/com/hbm/handler/FluidTypeHandler.java b/src/main/java/com/hbm/handler/FluidTypeHandler.java index 9e4562832..9529178e0 100644 --- a/src/main/java/com/hbm/handler/FluidTypeHandler.java +++ b/src/main/java/com/hbm/handler/FluidTypeHandler.java @@ -94,7 +94,8 @@ public class FluidTypeHandler { PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), PLASMA_DH3 (0xFF83AA, 6, 2, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dh3", 3480, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), - HELIUM3 (0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3"); + HELIUM3 (0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3"), + DEATH (0x717A88, 8, 2, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2); //Approximate HEX Color of the fluid, used for pipe rendering diff --git a/src/main/java/com/hbm/handler/ImpactWorldHandler.java b/src/main/java/com/hbm/handler/ImpactWorldHandler.java new file mode 100644 index 000000000..5be8629bc --- /dev/null +++ b/src/main/java/com/hbm/handler/ImpactWorldHandler.java @@ -0,0 +1,112 @@ +package com.hbm.handler; + +import java.util.Collection; +import java.util.List; +import java.util.Map.Entry; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ModEventHandler; +import com.hbm.saveddata.TomSaveData; +import com.hbm.world.WorldProviderNTM; + +import net.minecraft.block.Block; + +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockLog; +import net.minecraft.block.BlockVine; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.gen.ChunkProviderServer; +import net.minecraftforge.common.util.ForgeDirection; + +public class ImpactWorldHandler { + + public static void impactEffects(World world) { + + if(!(world instanceof WorldServer)) + return; + + if(!(world.provider.dimensionId == 0)) { + return; + } + + WorldServer serv = (WorldServer) world; + + ChunkProviderServer provider = (ChunkProviderServer) serv.getChunkProvider(); + Random rand = new Random(); + List list = serv.theChunkProviderServer.loadedChunks; + int listSize = list.size(); + + if(listSize > 0) { + for(int i = 0; i < 3; i++) { + + Chunk chunk = list.get(serv.rand.nextInt(listSize)); + ChunkCoordIntPair coord = chunk.getChunkCoordIntPair(); + + for(int x = 0; x < 16; x++) { + for(int z = 0; z < 16; z++) { + + int X = coord.getCenterXPos() - 8 + x; + int Z = coord.getCenterZPosition() - 8 + z; + int Y = world.getHeightValue(X, Z) - world.rand.nextInt(Math.max(1, world.getHeightValue(X, Z))); + int Y2 = world.getHeightValue(X, Z) - world.rand.nextInt(2); + + die(world, X, Y, Z); + if(TomSaveData.fire > 0 || ModEventHandler.fire > 0) { + burn(world, X, Y, Z); + } + } + } + } + } + } + + /// Plants die without sufficient light. + public static void die(World world, int x, int y, int z) { + + int light = Math.max(world.getSavedLightValue(EnumSkyBlock.Block, x, y + 1, z), (int) (world.getBlockLightValue(x, y + 1, z) * (1 - ModEventHandler.dust))); + + if(world.getBlock(x, y, z) == Blocks.grass) { + if(light < 4) + world.setBlock(x, y, z, Blocks.dirt); + + } else if(world.getBlock(x, y, z) instanceof BlockBush) { + if(light < 4) + world.setBlock(x, y, z, Blocks.air); + + } else if(world.getBlock(x, y, z) instanceof BlockLeaves) { + if(light < 4) + world.setBlock(x, y, z, Blocks.air); + + } else if(world.getBlock(x, y, z) instanceof BlockVine) { + if(light < 4) + world.setBlock(x, y, z, Blocks.air); + } + } + + /// Burn the world. + public static void burn(World world, int x, int y, int z) { + + Block b = world.getBlock(x, y, z); + if(b.isFlammable(world, x, y, z, ForgeDirection.UP) && world.getBlock(x, y + 1, z) == Blocks.air && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { + if(b instanceof BlockLeaves || b instanceof BlockBush) { + world.setBlockToAir(x, y, z); + } + world.setBlock(x, y + 1, z, Blocks.fire); + + } else if((b == Blocks.grass || b == Blocks.mycelium || b == ModBlocks.waste_earth || b == ModBlocks.frozen_grass || b == ModBlocks.waste_mycelium) && + !world.canLightningStrikeAt(x, y, z) && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { + world.setBlock(x, y, z, ModBlocks.burning_earth); + + } else if(b == ModBlocks.frozen_dirt && world.getSavedLightValue(EnumSkyBlock.Sky, x, y + 1, z) >= 7) { + world.setBlock(x, y, z, Blocks.dirt); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 1fdd642d0..e2f05c14d 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -149,6 +149,7 @@ public class OreDictManager { public static final DictFrame DNT = new DictFrame("Dineutronium"); public static final DictFrame FIBER = new DictFrame("Fiberglass"); public static final DictFrame ASBESTOS = new DictFrame("Asbestos"); + public static final DictFrame OSMIRIDIUM = new DictFrame("Osmiridium"); /* * DUST AND GEM ORES */ @@ -281,6 +282,7 @@ public class OreDictManager { DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium); FIBER .ingot(ingot_fiberglass) .block(block_fiberglass); ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos); + OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium); /* * DUST AND GEM ORES diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 680a7c14c..c93b7cc6b 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -209,6 +209,12 @@ public class CentrifugeRecipes { new ItemStack(ModItems.powder_copper, 1), new ItemStack(Blocks.gravel, 1) }); + recipes.put(new ComparableStack(ModItems.powder_tektite), new ItemStack[] { + new ItemStack(ModItems.powder_meteorite_tiny, 1), + new ItemStack(ModItems.powder_paleogenite_tiny, 1), + new ItemStack(ModItems.powder_meteorite_tiny, 1), + new ItemStack(ModItems.dust, 6) }); + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 769cb85d0..62b22a3fb 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -77,6 +77,8 @@ public class CrystallizerRecipes { recipes.put(new ComparableStack(ModItems.meteorite_sword_treated), new ItemStack(ModItems.meteorite_sword_etched, 1)); + recipes.put(new ComparableStack(ModItems.powder_impure_osmiridium), new ItemStack(ModItems.crystal_osmiridium)); + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 5839fdc29..9e21295b5 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -1469,6 +1469,11 @@ public class MachineRecipes { case HELIUM3: list.add(new ItemStack(ModBlocks.moon_turf, 8)); break; + case OSMIRIDIUM_DEATH: + list.add(new ItemStack(ModItems.powder_paleogenite, 1)); + list.add(new ItemStack(ModItems.fluorite, 8)); + list.add(new ItemStack(ModItems.nugget_bismuth, 4)); + break; default: break; } @@ -1715,6 +1720,9 @@ public class MachineRecipes { input[0] = new FluidStack(100, FluidType.PETROLEUM); input[1] = new FluidStack(1000, FluidType.WATER); break; + case OSMIRIDIUM_DEATH: + input[0] = new FluidStack(1000, FluidType.ACID); + break; default: break; } @@ -2021,6 +2029,9 @@ public class MachineRecipes { break; case HELIUM3: output[0] = new FluidStack(1000, FluidType.HELIUM3); + case OSMIRIDIUM_DEATH: + output[0] = new FluidStack(1000, FluidType.DEATH); + break; default: break; } diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index e1f0797a2..e2078e0f3 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -76,6 +76,10 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_cobalt), 3)) ); + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, FluidType.DEATH.ordinal()), new SILEXRecipe(1000, 1000) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_impure_osmiridium), 1)) + ); + for(int i = 0; i < 5; i++) { // UEU // diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 85fdf9458..a1a3b3623 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -173,6 +173,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(Items.reeds, new ItemStack(Items.paper, 3)); ShredderRecipes.setRecipe(Items.fermented_spider_eye, new ItemStack(ModItems.powder_poison, 3)); ShredderRecipes.setRecipe(Items.poisonous_potato, new ItemStack(ModItems.powder_poison, 1)); + ShredderRecipes.setRecipe(ModBlocks.ore_tektite_osmiridium, new ItemStack(ModItems.powder_tektite, 1)); for(int i = 0; i < 5; i++) ShredderRecipes.setRecipe(new ItemStack(Items.skull, 1, i), new ItemStack(ModItems.biomass)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 238c97ebb..7978ecc4e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -244,6 +244,8 @@ public class ModItems { public static Item ingot_tantalium; public static Item nugget_tantalium; public static Item ingot_niobium; + public static Item ingot_osmiridium; + public static Item nugget_osmiridium; public static Item plate_lead; public static Item nugget_schrabidium; public static Item plate_schrabidium; @@ -335,6 +337,7 @@ public class ModItems { public static Item crystal_starmetal; public static Item crystal_cinnebar; public static Item crystal_trixite; + public static Item crystal_osmiridium; public static Item gem_tantalium; public static Item gem_volcanic; @@ -423,6 +426,10 @@ public class ModItems { public static Item powder_coltan_ore; public static Item powder_coltan; + public static Item powder_tektite; + public static Item powder_paleogenite; + public static Item powder_paleogenite_tiny; + public static Item powder_impure_osmiridium; public static Item powder_lanthanium; public static Item powder_actinium; @@ -2717,7 +2724,9 @@ public class ModItems { ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); ingot_niobium = new Item().setUnlocalizedName("ingot_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_niobium"); - nugget_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); + ingot_osmiridium = new Item().setUnlocalizedName("ingot_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_osmiridium"); + nugget_osmiridium = new Item().setUnlocalizedName("nugget_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_osmiridium"); + nugget_schrabidium = new Item().setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); hazmat_cloth_red = new Item().setUnlocalizedName("hazmat_cloth_red").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_red"); @@ -2727,10 +2736,10 @@ public class ModItems { rag_damp = new Item().setUnlocalizedName("rag_damp").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_damp"); rag_piss = new Item().setUnlocalizedName("rag_piss").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_piss"); filter_coal = new Item().setUnlocalizedName("filter_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":filter_coal"); - ingot_hes = new ItemHazard(ItemHazard.saf * ItemHazard.ingot, false, true).setUnlocalizedName("ingot_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_hes"); - ingot_les = new ItemHazard(ItemHazard.saf * ItemHazard.ingot, false, true).setUnlocalizedName("ingot_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_les"); - nugget_hes = new ItemHazard(ItemHazard.saf * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_hes"); - nugget_les = new ItemHazard(ItemHazard.saf * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_les"); + ingot_hes = new Item().setUnlocalizedName("ingot_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_hes"); + ingot_les = new Item().setUnlocalizedName("ingot_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_les"); + nugget_hes = new Item().setUnlocalizedName("nugget_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_hes"); + nugget_les = new Item().setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_les"); plate_combine_steel = new Item().setUnlocalizedName("plate_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_combine_steel"); crystal_coal = new Item().setUnlocalizedName("crystal_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_coal"); @@ -2760,6 +2769,7 @@ public class ModItems { crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); crystal_cinnebar = new Item().setUnlocalizedName("crystal_cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cinnebar"); crystal_trixite = new ItemHazard().addRadiation(ItemHazard.trx * ItemHazard.crystal).toItem().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); + crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); @@ -2852,7 +2862,11 @@ public class ModItems { powder_balefire = new ItemHazard().addRadiation(500F).addFire(5).toItem().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); powder_coltan_ore = new ItemHazard().addAsbestos(3).toItem().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore"); powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan"); - + powder_tektite = new Item().setUnlocalizedName("powder_tektite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tektite"); + powder_paleogenite = new Item().setUnlocalizedName("powder_paleogenite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite"); + powder_paleogenite_tiny = new Item().setUnlocalizedName("powder_paleogenite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite_tiny"); + powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); + fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); fragment_niobium = new Item().setUnlocalizedName("fragment_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_niobium"); @@ -5493,6 +5507,7 @@ public class ModItems { GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName()); GameRegistry.registerItem(ingot_electronium, ingot_electronium.getUnlocalizedName()); GameRegistry.registerItem(ingot_smore, ingot_smore.getUnlocalizedName()); + GameRegistry.registerItem(ingot_osmiridium, ingot_osmiridium.getUnlocalizedName()); //Meteorite Ingots GameRegistry.registerItem(ingot_steel_dusted, ingot_steel_dusted.getUnlocalizedName()); @@ -5603,6 +5618,10 @@ public class ModItems { GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName()); GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName()); GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName()); + GameRegistry.registerItem(powder_tektite, powder_tektite.getUnlocalizedName()); + GameRegistry.registerItem(powder_paleogenite, powder_paleogenite.getUnlocalizedName()); + GameRegistry.registerItem(powder_paleogenite_tiny, powder_paleogenite_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_tantalium, powder_tantalium.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); @@ -5699,6 +5718,7 @@ public class ModItems { GameRegistry.registerItem(crystal_starmetal, crystal_starmetal.getUnlocalizedName()); GameRegistry.registerItem(crystal_cinnebar, crystal_cinnebar.getUnlocalizedName()); GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); + GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); @@ -5765,6 +5785,7 @@ public class ModItems { GameRegistry.registerItem(nugget_desh, nugget_desh.getUnlocalizedName()); GameRegistry.registerItem(nugget_euphemium, nugget_euphemium.getUnlocalizedName()); GameRegistry.registerItem(nugget_dineutronium, nugget_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_osmiridium, nugget_osmiridium.getUnlocalizedName()); //Plates GameRegistry.registerItem(plate_iron, plate_iron.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index cbe19de62..3ee7a2975 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -103,7 +103,8 @@ public class ItemChemistryTemplate extends Item { TEL, GASOLINE, FRACKSOL, - HELIUM3; + HELIUM3, + OSMIRIDIUM_DEATH; public static EnumChemistryTemplate getEnum(int i) { if(i < EnumChemistryTemplate.values().length) @@ -303,6 +304,8 @@ public class ItemChemistryTemplate extends Item { return 20; case HELIUM3: return 200; + case OSMIRIDIUM_DEATH: + return 240; default: return 100; } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 314e4ce70..6ef24b1ef 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -692,10 +692,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', ModItems.circuit_bismuth }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', STAR.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', STAR.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.sellafield_core, 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', STAR.ingot(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', STAR.ingot(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.sellafield_core, 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ModItems.oil_tar }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e31322094..ac090ea69 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -50,12 +50,15 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; +import com.hbm.saveddata.TomSaveData; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.util.EntityDamageUtil; +import com.hbm.world.WorldProviderNTM; import com.hbm.world.generator.TimedGenerator; +import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; @@ -67,6 +70,12 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import net.minecraft.block.Block; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockCrops; +import net.minecraft.block.BlockDoor; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockLog; +import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -83,6 +92,7 @@ import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityMooshroom; import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.passive.EntityWaterMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.event.ClickEvent; @@ -104,12 +114,16 @@ import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityEvent; import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; @@ -122,11 +136,22 @@ import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerUseItemEvent; +import net.minecraftforge.event.terraingen.BiomeEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; import net.minecraftforge.event.world.BlockEvent.BreakEvent; +import net.minecraftforge.event.world.WorldEvent; public class ModEventHandler { - static Random rand = new Random(); + + ////////////////////////////////////////// + private static Random rand = new Random(); + public static float dust; + public static float fire; + public static boolean impact; + ////////////////////////////////////////// @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { @@ -515,6 +540,174 @@ public class ModEventHandler { } } } + + //TODO: move all of this insto its own event handler + /// TOM STUFF /// + /// TOM STUFF /// + /// TOM STUFF /// + @SubscribeEvent(priority = EventPriority.LOWEST) + public void onLoad(WorldEvent.Load event) { + DimensionManager.unregisterProviderType(0); + DimensionManager.registerProviderType(0, WorldProviderNTM.class, true); + } + + @SubscribeEvent(priority = EventPriority.LOWEST) + public void onUnload(WorldEvent.Unload event) { + // We don't want Tom's impact data transferring between worlds. + TomSaveData data = TomSaveData.forWorld(event.world); + this.fire = 0; + this.dust = 0; + this.impact = false; + data.fire = 0; + data.dust = 0; + data.impact = false; + } + + @SubscribeEvent + public void extinction(EntityJoinWorldEvent event) { + if(impact == true) { + if(!(event.entity instanceof EntityPlayer) && event.entity instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) event.entity; + if(event.world.provider.dimensionId == 0) { + if(event.entity.height >= 0.85f || event.entity.width >= 0.85f && event.entity.ticksExisted < 20 && !(event.entity instanceof EntityWaterMob) && !living.isChild()) { + event.setCanceled(true); + } + } + if(event.entity instanceof EntityWaterMob && event.entity.ticksExisted < 20) { + Random rand = new Random(); + if(rand.nextInt(9) != 0) { + event.setCanceled(true); + } + } + } + } + } + + @SubscribeEvent + public void villages(BiomeEvent.GetVillageBlockID event) { + Block b = event.original; + Material mat = event.original.getMaterial(); + + if(event.biome == null) { + return; + } + + if(impact == true) { + if(mat == Material.wood || mat == Material.glass || b == Blocks.ladder || b instanceof BlockCrops || + b == Blocks.chest || b instanceof BlockDoor || mat == Material.cloth || mat == Material.water) { + event.replacement = Blocks.air; + + } else if(b == Blocks.cobblestone || b == Blocks.stonebrick) { + if(rand.nextInt(3) == 1) { + event.replacement = Blocks.gravel; + } + } else if(b == Blocks.sandstone) { + if(rand.nextInt(3) == 1) { + event.replacement = Blocks.sand; + } + } else if(b == Blocks.farmland) { + event.replacement = Blocks.dirt; + } + } + + if(event.replacement != null) { + event.setResult(Result.DENY); + } + } + + @SubscribeEvent + public void postImpactGeneration(BiomeEvent event) { + /// Disables post-impact surface replacement for superflat worlds + /// because they are retarded and crash with a NullPointerException if + /// you try to look for biome-specific blocks. + if(event.biome != null) { + if(event.biome.topBlock != null) { + if(event.biome.topBlock == Blocks.grass) { + if(impact == true && (dust > 0 || fire > 0)) { + // if(dust > 0 || fire > 0) + // { + final Block newtop = ModBlocks.impact_dirt; + event.biome.topBlock = newtop; + /* + * } else { event.biome.topBlock=Blocks.grass; } + */ + } else { + event.biome.topBlock = Blocks.grass; + } + } + } + } + } + + @SubscribeEvent + public void postImpactDecoration(DecorateBiomeEvent.Decorate event) { + + if(impact == true) { + EventType type = event.type; + + if(dust > 0 || fire > 0) { + if(type == event.type.TREE || type == event.type.BIG_SHROOM || type == event.type.GRASS || type == event.type.REED || type == event.type.FLOWERS || type == event.type.DEAD_BUSH + || type == event.type.CACTUS || type == event.type.PUMPKIN || type == event.type.LILYPAD) { + event.setResult(Result.DENY); + } + + } else if(dust == 0 && fire == 0) { + if(type == event.type.TREE || type == event.type.BIG_SHROOM || type == event.type.CACTUS) { + if(event.world.rand.nextInt(9) == 0) { + event.setResult(Result.DEFAULT); + } else { + event.setResult(Result.DENY); + } + } + + if(type == event.type.GRASS || type == event.type.REED) { + event.setResult(Result.DEFAULT); + } + } + + } else { + event.setResult(Result.DEFAULT); + } + } + + @SubscribeEvent + public void populateChunk(PopulateChunkEvent.Post event) { + if(impact == true) { + Chunk chunk = event.world.getChunkFromChunkCoords(event.chunkX, event.chunkZ); + + for(ExtendedBlockStorage storage : chunk.getBlockStorageArray()) { + + if(storage != null) { + + for(int x = 0; x < 16; ++x) { + for(int y = 0; y < 16; ++y) { + for(int z = 0; z < 16; ++z) { + + if(dust > 0.25 || fire > 0) { + if(storage.getBlockByExtId(x, y, z) == Blocks.grass) { + storage.func_150818_a(x, y, z, ModBlocks.impact_dirt); + } else if(storage.getBlockByExtId(x, y, z) instanceof BlockLog) { + storage.func_150818_a(x, y, z, Blocks.air); + } else if(storage.getBlockByExtId(x, y, z) instanceof BlockLeaves) { + storage.func_150818_a(x, y, z, Blocks.air); + } else if(storage.getBlockByExtId(x, y, z).getMaterial() == Material.leaves) { + storage.func_150818_a(x, y, z, Blocks.air); + } else if(storage.getBlockByExtId(x, y, z).getMaterial() == Material.plants) { + storage.func_150818_a(x, y, z, Blocks.air); + } else if(storage.getBlockByExtId(x, y, z) instanceof BlockBush) { + storage.func_150818_a(x, y, z, Blocks.air); + } + } + } + } + } + } + } + } + } + /// TOM STUFF /// + /// TOM STUFF /// + /// TOM STUFF /// @SubscribeEvent public void worldTick(WorldTickEvent event) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2909050a3..7784905a1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -666,15 +666,13 @@ public class ModEventHandlerClient { World world = Minecraft.getMinecraft().theWorld; - if(world != null && world.provider instanceof WorldProviderSurface && !RenderNTMSkybox.didLastRender) { + if(world != null && world.provider instanceof WorldProviderSurface) { IRenderHandler sky = world.provider.getSkyRenderer(); if(!(sky instanceof RenderNTMSkybox)) { - world.provider.setSkyRenderer(new RenderNTMSkybox(sky)); + world.provider.setSkyRenderer(new RenderNTMSkybox()); } } - - RenderNTMSkybox.didLastRender = false; } } diff --git a/src/main/java/com/hbm/render/world/RenderNTMSkybox.java b/src/main/java/com/hbm/render/world/RenderNTMSkybox.java index a76ff9f1a..a76f3318a 100644 --- a/src/main/java/com/hbm/render/world/RenderNTMSkybox.java +++ b/src/main/java/com/hbm/render/world/RenderNTMSkybox.java @@ -1,115 +1,339 @@ package com.hbm.render.world; -import org.lwjgl.opengl.GL11; - -import com.hbm.extprop.HbmLivingProps; - import cpw.mods.fml.client.FMLClientHandler; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderGlobal; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; +import net.minecraft.util.Vec3; +import net.minecraft.world.WorldProviderSurface; import net.minecraftforge.client.IRenderHandler; -public class RenderNTMSkybox extends IRenderHandler { //why an abstract class uses the I-prefix is beyond me but ok, alright, whatever - - /* - * To get the terrain render order right, making a sky rendering handler is absolutely necessary. Turns out MC can only handle one of these, so what do we do? - * We make out own renderer, grab any existing renderers that are already occupying the slot, doing what is effectively chainloading while adding our own garbage. - * If somebody does the exact same thing as we do we might be screwed due to increasingly long recursive loops but we can fix that too, no worries. - */ - private IRenderHandler parent; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.main.ModEventHandler; + +import java.util.Random; + +public class RenderNTMSkybox extends IRenderHandler { + + private static final ResourceLocation sunTexture = new ResourceLocation("textures/environment/sun.png"); + private static final ResourceLocation moonTexture = new ResourceLocation("textures/environment/moon_phases.png"); private static final ResourceLocation digammaStar = new ResourceLocation("hbm:textures/misc/star_digamma.png"); private static final ResourceLocation bobmazonSat = new ResourceLocation("hbm:textures/misc/sat_bobmazon.png"); - - /* - * If the skybox was rendered successfully in the last tick (even from other mods' skyboxes chainloading this one) then we don't need to add it again - */ - public static boolean didLastRender = false; - - public RenderNTMSkybox(IRenderHandler parent) { - this.parent = parent; + + public int starGLCallList = GLAllocation.generateDisplayLists(3); + public int glSkyList; + public int glSkyList2; + + protected double x; + protected double y; + protected double z; + + /// I had to break your compat feature for other mods' skyboxes in order to + /// make the skybox render correctly after Tom. Sorry about that. -Pu + + public RenderNTMSkybox() { + GL11.glPushMatrix(); + GL11.glNewList(this.starGLCallList, GL11.GL_COMPILE); + this.renderStars(); + GL11.glEndList(); + GL11.glPopMatrix(); + final Tessellator tessellator = Tessellator.instance; + this.glSkyList = this.starGLCallList + 1; + GL11.glNewList(this.glSkyList, GL11.GL_COMPILE); + final byte byte2 = 64; + final int i = 256 / byte2 + 2; + float f = 16F; + + for(int j = -byte2 * i; j <= byte2 * i; j += byte2) { + for(int l = -byte2 * i; l <= byte2 * i; l += byte2) { + tessellator.startDrawingQuads(); + tessellator.addVertex(j + 0, f, l + 0); + tessellator.addVertex(j + byte2, f, l + 0); + tessellator.addVertex(j + byte2, f, l + byte2); + tessellator.addVertex(j + 0, f, l + byte2); + tessellator.draw(); + } + } + + GL11.glEndList(); + this.glSkyList2 = this.starGLCallList + 2; + GL11.glNewList(this.glSkyList2, GL11.GL_COMPILE); + f = -16F; + tessellator.startDrawingQuads(); + + for(int k = -byte2 * i; k <= byte2 * i; k += byte2) { + for(int i1 = -byte2 * i; i1 <= byte2 * i; i1 += byte2) { + tessellator.addVertex(k + byte2, f, i1 + 0); + tessellator.addVertex(k + 0, f, i1 + 0); + tessellator.addVertex(k + 0, f, i1 + byte2); + tessellator.addVertex(k + byte2, f, i1 + byte2); + } + } + + tessellator.draw(); + GL11.glEndList(); } - + @Override public void render(float partialTicks, WorldClient world, Minecraft mc) { - - if(parent != null) { - parent.render(partialTicks, world, mc); - } else{ - RenderGlobal rg = Minecraft.getMinecraft().renderGlobal; - world.provider.setSkyRenderer(null); - rg.renderSky(partialTicks); - world.provider.setSkyRenderer(this); + float atmosphericDust = ModEventHandler.dust; + + GL11.glDisable(GL11.GL_TEXTURE_2D); + Vec3 vec3 = world.getSkyColor(mc.renderViewEntity, partialTicks); + float f1 = (float) vec3.xCoord; + float f2 = (float) vec3.yCoord; + float f3 = (float) vec3.zCoord; + float f6; + float dust = Math.max((1.0F - (atmosphericDust * 2)), 0); + float rain = dust * (1.0F - world.getRainStrength(partialTicks)); + + if(mc.gameSettings.anaglyph) { + float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; + float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; + f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; + f1 = f4; + f2 = f5; + f3 = f6; } - - GL11.glPushMatrix(); + + GL11.glColor3f(f1, f2, f3); + Tessellator tessellator = Tessellator.instance; GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_FOG); + GL11.glColor3f(f1, f2, f3); + GL11.glCallList(this.glSkyList); + GL11.glDisable(GL11.GL_FOG); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + RenderHelper.disableStandardItemLighting(); + float f7; + float f8; + float f9; + float f10; + float f18 = world.getStarBrightness(partialTicks); + + if(f18 > 0.0F) { + GL11.glPushMatrix(); + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-19.0F, 0, 1.0F, 0); + GL11.glColor4f(f18, f18, f18, f18 * rain); + GL11.glCallList(this.starGLCallList); + GL11.glPopMatrix(); + } + + GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_FOG); - OpenGlHelper.glBlendFunc(770, 1, 1, 0); - - float brightness = (float) Math.sin(world.getCelestialAngle(partialTicks) * Math.PI); - brightness *= brightness; - - GL11.glColor4f(brightness, brightness, brightness, 1.0F); - + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE, GL11.GL_ZERO); GL11.glPushMatrix(); + f7 = 0.0F; + f8 = 0.0F; + f9 = 0.0F; + GL11.glTranslatef(f7, f8, f9); GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(140.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-40.0F, 0.0F, 0.0F, 1.0F); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(digammaStar); - - float digamma = HbmLivingProps.getDigamma(Minecraft.getMinecraft().thePlayer); - float var12 = 1F * (1 + digamma * 0.25F); - double dist = 100D - digamma * 2.5; - - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); - tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D); - tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D); - tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D); - tessellator.draw(); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glRotatef(-40.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef((System.currentTimeMillis() % (360 * 1000) / 1000F), 0.0F, 1.0F, 0.0F); - GL11.glRotatef((System.currentTimeMillis() % (360 * 100) / 100F), 1.0F, 0.0F, 0.0F); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(bobmazonSat); - - var12 = 0.5F; - dist = 100D; - - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); - tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D); - tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D); - tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D); - tessellator.draw(); - GL11.glPopMatrix(); - - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_FOG); + // Render sun + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(0.0F, 0.0F, 0.0F, 1.0F); + // Some blanking to conceal the stars + f10 = 30.0F; + tessellator.startDrawingQuads(); + tessellator.addVertex(-f10, 99.9D, -f10); + tessellator.addVertex(f10, 99.9D, -f10); + tessellator.addVertex(f10, 99.9D, f10); + tessellator.addVertex(-f10, 99.9D, f10); + tessellator.draw(); + { + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(1.0F, 1.0F, 1.0F, rain); + mc.renderEngine.bindTexture(this.sunTexture); + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(-f10, 100.0D, -f10, 0.0D, 0.0D); + tessellator.addVertexWithUV(f10, 100.0D, -f10, 1.0D, 0.0D); + tessellator.addVertexWithUV(f10, 100.0D, f10, 1.0D, 1.0D); + tessellator.addVertexWithUV(-f10, 100.0D, f10, 0.0D, 1.0D); + tessellator.draw(); + } + { + GL11.glColor4d(1, 1, 1, rain); + f10 = 20.0F; + FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderNTMSkybox.moonTexture); + float sinphi = FMLClientHandler.instance().getClient().theWorld.getMoonPhase(); + final int cosphi = (int) (sinphi % 4); + final int var29 = (int) (sinphi / 4 % 2); + final float yy = (cosphi + 0) / 4.0F; + final float rand7 = (var29 + 0) / 2.0F; + final float zz = (cosphi + 1) / 4.0F; + final float rand9 = (var29 + 1) / 2.0F; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(-f10, -100.0D, f10, zz, rand9); + tessellator.addVertexWithUV(f10, -100.0D, f10, yy, rand9); + tessellator.addVertexWithUV(f10, -100.0D, -f10, yy, rand7); + tessellator.addVertexWithUV(-f10, -100.0D, -f10, zz, rand7); + tessellator.draw(); + } + { + OpenGlHelper.glBlendFunc(770, 1, 1, 0); + + float brightness = (float) Math.sin(world.getCelestialAngle(partialTicks) * Math.PI); + brightness *= brightness; + + GL11.glPushMatrix(); + GL11.glColor4f(brightness, brightness, brightness, dust); + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(140.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-40.0F, 0.0F, 0.0F, 1.0F); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(digammaStar); + + float digamma = HbmLivingProps.getDigamma(Minecraft.getMinecraft().thePlayer); + float var12 = 1F * (1 + digamma * 0.25F); + double dist = 100D - digamma * 2.5; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); + tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D); + tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D); + tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D); + tessellator.draw(); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glColor4f(brightness, brightness, brightness, rain); + GL11.glRotatef(-40.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef((System.currentTimeMillis() % (360 * 1000) / 1000F), 0.0F, 1.0F, 0.0F); + GL11.glRotatef((System.currentTimeMillis() % (360 * 100) / 100F), 1.0F, 0.0F, 0.0F); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(bobmazonSat); + + var12 = 0.5F; + dist = 100D; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); + tessellator.addVertexWithUV(var12, dist, -var12, 0.0D, 1.0D); + tessellator.addVertexWithUV(var12, dist, var12, 1.0D, 1.0D); + tessellator.addVertexWithUV(-var12, dist, var12, 1.0D, 0.0D); + tessellator.draw(); + GL11.glPopMatrix(); + } + GL11.glDisable(GL11.GL_TEXTURE_2D); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - + GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); - - didLastRender = true; + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor3f(0.0F, 0.0F, 0.0F); + double d0 = mc.thePlayer.getPosition(partialTicks).yCoord - world.getHorizon(); + + if(d0 < 0.0D) { + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 12.0F, 0.0F); + GL11.glCallList(this.glSkyList2); + GL11.glPopMatrix(); + f8 = 1.0F; + f9 = -((float) (d0 + 65.0D)); + f10 = -f8; + tessellator.startDrawingQuads(); + tessellator.setColorRGBA_I(0, 255); + tessellator.addVertex(-f8, f9, f8); + tessellator.addVertex(f8, f9, f8); + tessellator.addVertex(f8, f10, f8); + tessellator.addVertex(-f8, f10, f8); + tessellator.addVertex(-f8, f10, -f8); + tessellator.addVertex(f8, f10, -f8); + tessellator.addVertex(f8, f9, -f8); + tessellator.addVertex(-f8, f9, -f8); + tessellator.addVertex(f8, f10, -f8); + tessellator.addVertex(f8, f10, f8); + tessellator.addVertex(f8, f9, f8); + tessellator.addVertex(f8, f9, -f8); + tessellator.addVertex(-f8, f9, -f8); + tessellator.addVertex(-f8, f9, f8); + tessellator.addVertex(-f8, f10, f8); + tessellator.addVertex(-f8, f10, -f8); + tessellator.addVertex(-f8, f10, -f8); + tessellator.addVertex(-f8, f10, f8); + tessellator.addVertex(f8, f10, f8); + tessellator.addVertex(f8, f10, -f8); + tessellator.draw(); + } + + if(world.provider.isSkyColored()) { + GL11.glColor3f(f1 * 0.2F + 0.04F, f2 * 0.2F + 0.04F, f3 * 0.6F + 0.1F); + } else { + GL11.glColor3f(f1, f2, f3); + } + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, -((float) (d0 - 16.0D)), 0.0F); + GL11.glCallList(this.glSkyList2); + GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDepthMask(true); + } -} + private void renderStars() { + Random random = new Random(10842L); + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + + for(int i = 0; i < 1500; ++i) { + double d0 = (double) (random.nextFloat() * 2.0F - 1.0F); + double d1 = (double) (random.nextFloat() * 2.0F - 1.0F); + double d2 = (double) (random.nextFloat() * 2.0F - 1.0F); + double d3 = (double) (0.15F + random.nextFloat() * 0.1F); + double d4 = d0 * d0 + d1 * d1 + d2 * d2; + + if(d4 < 1.0D && d4 > 0.01D) { + d4 = 1.0D / Math.sqrt(d4); + d0 *= d4; + d1 *= d4; + d2 *= d4; + double d5 = d0 * 100.0D; + double d6 = d1 * 100.0D; + double d7 = d2 * 100.0D; + double d8 = Math.atan2(d0, d2); + double d9 = Math.sin(d8); + double d10 = Math.cos(d8); + double d11 = Math.atan2(Math.sqrt(d0 * d0 + d2 * d2), d1); + double d12 = Math.sin(d11); + double d13 = Math.cos(d11); + double d14 = random.nextDouble() * Math.PI * 2.0D; + double d15 = Math.sin(d14); + double d16 = Math.cos(d14); + + for(int j = 0; j < 4; ++j) { + double d17 = 0.0D; + double d18 = (double) ((j & 2) - 1) * d3; + double d19 = (double) ((j + 1 & 2) - 1) * d3; + double d20 = d18 * d16 - d19 * d15; + double d21 = d19 * d16 + d18 * d15; + double d22 = d20 * d12 + d17 * d13; + double d23 = d17 * d12 - d20 * d13; + double d24 = d23 * d9 - d21 * d10; + double d25 = d21 * d9 + d23 * d10; + tessellator.addVertex(d5 + d24, d6 + d22, d7 + d25); + } + } + } + tessellator.draw(); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/TomSaveData.java b/src/main/java/com/hbm/saveddata/TomSaveData.java new file mode 100644 index 000000000..cc325246a --- /dev/null +++ b/src/main/java/com/hbm/saveddata/TomSaveData.java @@ -0,0 +1,56 @@ +package com.hbm.saveddata; + +import java.util.Iterator; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ModEventHandler; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.village.Village; +import net.minecraft.world.World; +import net.minecraft.world.WorldSavedData; +import net.minecraft.world.storage.MapStorage; + +public class TomSaveData extends WorldSavedData { + + final static String key = "impactData"; + public static float dust; + public static float fire; + public static boolean impact; + + public static TomSaveData forWorld(World world) { + TomSaveData result = (TomSaveData)world.perWorldStorage.loadData(TomSaveData.class, "impactData"); + + if (result == null) { + world.perWorldStorage.setData(key, new TomSaveData(key)); + result = (TomSaveData)world.perWorldStorage.loadData(TomSaveData.class, "impactData"); + } + return result; + } + + private NBTTagCompound data = new NBTTagCompound(); + + public TomSaveData(String tagName) { + super(tagName); + } + + @Override + public void readFromNBT(NBTTagCompound compound) { + data = compound.getCompoundTag(key); + this.dust = compound.getFloat("dust"); + this.fire = compound.getFloat("fire"); + this.impact = compound.getBoolean("impact"); + ModEventHandler.dust = this.dust; + ModEventHandler.fire = this.fire; + ModEventHandler.impact = this.impact; + } + + @Override + public void writeToNBT(NBTTagCompound compound) { + compound.setTag(key, data); + } + + public NBTTagCompound getData() { + return data; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java index 61b423156..a3934438d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java @@ -10,11 +10,13 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.lib.Library; +import com.hbm.main.ModEventHandler; import com.hbm.tileentity.TileEntityMachineBase; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.EnumSkyBlock; public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource { @@ -102,6 +104,15 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) { tank.setFill(tank.getFill() - 1); } + + //For when Tom's firestorm hits a barrel full of water + if(tank.getTankType() == FluidType.WATER && ModEventHandler.fire > 0) { + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + + if(light > 7) { + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true); + } + } } public void networkUnpack(NBTTagCompound data) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index aa9909d26..f00abdac3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -9,10 +9,12 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.lib.Library; +import com.hbm.main.ModEventHandler; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.EnumSkyBlock; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, IFluidSource { @@ -45,6 +47,14 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I tanks[0].setFill(tanks[0].getFill() - convert); tanks[1].setFill(tanks[1].getFill() + convert); + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + + if(ModEventHandler.fire > 0 && light > 7) { // Make both steam and water evaporate during firestorms...{ + tanks[1].setFill(tanks[1].getFill() - convert); + } else { + tanks[1].setFill(tanks[1].getFill() + convert); + } + fillFluidInit(tanks[1].getTankType()); } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 4d6ffd824..03c2d51cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -119,6 +119,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce static { fluidConversion.put(FluidType.UF6, new ComparableStack(ModItems.fluid_icon, 1, FluidType.UF6.ordinal())); fluidConversion.put(FluidType.PUF6, new ComparableStack(ModItems.fluid_icon, 1, FluidType.PUF6.ordinal())); + fluidConversion.put(FluidType.DEATH, new ComparableStack(ModItems.fluid_icon, 1, FluidType.DEATH.ordinal())); } int loadDelay; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 30db152b0..13d0f79c7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -14,6 +14,7 @@ import com.hbm.entity.effect.EntitySpear; import com.hbm.entity.projectile.EntityRBMKDebris; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.main.MainRegistry; +import com.hbm.main.ModEventHandler; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; @@ -34,6 +35,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.util.ForgeDirection; @@ -203,6 +205,13 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke protected void coolPassively() { + if(ModEventHandler.fire > 0) { + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + if(heat < 20 + (480 * (light / 15))) { + this.heat += this.passiveCooling() * 2; + } + } + this.heat -= this.passiveCooling(); if(heat < 20) diff --git a/src/main/java/com/hbm/world/WorldProviderNTM.java b/src/main/java/com/hbm/world/WorldProviderNTM.java new file mode 100644 index 000000000..c8d17a6f9 --- /dev/null +++ b/src/main/java/com/hbm/world/WorldProviderNTM.java @@ -0,0 +1,154 @@ +package com.hbm.world; + +import com.hbm.main.ModEventHandler; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.WorldProvider; +import net.minecraft.world.WorldProviderSurface; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManager; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraftforge.client.ForgeHooksClient; +import net.minecraftforge.client.IRenderHandler; + +public class WorldProviderNTM extends WorldProviderSurface { + + private float[] colorsSunriseSunset = new float[4]; + + public WorldProviderNTM() { + } + + @Override + public float calculateCelestialAngle(long worldTime, float partialTicks) { + return super.calculateCelestialAngle(worldTime, partialTicks); + } + + @Override + @SideOnly(Side.CLIENT) + public float[] calcSunriseSunsetColors(float par1, float par2) { + float f2 = 0.4F; + float f3 = MathHelper.cos(par1 * (float) Math.PI * 2.0F) - 0.0F; + float f4 = -0.0F; + float dust = ModEventHandler.dust; + + if(f3 >= f4 - f2 && f3 <= f4 + f2) { + float f5 = (f3 - f4) / f2 * 0.5F + 0.5F; + float f6 = 1.0F - (1.0F - MathHelper.sin(f5 * (float) Math.PI)) * 0.99F; + f6 *= f6; + this.colorsSunriseSunset[0] = (f5 * 0.3F + 0.7F) * (1 - dust); + this.colorsSunriseSunset[1] = (f5 * f5 * 0.7F + 0.2F) * (1 - dust); + this.colorsSunriseSunset[2] = (f5 * f5 * 0.0F + 0.2F) * (1 - dust); + this.colorsSunriseSunset[3] = f6 * (1 - dust); + return this.colorsSunriseSunset; + } else { + return null; + } + } + + @Override + @SideOnly(Side.CLIENT) + public float getStarBrightness(float par1) { + float starBr = worldObj.getStarBrightnessBody(par1); + float dust = ModEventHandler.dust; + float f1 = worldObj.getCelestialAngle(par1); + float f2 = 1.0F - (MathHelper.cos(f1 * (float) Math.PI * 2.0F) * 2.0F + 0.25F); + + if(f2 < 0.0F) { + f2 = 0.0F; + } + + if(f2 > 1.0F) { + f2 = 1.0F; + } + return starBr * (1 - dust); + } + + @Override + @SideOnly(Side.CLIENT) + public float getSunBrightness(float par1) { + float dust = ModEventHandler.dust; + float sunBr = worldObj.getSunBrightnessFactor(par1); + return (sunBr * 0.8F + 0.2F) * (1 - dust); + } + + @Override + public boolean isDaytime() { + float dust = ModEventHandler.dust; + + if(dust >= 0.75F) { + return false; + } + return super.isDaytime(); + } + + @Override + public float getSunBrightnessFactor(float par1) { + float dust = ModEventHandler.dust; + float sunBr = worldObj.getSunBrightnessFactor(par1); + float dimSun = sunBr * (1 - dust); + return dimSun; + } + + /** + * Return Vec3D with biome specific fog color + */ + @SideOnly(Side.CLIENT) + @Override + public Vec3 getFogColor(float p_76562_1_, float p_76562_2_) { + Vec3 fog = super.getFogColor(p_76562_1_, p_76562_2_); + float dust = ModEventHandler.dust; + float fire = ModEventHandler.fire; + + float f3 = (float) fog.xCoord; + float f4 = (float) fog.yCoord * (1 - (dust * 0.5F)); + float f5 = (float) fog.zCoord * (1 - dust); + + if(fire > 0) { + return Vec3.createVectorHelper((double) f3 * (Math.max((1 - (dust * 2)), 0)), (double) f4 * (Math.max((1 - (dust * 2)), 0)), (double) f5 * (Math.max((1 - (dust * 2)), 0))); + } + return Vec3.createVectorHelper((double) f3 * (1 - dust), (double) f4 * (1 - dust), (double) f5 * (1 - dust)); + } + + @Override + @SideOnly(Side.CLIENT) + public Vec3 getSkyColor(Entity cameraEntity, float partialTicks) { + Vec3 sky = super.getSkyColor(cameraEntity, partialTicks); + float dust = ModEventHandler.dust; + float fire = ModEventHandler.fire; + + float f4; + float f5; + float f6; + + if(fire > 0) { + f4 = (float) (sky.xCoord * 1.3f); + f5 = (float) sky.yCoord * ((Math.max((1 - (dust * 1.4f)), 0))); + f6 = (float) sky.zCoord * ((Math.max((1 - (dust * 4)), 0))); + } else { + f4 = (float) sky.xCoord; + f5 = (float) sky.yCoord * (1 - (dust * 0.5F)); + f6 = (float) sky.zCoord * (1 - dust); + } + + return Vec3.createVectorHelper((double) f4 * (fire + (1 - dust)), (double) f5 * (fire + (1 - dust)), (double) f6 * (fire + (1 - dust))); + } + + @SideOnly(Side.CLIENT) + public Vec3 drawClouds(float partialTicks) { + Vec3 clouds = super.drawClouds(partialTicks); + float dust = ModEventHandler.dust; + float f3 = (float) clouds.xCoord; + float f4 = (float) clouds.yCoord; + float f5 = (float) clouds.zCoord; + return Vec3.createVectorHelper((double) f3 * (1 - dust), (double) f4 * (1 - dust), (double) f5 * (1 - dust)); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/dungeon/Satellite.java b/src/main/java/com/hbm/world/dungeon/Satellite.java index 6a9b94b5f..f8d0647f4 100644 --- a/src/main/java/com/hbm/world/dungeon/Satellite.java +++ b/src/main/java/com/hbm/world/dungeon/Satellite.java @@ -9,6 +9,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.util.LootGenerator; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -20,48 +21,32 @@ import net.minecraft.world.gen.feature.WorldGenerator; public class Satellite extends WorldGenerator { - Block Block2 = ModBlocks.deco_steel; + Block dSteel = ModBlocks.deco_steel; Block Block3 = ModBlocks.steel_scaffold; Block Block4 = ModBlocks.deco_beryllium; Block Block5 = ModBlocks.deco_titanium; - Block Block6 = ModBlocks.tape_recorder; + Block dTape = ModBlocks.tape_recorder; Block Block7 = 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 }; } - public boolean LocationIsValidSpawn(World world, 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 blockAbove = world.getBlock(x, y, z); Block blockBelow = world.getBlock(x, y - 2, z); - for (Block i : GetValidSpawnBlocks()) - { - if (blockAbove != Blocks.air) - { + for(Block i : GetValidSpawnBlocks()) { + if(blockAbove != Blocks.air) { return false; } - if (checkBlock == i) - { + if(checkBlock == i) { return true; - } - else if (checkBlock == Blocks.snow_layer && blockBelow == i) - { + } else if(checkBlock == Blocks.snow_layer && blockBelow == i) { return true; - } - else if (checkBlock.getMaterial() == Material.plants && blockBelow == i) - { + } else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) { return true; } } @@ -69,23 +54,19 @@ public class Satellite extends WorldGenerator } @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) - { - if(!LocationIsValidSpawn(world, x, y, z) || !LocationIsValidSpawn(world, x + 24, y, z) || !LocationIsValidSpawn(world, x + 24, y, z + 30) || !LocationIsValidSpawn(world, x, y, z + 30)) - { + public boolean generate_r0(World world, Random rand, int x, int y, int z) { + + if(!LocationIsValidSpawn(world, x, y, z) || !LocationIsValidSpawn(world, x + 24, y, z) || !LocationIsValidSpawn(world, x + 24, y, z + 30) || !LocationIsValidSpawn(world, x, y, z + 30)) { return false; } @@ -206,10 +187,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + -2, z + 16, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + -2, z + 16, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -2, z + 17, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + -2, z + 17, Block2, 0, 3); + world.setBlock(x + 7, y + -2, z + 17, dSteel, 0, 3); world.setBlock(x + 8, y + -2, z + 17, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + -2, z + 17, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 19, y + -2, z + 17, Block2, 0, 3); + world.setBlock(x + 19, y + -2, z + 17, dSteel, 0, 3); world.setBlock(x + 20, y + -2, z + 17, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -2, z + 18, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 7, y + -2, z + 18, Library.getRandomConcrete(), 0, 3); @@ -224,10 +205,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + -2, z + 28, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + -2, z + 28, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -2, z + 29, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + -2, z + 29, Block2, 0, 3); + world.setBlock(x + 7, y + -2, z + 29, dSteel, 0, 3); world.setBlock(x + 8, y + -2, z + 29, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + -2, z + 29, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 19, y + -2, z + 29, Block2, 0, 3); + world.setBlock(x + 19, y + -2, z + 29, dSteel, 0, 3); world.setBlock(x + 20, y + -2, z + 29, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -2, z + 30, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 7, y + -2, z + 30, Library.getRandomConcrete(), 0, 3); @@ -237,13 +218,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 20, y + -2, z + 30, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 5, y + -1, z + 8, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 13, y + -1, z + 8, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 21, y + -1, z + 8, Block2, 0, 3); - world.setBlock(x + 22, y + -1, z + 8, Block2, 0, 3); + world.setBlock(x + 21, y + -1, z + 8, dSteel, 0, 3); + world.setBlock(x + 22, y + -1, z + 8, dSteel, 0, 3); world.setBlock(x + 18, y + -1, z + 9, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + -1, z + 9, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + -1, z + 9, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 21, y + -1, z + 9, Block2, 0, 3); - world.setBlock(x + 22, y + -1, z + 9, Block2, 0, 3); + world.setBlock(x + 21, y + -1, z + 9, dSteel, 0, 3); + world.setBlock(x + 22, y + -1, z + 9, dSteel, 0, 3); world.setBlock(x + 17, y + -1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + -1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + -1, z + 10, Library.getRandomConcrete(), 0, 3); @@ -285,10 +266,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + -1, z + 16, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + -1, z + 16, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -1, z + 17, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + -1, z + 17, Block2, 0, 3); + world.setBlock(x + 7, y + -1, z + 17, dSteel, 0, 3); world.setBlock(x + 8, y + -1, z + 17, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + -1, z + 17, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 19, y + -1, z + 17, Block2, 0, 3); + world.setBlock(x + 19, y + -1, z + 17, dSteel, 0, 3); world.setBlock(x + 20, y + -1, z + 17, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -1, z + 18, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 7, y + -1, z + 18, Library.getRandomConcrete(), 0, 3); @@ -304,10 +285,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + -1, z + 28, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + -1, z + 28, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -1, z + 29, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + -1, z + 29, Block2, 0, 3); + world.setBlock(x + 7, y + -1, z + 29, dSteel, 0, 3); world.setBlock(x + 8, y + -1, z + 29, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + -1, z + 29, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 19, y + -1, z + 29, Block2, 0, 3); + world.setBlock(x + 19, y + -1, z + 29, dSteel, 0, 3); world.setBlock(x + 20, y + -1, z + 29, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 6, y + -1, z + 30, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 7, y + -1, z + 30, Library.getRandomConcrete(), 0, 3); @@ -317,12 +298,12 @@ public class Satellite extends WorldGenerator world.setBlock(x + 20, y + -1, z + 30, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 5, y + 0, z + 8, Block3, 3, 3); world.setBlock(x + 13, y + 0, z + 8, Block3, 3, 3); - world.setBlock(x + 19, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 20, y + 0, z + 8, Block2, 0, 3); + world.setBlock(x + 19, y + 0, z + 8, dSteel, 0, 3); + world.setBlock(x + 20, y + 0, z + 8, dSteel, 0, 3); world.setBlock(x + 21, y + 0, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 22, y + 0, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 19, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 20, y + 0, z + 9, Block2, 0, 3); + world.setBlock(x + 19, y + 0, z + 9, dSteel, 0, 3); + world.setBlock(x + 20, y + 0, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 0, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 0, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 0, z + 10, Library.getRandomConcrete(), 0, 3); @@ -351,13 +332,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + 0, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 1, z + 8, Block3, 3, 3); world.setBlock(x + 13, y + 1, z + 8, Block3, 3, 3); - world.setBlock(x + 17, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 18, y + 1, z + 8, Block2, 0, 3); + world.setBlock(x + 17, y + 1, z + 8, dSteel, 0, 3); + world.setBlock(x + 18, y + 1, z + 8, dSteel, 0, 3); world.setBlock(x + 19, y + 1, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 20, y + 1, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 21, y + 1, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 17, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 18, y + 1, z + 9, Block2, 0, 3); + world.setBlock(x + 17, y + 1, z + 9, dSteel, 0, 3); + world.setBlock(x + 18, y + 1, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 1, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 1, z + 10, Library.getRandomConcrete(), 0, 3); @@ -386,13 +367,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 19, y + 1, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 2, z + 8, Block3, 3, 3); world.setBlock(x + 13, y + 2, z + 8, Block3, 3, 3); - world.setBlock(x + 15, y + 2, z + 8, Block2, 0, 3); - world.setBlock(x + 16, y + 2, z + 8, Block2, 0, 3); + world.setBlock(x + 15, y + 2, z + 8, dSteel, 0, 3); + world.setBlock(x + 16, y + 2, z + 8, dSteel, 0, 3); world.setBlock(x + 17, y + 2, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 18, y + 2, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 19, y + 2, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 15, y + 2, z + 9, Block2, 0, 3); - world.setBlock(x + 16, y + 2, z + 9, Block2, 0, 3); + world.setBlock(x + 15, y + 2, z + 9, dSteel, 0, 3); + world.setBlock(x + 16, y + 2, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 2, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 2, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 2, z + 10, Library.getRandomConcrete(), 0, 3); @@ -420,13 +401,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 2, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 2, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 3, z + 8, Block3, 3, 3); - world.setBlock(x + 13, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 8, Block2, 0, 3); + world.setBlock(x + 13, y + 3, z + 8, dSteel, 0, 3); + world.setBlock(x + 14, y + 3, z + 8, dSteel, 0, 3); world.setBlock(x + 15, y + 3, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 16, y + 3, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 17, y + 3, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 13, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 9, Block2, 0, 3); + world.setBlock(x + 13, y + 3, z + 9, dSteel, 0, 3); + world.setBlock(x + 14, y + 3, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 3, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 3, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 3, z + 10, Library.getRandomConcrete(), 0, 3); @@ -454,13 +435,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 3, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 3, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 4, z + 8, Block3, 3, 3); - world.setBlock(x + 11, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 8, Block2, 0, 3); + world.setBlock(x + 11, y + 4, z + 8, dSteel, 0, 3); + world.setBlock(x + 12, y + 4, z + 8, dSteel, 0, 3); world.setBlock(x + 13, y + 4, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 14, y + 4, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 15, y + 4, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 11, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 9, Block2, 0, 3); + world.setBlock(x + 11, y + 4, z + 9, dSteel, 0, 3); + world.setBlock(x + 12, y + 4, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 4, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 4, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 4, z + 10, Library.getRandomConcrete(), 0, 3); @@ -488,13 +469,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 4, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 4, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 5, z + 8, Block3, 3, 3); - world.setBlock(x + 9, y + 5, z + 8, Block2, 0, 3); - world.setBlock(x + 10, y + 5, z + 8, Block2, 0, 3); + world.setBlock(x + 9, y + 5, z + 8, dSteel, 0, 3); + world.setBlock(x + 10, y + 5, z + 8, dSteel, 0, 3); world.setBlock(x + 11, y + 5, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 12, y + 5, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 13, y + 5, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 9, y + 5, z + 9, Block2, 0, 3); - world.setBlock(x + 10, y + 5, z + 9, Block2, 0, 3); + world.setBlock(x + 9, y + 5, z + 9, dSteel, 0, 3); + world.setBlock(x + 10, y + 5, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 5, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 5, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 5, z + 10, Library.getRandomConcrete(), 0, 3); @@ -522,13 +503,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 5, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 5, z + 29, Block4, 0, 3); world.setBlock(x + 5, y + 6, z + 8, Block3, 3, 3); - world.setBlock(x + 7, y + 6, z + 8, Block2, 0, 3); - world.setBlock(x + 8, y + 6, z + 8, Block2, 0, 3); + world.setBlock(x + 7, y + 6, z + 8, dSteel, 0, 3); + world.setBlock(x + 8, y + 6, z + 8, dSteel, 0, 3); world.setBlock(x + 9, y + 6, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 10, y + 6, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 11, y + 6, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 6, z + 9, Block2, 0, 3); - world.setBlock(x + 8, y + 6, z + 9, Block2, 0, 3); + world.setBlock(x + 7, y + 6, z + 9, dSteel, 0, 3); + world.setBlock(x + 8, y + 6, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 6, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 6, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 6, z + 10, Library.getRandomConcrete(), 0, 3); @@ -555,48 +536,48 @@ public class Satellite extends WorldGenerator world.setBlock(x + 5, y + 6, z + 23, Block3, 5, 3); world.setBlock(x + 7, y + 6, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 6, z + 29, Block4, 0, 3); - world.setBlock(x + 5, y + 7, z + 8, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 8, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 8, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 8, dSteel, 0, 3); world.setBlock(x + 7, y + 7, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 8, y + 7, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 9, y + 7, z + 8, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 7, z + 9, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 9, Block2, 0, 3); - world.setBlock(x + 5, y + 7, z + 10, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 10, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 9, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 9, dSteel, 0, 3); + world.setBlock(x + 5, y + 7, z + 10, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 10, dSteel, 0, 3); world.setBlock(x + 18, y + 7, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 7, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 7, z + 10, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 5, y + 7, z + 11, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 11, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 11, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 11, dSteel, 0, 3); world.setBlock(x + 17, y + 7, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 7, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 7, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 7, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 7, z + 11, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 5, y + 7, z + 12, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 12, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 12, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 12, dSteel, 0, 3); world.setBlock(x + 17, y + 7, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 7, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 7, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 7, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 7, z + 12, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 5, y + 7, z + 13, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 13, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 13, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 13, dSteel, 0, 3); world.setBlock(x + 17, y + 7, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 7, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 7, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 7, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 7, z + 13, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 5, y + 7, z + 14, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 14, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 14, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 14, dSteel, 0, 3); world.setBlock(x + 18, y + 7, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 7, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 7, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 5, y + 7, z + 15, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 15, Block2, 0, 3); - world.setBlock(x + 5, y + 7, z + 16, Block2, 0, 3); - world.setBlock(x + 6, y + 7, z + 16, Block2, 0, 3); + world.setBlock(x + 5, y + 7, z + 15, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 15, dSteel, 0, 3); + world.setBlock(x + 5, y + 7, z + 16, dSteel, 0, 3); + world.setBlock(x + 6, y + 7, z + 16, dSteel, 0, 3); world.setBlock(x + 7, y + 7, z + 17, Block4, 0, 3); world.setBlock(x + 19, y + 7, z + 17, Block4, 0, 3); world.setBlock(x + 5, y + 7, z + 23, Block3, 5, 3); @@ -634,12 +615,12 @@ public class Satellite extends WorldGenerator world.setBlock(x + 20, y + 8, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 5, y + 8, z + 15, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 8, z + 16, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 8, z + 17, Block2, 0, 3); - world.setBlock(x + 6, y + 8, z + 17, Block2, 0, 3); + world.setBlock(x + 5, y + 8, z + 17, dSteel, 0, 3); + world.setBlock(x + 6, y + 8, z + 17, dSteel, 0, 3); world.setBlock(x + 7, y + 8, z + 17, Block4, 0, 3); world.setBlock(x + 19, y + 8, z + 17, Block4, 0, 3); - world.setBlock(x + 5, y + 8, z + 18, Block2, 0, 3); - world.setBlock(x + 6, y + 8, z + 18, Block2, 0, 3); + world.setBlock(x + 5, y + 8, z + 18, dSteel, 0, 3); + world.setBlock(x + 6, y + 8, z + 18, dSteel, 0, 3); world.setBlock(x + 5, y + 8, z + 23, Block3, 5, 3); world.setBlock(x + 7, y + 8, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 8, z + 29, Block4, 0, 3); @@ -669,10 +650,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 7, y + 9, z + 17, Block4, 0, 3); world.setBlock(x + 19, y + 9, z + 17, Block4, 0, 3); world.setBlock(x + 5, y + 9, z + 18, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 9, z + 19, Block2, 0, 3); - world.setBlock(x + 6, y + 9, z + 19, Block2, 0, 3); - world.setBlock(x + 5, y + 9, z + 20, Block2, 0, 3); - world.setBlock(x + 6, y + 9, z + 20, Block2, 0, 3); + world.setBlock(x + 5, y + 9, z + 19, dSteel, 0, 3); + world.setBlock(x + 6, y + 9, z + 19, dSteel, 0, 3); + world.setBlock(x + 5, y + 9, z + 20, dSteel, 0, 3); + world.setBlock(x + 6, y + 9, z + 20, dSteel, 0, 3); world.setBlock(x + 5, y + 9, z + 23, Block3, 5, 3); world.setBlock(x + 7, y + 9, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 9, z + 29, Block4, 0, 3); @@ -702,10 +683,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 5, y + 10, z + 18, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 10, z + 19, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 10, z + 20, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 10, z + 21, Block2, 0, 3); - world.setBlock(x + 6, y + 10, z + 21, Block2, 0, 3); - world.setBlock(x + 5, y + 10, z + 22, Block2, 0, 3); - world.setBlock(x + 6, y + 10, z + 22, Block2, 0, 3); + world.setBlock(x + 5, y + 10, z + 21, dSteel, 0, 3); + world.setBlock(x + 6, y + 10, z + 21, dSteel, 0, 3); + world.setBlock(x + 5, y + 10, z + 22, dSteel, 0, 3); + world.setBlock(x + 6, y + 10, z + 22, dSteel, 0, 3); world.setBlock(x + 5, y + 10, z + 23, Block3, 5, 3); world.setBlock(x + 7, y + 10, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 10, z + 29, Block4, 0, 3); @@ -735,10 +716,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 5, y + 11, z + 20, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 11, z + 21, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 11, z + 22, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 11, z + 23, Block2, 0, 3); - world.setBlock(x + 6, y + 11, z + 23, Block2, 0, 3); - world.setBlock(x + 5, y + 11, z + 24, Block2, 0, 3); - world.setBlock(x + 6, y + 11, z + 24, Block2, 0, 3); + world.setBlock(x + 5, y + 11, z + 23, dSteel, 0, 3); + world.setBlock(x + 6, y + 11, z + 23, dSteel, 0, 3); + world.setBlock(x + 5, y + 11, z + 24, dSteel, 0, 3); + world.setBlock(x + 6, y + 11, z + 24, dSteel, 0, 3); world.setBlock(x + 7, y + 11, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 11, z + 29, Block4, 0, 3); world.setBlock(x + 18, y + 12, z + 10, Library.getRandomConcrete(), 0, 3); @@ -767,10 +748,10 @@ public class Satellite extends WorldGenerator world.setBlock(x + 5, y + 12, z + 22, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 12, z + 23, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 5, y + 12, z + 24, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 5, y + 12, z + 25, Block2, 0, 3); - world.setBlock(x + 6, y + 12, z + 25, Block2, 0, 3); - world.setBlock(x + 5, y + 12, z + 26, Block2, 0, 3); - world.setBlock(x + 6, y + 12, z + 26, Block2, 0, 3); + world.setBlock(x + 5, y + 12, z + 25, dSteel, 0, 3); + world.setBlock(x + 6, y + 12, z + 25, dSteel, 0, 3); + world.setBlock(x + 5, y + 12, z + 26, dSteel, 0, 3); + world.setBlock(x + 6, y + 12, z + 26, dSteel, 0, 3); world.setBlock(x + 7, y + 12, z + 29, Block4, 0, 3); world.setBlock(x + 19, y + 12, z + 29, Block4, 0, 3); world.setBlock(x + 18, y + 13, z + 10, Library.getRandomConcrete(), 0, 3); @@ -835,8 +816,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 13, z + 20, Blocks.stone_slab, 8, 3); world.setBlock(x + 18, y + 13, z + 20, Blocks.stone_slab, 8, 3); world.setBlock(x + 19, y + 13, z + 20, Block5, 0, 3); - world.setBlock(x + 20, y + 13, z + 20, Block2, 0, 3); - world.setBlock(x + 21, y + 13, z + 20, Block2, 0, 3); + world.setBlock(x + 20, y + 13, z + 20, dSteel, 0, 3); + world.setBlock(x + 21, y + 13, z + 20, dSteel, 0, 3); world.setBlock(x + 7, y + 13, z + 21, Block5, 0, 3); world.setBlock(x + 8, y + 13, z + 21, Blocks.stone_slab, 8, 3); world.setBlock(x + 9, y + 13, z + 21, Blocks.stone_slab, 8, 3); @@ -850,8 +831,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 13, z + 21, Blocks.stone_slab, 8, 3); world.setBlock(x + 18, y + 13, z + 21, Blocks.stone_slab, 8, 3); world.setBlock(x + 19, y + 13, z + 21, Block5, 0, 3); - world.setBlock(x + 20, y + 13, z + 21, Block2, 0, 3); - world.setBlock(x + 21, y + 13, z + 21, Block2, 0, 3); + world.setBlock(x + 20, y + 13, z + 21, dSteel, 0, 3); + world.setBlock(x + 21, y + 13, z + 21, dSteel, 0, 3); world.setBlock(x + 7, y + 13, z + 22, Block5, 0, 3); world.setBlock(x + 8, y + 13, z + 22, Blocks.stone_slab, 8, 3); world.setBlock(x + 9, y + 13, z + 22, Blocks.stone_slab, 8, 3); @@ -865,8 +846,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 13, z + 22, Blocks.stone_slab, 8, 3); world.setBlock(x + 18, y + 13, z + 22, Blocks.stone_slab, 8, 3); world.setBlock(x + 19, y + 13, z + 22, Block5, 0, 3); - world.setBlock(x + 20, y + 13, z + 22, Block2, 0, 3); - world.setBlock(x + 21, y + 13, z + 22, Block2, 0, 3); + world.setBlock(x + 20, y + 13, z + 22, dSteel, 0, 3); + world.setBlock(x + 21, y + 13, z + 22, dSteel, 0, 3); world.setBlock(x + 7, y + 13, z + 23, Block5, 0, 3); world.setBlock(x + 8, y + 13, z + 23, Block5, 0, 3); world.setBlock(x + 9, y + 13, z + 23, Block5, 0, 3); @@ -922,8 +903,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 13, z + 26, Blocks.stone_slab, 8, 3); world.setBlock(x + 18, y + 13, z + 26, Blocks.stone_slab, 8, 3); world.setBlock(x + 19, y + 13, z + 26, Block5, 0, 3); - world.setBlock(x + 5, y + 13, z + 27, Block2, 0, 3); - world.setBlock(x + 6, y + 13, z + 27, Block2, 0, 3); + world.setBlock(x + 5, y + 13, z + 27, dSteel, 0, 3); + world.setBlock(x + 6, y + 13, z + 27, dSteel, 0, 3); world.setBlock(x + 7, y + 13, z + 27, Block5, 0, 3); world.setBlock(x + 8, y + 13, z + 27, Blocks.stone_slab, 8, 3); world.setBlock(x + 9, y + 13, z + 27, Blocks.stone_slab, 8, 3); @@ -937,8 +918,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 13, z + 27, Blocks.stone_slab, 8, 3); world.setBlock(x + 18, y + 13, z + 27, Blocks.stone_slab, 8, 3); world.setBlock(x + 19, y + 13, z + 27, Block5, 0, 3); - world.setBlock(x + 5, y + 13, z + 28, Block2, 0, 3); - world.setBlock(x + 6, y + 13, z + 28, Block2, 0, 3); + world.setBlock(x + 5, y + 13, z + 28, dSteel, 0, 3); + world.setBlock(x + 6, y + 13, z + 28, dSteel, 0, 3); world.setBlock(x + 7, y + 13, z + 28, Block5, 0, 3); world.setBlock(x + 8, y + 13, z + 28, Block5, 0, 3); world.setBlock(x + 9, y + 13, z + 28, Block5, 0, 3); @@ -975,68 +956,68 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 14, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 14, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 14, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 8, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 9, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 10, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 11, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 12, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 13, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 14, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 15, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 16, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 17, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 18, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 18, Block2, 0, 3); - world.setBlock(x + 7, y + 14, z + 19, Block2, 0, 3); + world.setBlock(x + 7, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 8, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 9, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 10, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 11, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 12, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 13, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 14, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 15, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 16, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 17, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 18, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 18, dSteel, 0, 3); + world.setBlock(x + 7, y + 14, z + 19, dSteel, 0, 3); world.setBlock(x + 10, y + 14, z + 19, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 10, y + 14, z + 19, 3, 3); WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 10, y + 14, z + 19), 8); - world.setBlock(x + 19, y + 14, z + 19, Block2, 0, 3); - world.setBlock(x + 20, y + 14, z + 19, Block2, 0, 3); - world.setBlock(x + 21, y + 14, z + 19, Block2, 0, 3); - world.setBlock(x + 7, y + 14, z + 20, Block2, 0, 3); + world.setBlock(x + 19, y + 14, z + 19, dSteel, 0, 3); + world.setBlock(x + 20, y + 14, z + 19, dSteel, 0, 3); + world.setBlock(x + 21, y + 14, z + 19, dSteel, 0, 3); + world.setBlock(x + 7, y + 14, z + 20, dSteel, 0, 3); world.setBlock(x + 21, y + 14, z + 20, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 14, z + 21, Block2, 0, 3); + world.setBlock(x + 7, y + 14, z + 21, dSteel, 0, 3); world.setBlock(x + 21, y + 14, z + 21, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 14, z + 22, Block2, 0, 3); - world.setBlock(x + 13, y + 14, z + 22, Block2, 0, 3); - world.setBlock(x + 14, y + 14, z + 22, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 22, Block2, 0, 3); + world.setBlock(x + 7, y + 14, z + 22, dSteel, 0, 3); + world.setBlock(x + 13, y + 14, z + 22, dSteel, 0, 3); + world.setBlock(x + 14, y + 14, z + 22, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 22, dSteel, 0, 3); world.setBlock(x + 20, y + 14, z + 22, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 21, y + 14, z + 22, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 7, y + 14, z + 23, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 13, y + 14, z + 23, Block2, 0, 3); - world.setBlock(x + 14, y + 14, z + 23, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 23, Block2, 0, 3); + world.setBlock(x + 13, y + 14, z + 23, dSteel, 0, 3); + world.setBlock(x + 14, y + 14, z + 23, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 23, dSteel, 0, 3); world.setBlock(x + 7, y + 14, z + 24, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 13, y + 14, z + 24, Block2, 0, 3); - world.setBlock(x + 14, y + 14, z + 24, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 24, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 25, Block2, 0, 3); + world.setBlock(x + 13, y + 14, z + 24, dSteel, 0, 3); + world.setBlock(x + 14, y + 14, z + 24, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 24, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 25, dSteel, 0, 3); world.setBlock(x + 5, y + 14, z + 26, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 19, y + 14, z + 26, Block2, 0, 3); + world.setBlock(x + 19, y + 14, z + 26, dSteel, 0, 3); world.setBlock(x + 5, y + 14, z + 27, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 14, z + 27, Block2, 0, 3); + world.setBlock(x + 7, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 16, y + 14, z + 27, Blocks.chest, 2, 3); world.setBlockMetadataWithNotify(x + 16, y + 14, z + 27, 3, 3); WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest)world.getTileEntity(x + 16, y + 14, z + 27), 8); - world.setBlock(x + 19, y + 14, z + 27, Block2, 0, 3); + world.setBlock(x + 19, y + 14, z + 27, dSteel, 0, 3); world.setBlock(x + 5, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 6, y + 14, z + 28, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 8, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 9, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 10, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 11, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 12, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 13, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 14, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 15, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 16, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 17, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 18, y + 14, z + 28, Block2, 0, 3); - world.setBlock(x + 19, y + 14, z + 28, Block2, 0, 3); + world.setBlock(x + 7, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 8, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 9, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 10, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 11, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 12, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 13, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 14, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 15, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 16, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 17, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 18, y + 14, z + 28, dSteel, 0, 3); + world.setBlock(x + 19, y + 14, z + 28, dSteel, 0, 3); world.setBlock(x + 18, y + 15, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 15, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 15, z + 10, Library.getRandomConcrete(), 0, 3); @@ -1058,8 +1039,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 15, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 15, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 15, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 7, y + 15, z + 18, Block2, 0, 3); - world.setBlock(x + 8, y + 15, z + 18, Block2, 0, 3); + world.setBlock(x + 7, y + 15, z + 18, dSteel, 0, 3); + world.setBlock(x + 8, y + 15, z + 18, dSteel, 0, 3); world.setBlock(x + 9, y + 15, z + 18, Block4, 0, 3); world.setBlock(x + 10, y + 15, z + 18, Block4, 0, 3); world.setBlock(x + 11, y + 15, z + 18, Block4, 0, 3); @@ -1069,31 +1050,31 @@ public class Satellite extends WorldGenerator world.setBlock(x + 15, y + 15, z + 18, Block4, 0, 3); world.setBlock(x + 16, y + 15, z + 18, Block4, 0, 3); world.setBlock(x + 17, y + 15, z + 18, Block4, 0, 3); - world.setBlock(x + 18, y + 15, z + 18, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 18, Block2, 0, 3); - world.setBlock(x + 20, y + 15, z + 18, Block2, 0, 3); - world.setBlock(x + 21, y + 15, z + 18, Block2, 0, 3); - world.setBlock(x + 7, y + 15, z + 19, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 19, Block2, 0, 3); + world.setBlock(x + 18, y + 15, z + 18, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 18, dSteel, 0, 3); + world.setBlock(x + 20, y + 15, z + 18, dSteel, 0, 3); + world.setBlock(x + 21, y + 15, z + 18, dSteel, 0, 3); + world.setBlock(x + 7, y + 15, z + 19, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 19, dSteel, 0, 3); world.setBlock(x + 21, y + 15, z + 19, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 15, z + 20, Block2, 0, 3); + world.setBlock(x + 7, y + 15, z + 20, dSteel, 0, 3); world.setBlock(x + 21, y + 15, z + 20, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 15, z + 21, Block2, 0, 3); - world.setBlock(x + 7, y + 15, z + 22, Block2, 0, 3); - world.setBlock(x + 14, y + 15, z + 22, Block6, 4, 3); - world.setBlock(x + 19, y + 15, z + 22, Block2, 0, 3); + world.setBlock(x + 7, y + 15, z + 21, dSteel, 0, 3); + world.setBlock(x + 7, y + 15, z + 22, dSteel, 0, 3); + world.setBlock(x + 14, y + 15, z + 22, dTape, 4, 3); + world.setBlock(x + 19, y + 15, z + 22, dSteel, 0, 3); world.setBlock(x + 7, y + 15, z + 23, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 14, y + 15, z + 23, Block6, 4, 3); - world.setBlock(x + 19, y + 15, z + 23, Block2, 0, 3); + world.setBlock(x + 14, y + 15, z + 23, dTape, 4, 3); + world.setBlock(x + 19, y + 15, z + 23, dSteel, 0, 3); world.setBlock(x + 7, y + 15, z + 24, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 14, y + 15, z + 24, Block3, 5, 3); - world.setBlock(x + 19, y + 15, z + 24, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 25, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 26, Block2, 0, 3); - world.setBlock(x + 7, y + 15, z + 27, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 27, Block2, 0, 3); - world.setBlock(x + 7, y + 15, z + 28, Block2, 0, 3); - world.setBlock(x + 8, y + 15, z + 28, Block2, 0, 3); + world.setBlock(x + 19, y + 15, z + 24, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 25, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 26, dSteel, 0, 3); + world.setBlock(x + 7, y + 15, z + 27, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 27, dSteel, 0, 3); + world.setBlock(x + 7, y + 15, z + 28, dSteel, 0, 3); + world.setBlock(x + 8, y + 15, z + 28, dSteel, 0, 3); world.setBlock(x + 9, y + 15, z + 28, Block4, 0, 3); world.setBlock(x + 10, y + 15, z + 28, Block4, 0, 3); world.setBlock(x + 11, y + 15, z + 28, Block4, 0, 3); @@ -1103,8 +1084,8 @@ public class Satellite extends WorldGenerator world.setBlock(x + 15, y + 15, z + 28, Block4, 0, 3); world.setBlock(x + 16, y + 15, z + 28, Block4, 0, 3); world.setBlock(x + 17, y + 15, z + 28, Block4, 0, 3); - world.setBlock(x + 18, y + 15, z + 28, Block2, 0, 3); - world.setBlock(x + 19, y + 15, z + 28, Block2, 0, 3); + world.setBlock(x + 18, y + 15, z + 28, dSteel, 0, 3); + world.setBlock(x + 19, y + 15, z + 28, dSteel, 0, 3); world.setBlock(x + 18, y + 16, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 16, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 16, z + 10, Library.getRandomConcrete(), 0, 3); @@ -1126,252 +1107,252 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 16, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 16, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 16, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 19, y + 16, z + 17, Block2, 0, 3); - world.setBlock(x + 20, y + 16, z + 17, Block2, 0, 3); - world.setBlock(x + 21, y + 16, z + 17, Block2, 0, 3); - world.setBlock(x + 7, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 8, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 9, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 10, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 11, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 12, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 13, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 14, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 15, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 16, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 17, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 18, y + 16, z + 18, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 18, Block2, 0, 3); + world.setBlock(x + 19, y + 16, z + 17, dSteel, 0, 3); + world.setBlock(x + 20, y + 16, z + 17, dSteel, 0, 3); + world.setBlock(x + 21, y + 16, z + 17, dSteel, 0, 3); + world.setBlock(x + 7, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 8, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 9, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 10, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 11, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 12, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 13, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 14, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 15, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 16, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 17, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 18, y + 16, z + 18, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 18, dSteel, 0, 3); world.setBlock(x + 21, y + 16, z + 18, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 16, z + 19, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 19, Block2, 0, 3); + world.setBlock(x + 7, y + 16, z + 19, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 19, dSteel, 0, 3); world.setBlock(x + 21, y + 16, z + 19, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 16, z + 20, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 20, Block2, 0, 3); - world.setBlock(x + 7, y + 16, z + 21, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 21, Block2, 0, 3); - world.setBlock(x + 7, y + 16, z + 22, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 22, Block2, 0, 3); + world.setBlock(x + 7, y + 16, z + 20, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 20, dSteel, 0, 3); + world.setBlock(x + 7, y + 16, z + 21, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 21, dSteel, 0, 3); + world.setBlock(x + 7, y + 16, z + 22, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 22, dSteel, 0, 3); world.setBlock(x + 7, y + 16, z + 23, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 19, y + 16, z + 23, Block2, 0, 3); + world.setBlock(x + 19, y + 16, z + 23, dSteel, 0, 3); world.setBlock(x + 7, y + 16, z + 24, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 14, y + 16, z + 24, Block3, 5, 3); - world.setBlock(x + 19, y + 16, z + 24, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 25, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 26, Block2, 0, 3); - world.setBlock(x + 7, y + 16, z + 27, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 27, Block2, 0, 3); - world.setBlock(x + 7, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 8, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 9, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 10, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 11, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 12, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 13, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 14, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 15, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 16, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 17, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 18, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 19, y + 16, z + 28, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 20, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 21, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 8, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 20, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 21, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 10, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 10, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 10, Block2, 0, 3); + world.setBlock(x + 19, y + 16, z + 24, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 25, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 26, dSteel, 0, 3); + world.setBlock(x + 7, y + 16, z + 27, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 27, dSteel, 0, 3); + world.setBlock(x + 7, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 8, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 9, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 10, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 11, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 12, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 13, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 14, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 15, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 16, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 17, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 18, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 19, y + 16, z + 28, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 20, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 21, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 8, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 20, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 21, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 9, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 10, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 10, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 10, dSteel, 0, 3); world.setBlock(x + 18, y + 17, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 17, z + 10, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 17, z + 10, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 21, y + 17, z + 10, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 10, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 11, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 11, Block2, 0, 3); + world.setBlock(x + 21, y + 17, z + 10, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 10, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 10, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 11, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 11, dSteel, 0, 3); world.setBlock(x + 17, y + 17, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 17, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 17, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 17, z + 11, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 17, z + 11, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 22, y + 17, z + 11, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 11, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 12, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 12, Block2, 0, 3); + world.setBlock(x + 22, y + 17, z + 11, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 11, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 12, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 12, dSteel, 0, 3); world.setBlock(x + 17, y + 17, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 17, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 17, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 17, z + 12, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 17, z + 12, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 22, y + 17, z + 12, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 12, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 13, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 13, Block2, 0, 3); + world.setBlock(x + 22, y + 17, z + 12, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 12, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 13, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 13, dSteel, 0, 3); world.setBlock(x + 17, y + 17, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 18, y + 17, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 17, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 17, z + 13, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 21, y + 17, z + 13, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 22, y + 17, z + 13, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 13, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 14, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 14, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 14, Block2, 0, 3); + world.setBlock(x + 22, y + 17, z + 13, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 13, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 14, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 14, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 14, dSteel, 0, 3); world.setBlock(x + 18, y + 17, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 17, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 17, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 21, y + 17, z + 14, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 14, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 14, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 20, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 21, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 23, y + 17, z + 15, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 20, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 21, y + 17, z + 16, Block2, 0, 3); - world.setBlock(x + 22, y + 17, z + 16, Block2, 0, 3); + world.setBlock(x + 21, y + 17, z + 14, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 14, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 14, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 20, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 21, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 23, y + 17, z + 15, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 20, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 21, y + 17, z + 16, dSteel, 0, 3); + world.setBlock(x + 22, y + 17, z + 16, dSteel, 0, 3); world.setBlock(x + 19, y + 17, z + 17, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 21, y + 17, z + 17, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 19, y + 17, z + 18, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 21, y + 17, z + 18, ModBlocks.fence_metal, 0, 3); - world.setBlock(x + 7, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 19, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 20, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 21, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 22, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 23, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 24, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 25, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 26, Block2, 0, 3); - world.setBlock(x + 7, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 8, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 9, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 10, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 11, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 12, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 13, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 14, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 15, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 16, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 17, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 18, y + 17, z + 27, Block2, 0, 3); - world.setBlock(x + 19, y + 17, z + 27, Block2, 0, 3); + world.setBlock(x + 7, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 19, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 20, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 21, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 22, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 23, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 24, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 25, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 26, dSteel, 0, 3); + world.setBlock(x + 7, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 8, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 9, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 10, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 11, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 12, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 13, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 14, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 15, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 16, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 17, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 18, y + 17, z + 27, dSteel, 0, 3); + world.setBlock(x + 19, y + 17, z + 27, dSteel, 0, 3); world.setBlock(x + 16, y + 18, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 17, y + 18, z + 8, ModBlocks.fence_metal, 0, 3); world.setBlock(x + 18, y + 18, z + 8, ModBlocks.fence_metal, 0, 3); @@ -1449,51 +1430,51 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 19, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 19, y + 19, z + 14, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 20, y + 19, z + 14, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 18, y + 20, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 20, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 20, z + 10, Block2, 0, 3); - world.setBlock(x + 17, y + 20, z + 11, Block2, 0, 3); - world.setBlock(x + 18, y + 20, z + 11, Block2, 0, 3); - world.setBlock(x + 19, y + 20, z + 11, Block2, 0, 3); - world.setBlock(x + 20, y + 20, z + 11, Block2, 0, 3); - world.setBlock(x + 21, y + 20, z + 11, Block2, 0, 3); - world.setBlock(x + 17, y + 20, z + 12, Block2, 0, 3); - world.setBlock(x + 18, y + 20, z + 12, Block2, 0, 3); - world.setBlock(x + 19, y + 20, z + 12, Block2, 0, 3); - world.setBlock(x + 20, y + 20, z + 12, Block2, 0, 3); + world.setBlock(x + 18, y + 20, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 20, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 20, z + 10, dSteel, 0, 3); + world.setBlock(x + 17, y + 20, z + 11, dSteel, 0, 3); + world.setBlock(x + 18, y + 20, z + 11, dSteel, 0, 3); + world.setBlock(x + 19, y + 20, z + 11, dSteel, 0, 3); + world.setBlock(x + 20, y + 20, z + 11, dSteel, 0, 3); + world.setBlock(x + 21, y + 20, z + 11, dSteel, 0, 3); + world.setBlock(x + 17, y + 20, z + 12, dSteel, 0, 3); + world.setBlock(x + 18, y + 20, z + 12, dSteel, 0, 3); + world.setBlock(x + 19, y + 20, z + 12, dSteel, 0, 3); + world.setBlock(x + 20, y + 20, z + 12, dSteel, 0, 3); world.setBlock(x + 21, y + 20, z + 12, Block5, 0, 3); world.setBlock(x + 22, y + 20, z + 12, Block5, 0, 3); world.setBlock(x + 23, y + 20, z + 12, Block5, 0, 3); - world.setBlock(x + 17, y + 20, z + 13, Block2, 0, 3); - world.setBlock(x + 18, y + 20, z + 13, Block2, 0, 3); - world.setBlock(x + 19, y + 20, z + 13, Block2, 0, 3); - world.setBlock(x + 20, y + 20, z + 13, Block2, 0, 3); - world.setBlock(x + 21, y + 20, z + 13, Block2, 0, 3); - world.setBlock(x + 18, y + 20, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 20, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 20, z + 14, Block2, 0, 3); - world.setBlock(x + 18, y + 21, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 21, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 21, z + 10, Block2, 0, 3); - world.setBlock(x + 18, y + 21, z + 11, Block2, 0, 3); - world.setBlock(x + 19, y + 21, z + 11, Block2, 0, 3); - world.setBlock(x + 20, y + 21, z + 11, Block2, 0, 3); + world.setBlock(x + 17, y + 20, z + 13, dSteel, 0, 3); + world.setBlock(x + 18, y + 20, z + 13, dSteel, 0, 3); + world.setBlock(x + 19, y + 20, z + 13, dSteel, 0, 3); + world.setBlock(x + 20, y + 20, z + 13, dSteel, 0, 3); + world.setBlock(x + 21, y + 20, z + 13, dSteel, 0, 3); + world.setBlock(x + 18, y + 20, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 20, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 20, z + 14, dSteel, 0, 3); + world.setBlock(x + 18, y + 21, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 21, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 21, z + 10, dSteel, 0, 3); + world.setBlock(x + 18, y + 21, z + 11, dSteel, 0, 3); + world.setBlock(x + 19, y + 21, z + 11, dSteel, 0, 3); + world.setBlock(x + 20, y + 21, z + 11, dSteel, 0, 3); world.setBlock(x + 22, y + 21, z + 11, Block4, 0, 3); world.setBlock(x + 21, y + 21, z + 12, Block5, 0, 3); world.setBlock(x + 22, y + 21, z + 12, Block4, 0, 3); world.setBlock(x + 23, y + 21, z + 12, Block5, 0, 3); world.setBlock(x + 24, y + 21, z + 12, Block5, 0, 3); - world.setBlock(x + 18, y + 21, z + 13, Block2, 0, 3); - world.setBlock(x + 19, y + 21, z + 13, Block2, 0, 3); - world.setBlock(x + 20, y + 21, z + 13, Block2, 0, 3); + world.setBlock(x + 18, y + 21, z + 13, dSteel, 0, 3); + world.setBlock(x + 19, y + 21, z + 13, dSteel, 0, 3); + world.setBlock(x + 20, y + 21, z + 13, dSteel, 0, 3); world.setBlock(x + 22, y + 21, z + 13, Block4, 0, 3); - world.setBlock(x + 18, y + 21, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 21, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 21, z + 14, Block2, 0, 3); - world.setBlock(x + 15, y + 22, z + 9, Block2, 0, 3); - world.setBlock(x + 18, y + 22, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 22, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 22, z + 10, Block2, 0, 3); + world.setBlock(x + 18, y + 21, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 21, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 21, z + 14, dSteel, 0, 3); + world.setBlock(x + 15, y + 22, z + 9, dSteel, 0, 3); + world.setBlock(x + 18, y + 22, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 22, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 22, z + 10, dSteel, 0, 3); world.setBlock(x + 21, y + 22, z + 11, Block4, 0, 3); world.setBlock(x + 22, y + 22, z + 11, Block4, 0, 3); world.setBlock(x + 23, y + 22, z + 11, Block4, 0, 3); @@ -1504,38 +1485,38 @@ public class Satellite extends WorldGenerator world.setBlock(x + 21, y + 22, z + 13, Block4, 0, 3); world.setBlock(x + 22, y + 22, z + 13, Block4, 0, 3); world.setBlock(x + 23, y + 22, z + 13, Block4, 0, 3); - world.setBlock(x + 18, y + 22, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 22, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 22, z + 14, Block2, 0, 3); - world.setBlock(x + 15, y + 22, z + 15, Block2, 0, 3); - world.setBlock(x + 14, y + 23, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 23, z + 9, Block2, 0, 3); - world.setBlock(x + 16, y + 23, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 23, z + 10, Block2, 0, 3); - world.setBlock(x + 18, y + 23, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 23, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 23, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 23, z + 11, Block2, 0, 3); + world.setBlock(x + 18, y + 22, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 22, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 22, z + 14, dSteel, 0, 3); + world.setBlock(x + 15, y + 22, z + 15, dSteel, 0, 3); + world.setBlock(x + 14, y + 23, z + 9, dSteel, 0, 3); + world.setBlock(x + 15, y + 23, z + 9, dSteel, 0, 3); + world.setBlock(x + 16, y + 23, z + 9, dSteel, 0, 3); + world.setBlock(x + 15, y + 23, z + 10, dSteel, 0, 3); + world.setBlock(x + 18, y + 23, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 23, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 23, z + 10, dSteel, 0, 3); + world.setBlock(x + 15, y + 23, z + 11, dSteel, 0, 3); world.setBlock(x + 20, y + 23, z + 11, Block4, 0, 3); world.setBlock(x + 21, y + 23, z + 11, Block4, 0, 3); world.setBlock(x + 22, y + 23, z + 11, Block4, 0, 3); - world.setBlock(x + 15, y + 23, z + 12, Block2, 0, 3); + world.setBlock(x + 15, y + 23, z + 12, dSteel, 0, 3); world.setBlock(x + 20, y + 23, z + 12, Block4, 0, 3); world.setBlock(x + 21, y + 23, z + 12, Block4, 0, 3); world.setBlock(x + 22, y + 23, z + 12, Block4, 0, 3); world.setBlock(x + 23, y + 23, z + 12, Block5, 0, 3); world.setBlock(x + 24, y + 23, z + 12, Block5, 0, 3); - world.setBlock(x + 15, y + 23, z + 13, Block2, 0, 3); + world.setBlock(x + 15, y + 23, z + 13, dSteel, 0, 3); world.setBlock(x + 20, y + 23, z + 13, Block4, 0, 3); world.setBlock(x + 21, y + 23, z + 13, Block4, 0, 3); world.setBlock(x + 22, y + 23, z + 13, Block4, 0, 3); - world.setBlock(x + 15, y + 23, z + 14, Block2, 0, 3); - world.setBlock(x + 18, y + 23, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 23, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 23, z + 14, Block2, 0, 3); - world.setBlock(x + 14, y + 23, z + 15, Block2, 0, 3); - world.setBlock(x + 15, y + 23, z + 15, Block2, 0, 3); - world.setBlock(x + 16, y + 23, z + 15, Block2, 0, 3); + world.setBlock(x + 15, y + 23, z + 14, dSteel, 0, 3); + world.setBlock(x + 18, y + 23, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 23, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 23, z + 14, dSteel, 0, 3); + world.setBlock(x + 14, y + 23, z + 15, dSteel, 0, 3); + world.setBlock(x + 15, y + 23, z + 15, dSteel, 0, 3); + world.setBlock(x + 16, y + 23, z + 15, dSteel, 0, 3); world.setBlock(x + 5, y + 24, z + 9, Block5, 0, 3); world.setBlock(x + 6, y + 24, z + 9, Block5, 0, 3); world.setBlock(x + 7, y + 24, z + 9, Block5, 0, 3); @@ -1543,9 +1524,9 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 9, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 9, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 9, Block5, 0, 3); - world.setBlock(x + 15, y + 24, z + 9, Block2, 0, 3); - world.setBlock(x + 16, y + 24, z + 9, Block2, 0, 3); - world.setBlock(x + 17, y + 24, z + 9, Block2, 0, 3); + world.setBlock(x + 15, y + 24, z + 9, dSteel, 0, 3); + world.setBlock(x + 16, y + 24, z + 9, dSteel, 0, 3); + world.setBlock(x + 17, y + 24, z + 9, dSteel, 0, 3); world.setBlock(x + 5, y + 24, z + 10, Block5, 0, 3); world.setBlock(x + 6, y + 24, z + 10, Block5, 0, 3); world.setBlock(x + 7, y + 24, z + 10, Block5, 0, 3); @@ -1553,13 +1534,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 10, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 10, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 10, Block5, 0, 3); - world.setBlock(x + 12, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 13, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 14, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 16, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 17, y + 24, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 24, z + 10, Block2, 0, 3); + world.setBlock(x + 12, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 13, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 14, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 15, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 16, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 17, y + 24, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 24, z + 10, dSteel, 0, 3); world.setBlock(x + 5, y + 24, z + 11, Block5, 0, 3); world.setBlock(x + 6, y + 24, z + 11, Block5, 0, 3); world.setBlock(x + 7, y + 24, z + 11, Block5, 0, 3); @@ -1567,7 +1548,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 11, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 11, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 11, Block5, 0, 3); - world.setBlock(x + 17, y + 24, z + 11, Block2, 0, 3); + world.setBlock(x + 17, y + 24, z + 11, dSteel, 0, 3); world.setBlock(x + 19, y + 24, z + 11, Block4, 0, 3); world.setBlock(x + 20, y + 24, z + 11, Block4, 0, 3); world.setBlock(x + 21, y + 24, z + 11, Block4, 0, 3); @@ -1578,7 +1559,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 12, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 12, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 12, Block5, 0, 3); - world.setBlock(x + 17, y + 24, z + 12, Block2, 0, 3); + world.setBlock(x + 17, y + 24, z + 12, dSteel, 0, 3); world.setBlock(x + 19, y + 24, z + 12, Block4, 0, 3); world.setBlock(x + 20, y + 24, z + 12, Block4, 0, 3); world.setBlock(x + 21, y + 24, z + 12, Block4, 0, 3); @@ -1597,7 +1578,7 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 13, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 13, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 13, Block5, 0, 3); - world.setBlock(x + 17, y + 24, z + 13, Block2, 0, 3); + world.setBlock(x + 17, y + 24, z + 13, dSteel, 0, 3); world.setBlock(x + 19, y + 24, z + 13, Block4, 0, 3); world.setBlock(x + 20, y + 24, z + 13, Block4, 0, 3); world.setBlock(x + 21, y + 24, z + 13, Block4, 0, 3); @@ -1608,13 +1589,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 14, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 14, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 14, Block5, 0, 3); - world.setBlock(x + 12, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 13, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 14, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 15, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 16, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 17, y + 24, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 24, z + 14, Block2, 0, 3); + world.setBlock(x + 12, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 13, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 14, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 15, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 16, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 17, y + 24, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 24, z + 14, dSteel, 0, 3); world.setBlock(x + 5, y + 24, z + 15, Block5, 0, 3); world.setBlock(x + 6, y + 24, z + 15, Block5, 0, 3); world.setBlock(x + 7, y + 24, z + 15, Block5, 0, 3); @@ -1622,9 +1603,9 @@ public class Satellite extends WorldGenerator world.setBlock(x + 9, y + 24, z + 15, Block5, 0, 3); world.setBlock(x + 10, y + 24, z + 15, Block5, 0, 3); world.setBlock(x + 11, y + 24, z + 15, Block5, 0, 3); - world.setBlock(x + 15, y + 24, z + 15, Block2, 0, 3); - world.setBlock(x + 16, y + 24, z + 15, Block2, 0, 3); - world.setBlock(x + 17, y + 24, z + 15, Block2, 0, 3); + world.setBlock(x + 15, y + 24, z + 15, dSteel, 0, 3); + world.setBlock(x + 16, y + 24, z + 15, dSteel, 0, 3); + world.setBlock(x + 17, y + 24, z + 15, dSteel, 0, 3); world.setBlock(x + 5, y + 25, z + 6, Block5, 0, 3); world.setBlock(x + 6, y + 25, z + 6, Block5, 0, 3); world.setBlock(x + 7, y + 25, z + 6, Block5, 0, 3); @@ -1652,29 +1633,29 @@ public class Satellite extends WorldGenerator world.setBlock(x + 12, y + 25, z + 9, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 9, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 9, Block5, 0, 3); - world.setBlock(x + 16, y + 25, z + 9, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 9, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 9, Block2, 0, 3); + world.setBlock(x + 16, y + 25, z + 9, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 9, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 9, dSteel, 0, 3); world.setBlock(x + 2, y + 25, z + 10, Block5, 0, 3); world.setBlock(x + 3, y + 25, z + 10, Block5, 0, 3); world.setBlock(x + 4, y + 25, z + 10, Block5, 0, 3); world.setBlock(x + 12, y + 25, z + 10, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 10, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 10, Block5, 0, 3); - world.setBlock(x + 15, y + 25, z + 10, Block2, 0, 3); - world.setBlock(x + 16, y + 25, z + 10, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 10, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 25, z + 10, Block2, 0, 3); + world.setBlock(x + 15, y + 25, z + 10, dSteel, 0, 3); + world.setBlock(x + 16, y + 25, z + 10, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 10, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 25, z + 10, dSteel, 0, 3); world.setBlock(x + 2, y + 25, z + 11, Block5, 0, 3); world.setBlock(x + 3, y + 25, z + 11, Block5, 0, 3); world.setBlock(x + 4, y + 25, z + 11, Block5, 0, 3); world.setBlock(x + 12, y + 25, z + 11, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 11, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 11, Block5, 0, 3); - world.setBlock(x + 16, y + 25, z + 11, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 11, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 11, Block2, 0, 3); + world.setBlock(x + 16, y + 25, z + 11, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 11, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 11, dSteel, 0, 3); world.setBlock(x + 19, y + 25, z + 11, Block4, 0, 3); world.setBlock(x + 20, y + 25, z + 11, Block4, 0, 3); world.setBlock(x + 2, y + 25, z + 12, Block5, 0, 3); @@ -1684,9 +1665,9 @@ public class Satellite extends WorldGenerator world.setBlock(x + 12, y + 25, z + 12, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 12, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 12, Block5, 0, 3); - world.setBlock(x + 16, y + 25, z + 12, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 12, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 12, Block2, 0, 3); + world.setBlock(x + 16, y + 25, z + 12, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 12, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 12, dSteel, 0, 3); world.setBlock(x + 19, y + 25, z + 12, Block4, 0, 3); world.setBlock(x + 20, y + 25, z + 12, Block4, 0, 3); world.setBlock(x + 2, y + 25, z + 13, Block5, 0, 3); @@ -1695,9 +1676,9 @@ public class Satellite extends WorldGenerator world.setBlock(x + 12, y + 25, z + 13, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 13, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 13, Block5, 0, 3); - world.setBlock(x + 16, y + 25, z + 13, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 13, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 13, Block2, 0, 3); + world.setBlock(x + 16, y + 25, z + 13, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 13, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 13, dSteel, 0, 3); world.setBlock(x + 19, y + 25, z + 13, Block4, 0, 3); world.setBlock(x + 20, y + 25, z + 13, Block4, 0, 3); world.setBlock(x + 2, y + 25, z + 14, Block5, 0, 3); @@ -1706,20 +1687,20 @@ public class Satellite extends WorldGenerator world.setBlock(x + 12, y + 25, z + 14, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 14, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 14, Block5, 0, 3); - world.setBlock(x + 15, y + 25, z + 14, Block2, 0, 3); - world.setBlock(x + 16, y + 25, z + 14, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 14, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 25, z + 14, Block2, 0, 3); + world.setBlock(x + 15, y + 25, z + 14, dSteel, 0, 3); + world.setBlock(x + 16, y + 25, z + 14, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 14, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 25, z + 14, dSteel, 0, 3); world.setBlock(x + 2, y + 25, z + 15, Block5, 0, 3); world.setBlock(x + 3, y + 25, z + 15, Block5, 0, 3); world.setBlock(x + 4, y + 25, z + 15, Block5, 0, 3); world.setBlock(x + 12, y + 25, z + 15, Block5, 0, 3); world.setBlock(x + 13, y + 25, z + 15, Block5, 0, 3); world.setBlock(x + 14, y + 25, z + 15, Block5, 0, 3); - world.setBlock(x + 16, y + 25, z + 15, Block2, 0, 3); - world.setBlock(x + 17, y + 25, z + 15, Block2, 0, 3); - world.setBlock(x + 18, y + 25, z + 15, Block2, 0, 3); + world.setBlock(x + 16, y + 25, z + 15, dSteel, 0, 3); + world.setBlock(x + 17, y + 25, z + 15, dSteel, 0, 3); + world.setBlock(x + 18, y + 25, z + 15, dSteel, 0, 3); world.setBlock(x + 5, y + 25, z + 16, Block5, 0, 3); world.setBlock(x + 6, y + 25, z + 16, Block5, 0, 3); world.setBlock(x + 7, y + 25, z + 16, Block5, 0, 3); @@ -1777,53 +1758,53 @@ public class Satellite extends WorldGenerator world.setBlock(x + 1, y + 26, z + 9, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 9, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 9, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 9, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 9, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 9, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 9, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 9, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 9, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 10, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 10, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 10, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 10, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 10, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 10, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 10, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 10, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 11, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 11, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 11, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 11, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 11, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 11, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 11, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 11, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 11, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 11, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 12, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 12, Block5, 0, 3); world.setBlock(x + 10, y + 26, z + 12, Block4, 0, 3); world.setBlock(x + 11, y + 26, z + 12, Block4, 0, 3); world.setBlock(x + 15, y + 26, z + 12, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 12, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 12, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 12, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 12, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 12, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 12, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 12, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 13, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 13, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 13, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 13, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 13, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 13, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 13, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 13, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 13, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 13, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 14, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 14, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 14, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 14, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 14, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 14, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 14, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 14, dSteel, 0, 3); world.setBlock(x + 0, y + 26, z + 15, Block7, 0, 3); world.setBlock(x + 1, y + 26, z + 15, Block5, 0, 3); world.setBlock(x + 15, y + 26, z + 15, Block5, 0, 3); world.setBlock(x + 16, y + 26, z + 15, Block5, 0, 3); - world.setBlock(x + 17, y + 26, z + 15, Block2, 0, 3); - world.setBlock(x + 18, y + 26, z + 15, Block2, 0, 3); - world.setBlock(x + 19, y + 26, z + 15, Block2, 0, 3); + world.setBlock(x + 17, y + 26, z + 15, dSteel, 0, 3); + world.setBlock(x + 18, y + 26, z + 15, dSteel, 0, 3); + world.setBlock(x + 19, y + 26, z + 15, dSteel, 0, 3); world.setBlock(x + 2, y + 26, z + 16, Block5, 0, 3); world.setBlock(x + 3, y + 26, z + 16, Block5, 0, 3); world.setBlock(x + 4, y + 26, z + 16, Block5, 0, 3); @@ -1885,34 +1866,34 @@ public class Satellite extends WorldGenerator world.setBlock(x + 15, y + 27, z + 8, Block5, 0, 3); world.setBlock(x + 16, y + 27, z + 8, Block5, 0, 3); world.setBlock(x + 17, y + 27, z + 9, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 9, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 9, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 9, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 9, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 9, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 9, dSteel, 0, 3); world.setBlock(x + 17, y + 27, z + 10, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 10, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 10, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 10, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 10, dSteel, 0, 3); world.setBlock(x + 17, y + 27, z + 11, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 11, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 11, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 11, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 11, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 11, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 11, dSteel, 0, 3); world.setBlock(x + 10, y + 27, z + 12, Block4, 0, 3); world.setBlock(x + 17, y + 27, z + 12, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 12, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 12, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 12, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 12, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 12, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 12, dSteel, 0, 3); world.setBlock(x + 17, y + 27, z + 13, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 13, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 13, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 13, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 13, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 13, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 13, dSteel, 0, 3); world.setBlock(x + 17, y + 27, z + 14, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 14, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 14, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 14, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 14, dSteel, 0, 3); world.setBlock(x + 17, y + 27, z + 15, Block5, 0, 3); - world.setBlock(x + 18, y + 27, z + 15, Block2, 0, 3); - world.setBlock(x + 19, y + 27, z + 15, Block2, 0, 3); - world.setBlock(x + 20, y + 27, z + 15, Block2, 0, 3); + world.setBlock(x + 18, y + 27, z + 15, dSteel, 0, 3); + world.setBlock(x + 19, y + 27, z + 15, dSteel, 0, 3); + world.setBlock(x + 20, y + 27, z + 15, dSteel, 0, 3); world.setBlock(x + 1, y + 27, z + 16, Block7, 0, 3); world.setBlock(x + 15, y + 27, z + 16, Block5, 0, 3); world.setBlock(x + 16, y + 27, z + 16, Block5, 0, 3); @@ -1962,27 +1943,27 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 28, z + 7, Block5, 0, 3); world.setBlock(x + 17, y + 28, z + 8, Block5, 0, 3); world.setBlock(x + 18, y + 28, z + 9, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 9, Block2, 0, 3); - world.setBlock(x + 20, y + 28, z + 9, Block2, 0, 3); - world.setBlock(x + 21, y + 28, z + 9, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 9, dSteel, 0, 3); + world.setBlock(x + 20, y + 28, z + 9, dSteel, 0, 3); + world.setBlock(x + 21, y + 28, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 28, z + 10, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 28, z + 10, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 28, z + 10, dSteel, 0, 3); world.setBlock(x + 18, y + 28, z + 11, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 11, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 11, dSteel, 0, 3); world.setBlock(x + 9, y + 28, z + 12, Block4, 0, 3); world.setBlock(x + 10, y + 28, z + 12, Block4, 0, 3); world.setBlock(x + 18, y + 28, z + 12, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 12, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 12, dSteel, 0, 3); world.setBlock(x + 18, y + 28, z + 13, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 13, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 13, dSteel, 0, 3); world.setBlock(x + 18, y + 28, z + 14, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 28, z + 14, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 28, z + 14, dSteel, 0, 3); world.setBlock(x + 18, y + 28, z + 15, Block5, 0, 3); - world.setBlock(x + 19, y + 28, z + 15, Block2, 0, 3); - world.setBlock(x + 20, y + 28, z + 15, Block2, 0, 3); - world.setBlock(x + 21, y + 28, z + 15, Block2, 0, 3); + world.setBlock(x + 19, y + 28, z + 15, dSteel, 0, 3); + world.setBlock(x + 20, y + 28, z + 15, dSteel, 0, 3); + world.setBlock(x + 21, y + 28, z + 15, dSteel, 0, 3); world.setBlock(x + 17, y + 28, z + 16, Block5, 0, 3); world.setBlock(x + 17, y + 28, z + 17, Block5, 0, 3); world.setBlock(x + 17, y + 28, z + 18, Block5, 0, 3); @@ -2022,28 +2003,28 @@ public class Satellite extends WorldGenerator world.setBlock(x + 17, y + 29, z + 7, Block5, 0, 3); world.setBlock(x + 17, y + 29, z + 8, Block5, 0, 3); world.setBlock(x + 18, y + 29, z + 9, Block5, 0, 3); - world.setBlock(x + 20, y + 29, z + 9, Block2, 0, 3); - world.setBlock(x + 21, y + 29, z + 9, Block2, 0, 3); - world.setBlock(x + 22, y + 29, z + 9, Block2, 0, 3); + world.setBlock(x + 20, y + 29, z + 9, dSteel, 0, 3); + world.setBlock(x + 21, y + 29, z + 9, dSteel, 0, 3); + world.setBlock(x + 22, y + 29, z + 9, dSteel, 0, 3); world.setBlock(x + 18, y + 29, z + 10, Block5, 0, 3); - world.setBlock(x + 19, y + 29, z + 10, Block2, 0, 3); - world.setBlock(x + 20, y + 29, z + 10, Block2, 0, 3); - world.setBlock(x + 21, y + 29, z + 10, Block2, 0, 3); + world.setBlock(x + 19, y + 29, z + 10, dSteel, 0, 3); + world.setBlock(x + 20, y + 29, z + 10, dSteel, 0, 3); + world.setBlock(x + 21, y + 29, z + 10, dSteel, 0, 3); world.setBlock(x + 18, y + 29, z + 11, Block5, 0, 3); - world.setBlock(x + 21, y + 29, z + 11, Block2, 0, 3); + world.setBlock(x + 21, y + 29, z + 11, dSteel, 0, 3); world.setBlock(x + 9, y + 29, z + 12, Block4, 0, 3); world.setBlock(x + 18, y + 29, z + 12, Block5, 0, 3); - world.setBlock(x + 21, y + 29, z + 12, Block2, 0, 3); + world.setBlock(x + 21, y + 29, z + 12, dSteel, 0, 3); world.setBlock(x + 18, y + 29, z + 13, Block5, 0, 3); - world.setBlock(x + 21, y + 29, z + 13, Block2, 0, 3); + world.setBlock(x + 21, y + 29, z + 13, dSteel, 0, 3); world.setBlock(x + 18, y + 29, z + 14, Block5, 0, 3); - world.setBlock(x + 19, y + 29, z + 14, Block2, 0, 3); - world.setBlock(x + 20, y + 29, z + 14, Block2, 0, 3); - world.setBlock(x + 21, y + 29, z + 14, Block2, 0, 3); + world.setBlock(x + 19, y + 29, z + 14, dSteel, 0, 3); + world.setBlock(x + 20, y + 29, z + 14, dSteel, 0, 3); + world.setBlock(x + 21, y + 29, z + 14, dSteel, 0, 3); world.setBlock(x + 18, y + 29, z + 15, Block5, 0, 3); - world.setBlock(x + 20, y + 29, z + 15, Block2, 0, 3); - world.setBlock(x + 21, y + 29, z + 15, Block2, 0, 3); - world.setBlock(x + 22, y + 29, z + 15, Block2, 0, 3); + world.setBlock(x + 20, y + 29, z + 15, dSteel, 0, 3); + world.setBlock(x + 21, y + 29, z + 15, dSteel, 0, 3); + world.setBlock(x + 22, y + 29, z + 15, dSteel, 0, 3); world.setBlock(x + 17, y + 29, z + 16, Block5, 0, 3); world.setBlock(x + 17, y + 29, z + 17, Block5, 0, 3); world.setBlock(x + 17, y + 29, z + 18, Block5, 0, 3); @@ -2081,18 +2062,18 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 30, z + 7, Block5, 0, 3); world.setBlock(x + 18, y + 30, z + 8, Block5, 0, 3); world.setBlock(x + 19, y + 30, z + 9, Block5, 0, 3); - world.setBlock(x + 21, y + 30, z + 9, Block2, 0, 3); + world.setBlock(x + 21, y + 30, z + 9, dSteel, 0, 3); world.setBlock(x + 19, y + 30, z + 10, Block5, 0, 3); - world.setBlock(x + 20, y + 30, z + 10, Block2, 0, 3); + world.setBlock(x + 20, y + 30, z + 10, dSteel, 0, 3); world.setBlock(x + 19, y + 30, z + 11, Block5, 0, 3); world.setBlock(x + 8, y + 30, z + 12, Block4, 0, 3); world.setBlock(x + 9, y + 30, z + 12, Block4, 0, 3); world.setBlock(x + 19, y + 30, z + 12, Block5, 0, 3); world.setBlock(x + 19, y + 30, z + 13, Block5, 0, 3); world.setBlock(x + 19, y + 30, z + 14, Block5, 0, 3); - world.setBlock(x + 20, y + 30, z + 14, Block2, 0, 3); + world.setBlock(x + 20, y + 30, z + 14, dSteel, 0, 3); world.setBlock(x + 19, y + 30, z + 15, Block5, 0, 3); - world.setBlock(x + 21, y + 30, z + 15, Block2, 0, 3); + world.setBlock(x + 21, y + 30, z + 15, dSteel, 0, 3); world.setBlock(x + 18, y + 30, z + 16, Block5, 0, 3); world.setBlock(x + 18, y + 30, z + 17, Block5, 0, 3); world.setBlock(x + 18, y + 30, z + 18, Block5, 0, 3); @@ -2130,13 +2111,13 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 31, z + 8, Block5, 0, 3); world.setBlock(x + 19, y + 31, z + 9, Block5, 0, 3); world.setBlock(x + 19, y + 31, z + 10, Block5, 0, 3); - world.setBlock(x + 20, y + 31, z + 10, Block2, 0, 3); + world.setBlock(x + 20, y + 31, z + 10, dSteel, 0, 3); world.setBlock(x + 19, y + 31, z + 11, Block5, 0, 3); world.setBlock(x + 8, y + 31, z + 12, Block4, 0, 3); world.setBlock(x + 19, y + 31, z + 12, Block5, 0, 3); world.setBlock(x + 19, y + 31, z + 13, Block5, 0, 3); world.setBlock(x + 19, y + 31, z + 14, Block5, 0, 3); - world.setBlock(x + 20, y + 31, z + 14, Block2, 0, 3); + world.setBlock(x + 20, y + 31, z + 14, dSteel, 0, 3); world.setBlock(x + 19, y + 31, z + 15, Block5, 0, 3); world.setBlock(x + 18, y + 31, z + 16, Block5, 0, 3); world.setBlock(x + 18, y + 31, z + 17, Block5, 0, 3); @@ -2173,14 +2154,14 @@ public class Satellite extends WorldGenerator world.setBlock(x + 18, y + 32, z + 8, Block5, 0, 3); world.setBlock(x + 19, y + 32, z + 9, Block5, 0, 3); world.setBlock(x + 19, y + 32, z + 10, Block5, 0, 3); - world.setBlock(x + 20, y + 32, z + 10, Block2, 0, 3); + world.setBlock(x + 20, y + 32, z + 10, dSteel, 0, 3); world.setBlock(x + 19, y + 32, z + 11, Block5, 0, 3); world.setBlock(x + 7, y + 32, z + 12, Block4, 0, 3); world.setBlock(x + 8, y + 32, z + 12, Block4, 0, 3); world.setBlock(x + 19, y + 32, z + 12, Block5, 0, 3); world.setBlock(x + 19, y + 32, z + 13, Block5, 0, 3); world.setBlock(x + 19, y + 32, z + 14, Block5, 0, 3); - world.setBlock(x + 20, y + 32, z + 14, Block2, 0, 3); + world.setBlock(x + 20, y + 32, z + 14, dSteel, 0, 3); world.setBlock(x + 19, y + 32, z + 15, Block5, 0, 3); world.setBlock(x + 18, y + 32, z + 16, Block5, 0, 3); world.setBlock(x + 18, y + 32, z + 17, Block5, 0, 3); @@ -2573,8 +2554,7 @@ public class Satellite extends WorldGenerator return true; } - public boolean generate_r03_last(World world, Random rand, int x, int y, int z) - { + public boolean generate_r03_last(World world, Random rand, int x, int y, int z) { world.setBlock(x + 19, y + 3, z + 9, Blocks.torch, 4, 3); world.setBlock(x + 6, y + 10, z + 17, Blocks.torch, 2, 3); @@ -2587,6 +2567,9 @@ public class Satellite extends WorldGenerator world.setBlock(x + 16, y + 19, z + 12, Blocks.torch, 2, 3); world.setBlock(x + 22, y + 19, z + 12, Blocks.torch, 1, 3); world.setBlock(x + 19, y + 19, z + 15, Blocks.torch, 3, 3); + LootGenerator.setBlock(world, x + 13, y + 15, z + 23); + LootGenerator.lootMedicine(world, x + 13, y + 15, z + 23); + if(GeneralConfig.enableDebugMode) System.out.print("[Debug] Successfully spawned satellite dish at " + x + " " + y +" " + z + "\n"); return true; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a29b18972..5b7db73b8 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -144,6 +144,7 @@ chem.KEVLAR=Kevlarverbundherstellung chem.LPG=Petroleumgasverflüssigung chem.NITAN=NITAN-Supertreibstoff mischen chem.OIL_SAND=Teersand-Extraktion +chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung chem.PEROXIDE=Wasserstoffperoxidherstellung chem.POLYMER=Polymersynthese chem.PUF6=Plutoniumhexafluoridproduktion @@ -437,6 +438,7 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.coolant=Kühlflüssigkeit hbmfluid.cryogel=Kryogel +hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.fracksol=Frackinglösung @@ -1105,6 +1107,7 @@ item.crystal_lead.name=Bleikristalle item.crystal_lapis.name=Lapiskristalle item.crystal_lithium.name=Lithiumkristalle item.crystal_niter.name=Salpeterkristalle +item.crystal_osmiridium.name=Osmiridiumkristalle item.crystal_phosphorus.name=Phosphorkristalle item.crystal_plutonium.name=Plutoniumkristalle item.crystal_rare.name=Seltenerdenkristalle @@ -1522,6 +1525,7 @@ item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren item.ingot_neptunium.name=Neptuniumbarren item.ingot_neptunium_fuel.name=Neptuniumkernbrennstoffbarren item.ingot_niobium.name=Niobbarren +item.ingot_osmiridium.name=Osmiridiumbarren item.ingot_phosphorus.name=Weiße Phosphortafel item.ingot_plutonium.name=Plutoniumbarren item.ingot_plutonium_fuel.name=Plutoniumkernbrennstoffbarren @@ -1874,6 +1878,7 @@ item.nugget_mercury.name=Quecksilbertropfen item.nugget_mox_fuel.name=MOX-Kernbrennstoffnugget item.nugget_neptunium.name=Neptuniumnugget item.nugget_neptunium_fuel.name=Neptuniumkernbrennstoffnugget +item.nugget_osmiridium.name=Osmiridiumnugget item.nugget_plutonium.name=Plutoniumnugget item.nugget_plutonium_fuel.name=Plutoniumkernbrennstoffnugget item.nugget_polonium.name=Polonium-210-Nugget @@ -2056,6 +2061,7 @@ item.powder_gold.name=Goldstaub item.powder_i131.name=Iod-131-Staub item.powder_i131_tiny.name=Kleiner Haufen Iod-131-Staub item.powder_ice.name=Kryopulver +item.powder_impure_osmiridium.name=Unreiner Osmiridiumstaub item.powder_iodine.name=Iodstaub item.powder_iron.name=Eisenstaub item.powder_lanthanium.name=Lanthanstaub @@ -2075,6 +2081,8 @@ item.powder_neptunium.name=Neptuniumstaub item.powder_niobium.name=Niobstaub item.powder_niobium_tiny.name=Kleiner Haufen Niobstaub item.powder_nitan_mix.name=Nitaniummischung +item.powder_paleogenite.name=Paleogenitstaub +item.powder_paleogenite_tiny.name=Kleiner Haufen Paleogenitstaub item.powder_plutonium.name=Plutoniumstaub item.powder_poison.name=Giftpulver item.powder_polonium.name=Polonium-210-Staub @@ -2818,6 +2826,7 @@ tile.brick_jungle_trap.name=Enargit-Falle tile.brick_light.name=Helle Ziegel tile.brick_obsidian.name=Obsidianziegel tile.broadcaster_pc.name=Korrupter Sender +tile.burning_earth.name=Brennendes Gras tile.cable_switch.name=Stromschalter tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block @@ -3224,6 +3233,7 @@ tile.ore_rare.name=Seltenerden-Erz tile.ore_reiium.name=Reiit tile.ore_schrabidium.name=Schrabidiumerz tile.ore_sulfur.name=Schwefelerz +tile.ore_tektite_osmiridium.name=Osmiridiumreiches Tektit tile.ore_thorium.name=Thoriumerz tile.ore_tikite.name=Trixit tile.ore_titanium.name=Titanerz @@ -3345,6 +3355,7 @@ tile.struct_soyuz_core.name=Soyuz-Startrampe-Kernkomponente tile.taint.name=Korrupter Schmutz tile.taint_barrel.name=IMP-Rückstandsfass tile.tape_recorder.name=Tonbandgerät +tile.tektite.name=Tektit tile.tesla.name=Teslaspule tile.test_nuke.name=Test Atombombe tile.therm_endo.name=Endothermische Bombe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 2dc7eb7b2..2fc39234b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -212,6 +212,7 @@ chem.KEVLAR=Kevlar Compound Production chem.LPG=Petroleum Gas Liquefaction chem.NITAN=NITAN Super Fuel Mixing chem.OIL_SAND=Tar Sand Extraction +chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production chem.PEROXIDE=Hydrogen Peroxide Production chem.POLYMER=Polymer Synthesis chem.PUF6=Plutonium Hexafluoride Production @@ -505,6 +506,7 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.coolant=Coolant hbmfluid.cryogel=Cryogel +hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.fracksol=Fracking Solution @@ -1173,6 +1175,7 @@ item.crystal_lead.name=Lead Crystals item.crystal_lapis.name=Lapis Crystals item.crystal_lithium.name=Lithium Crystals item.crystal_niter.name=Niter Crystals +item.crystal_osmiridium.name=Osmiridium Crystals item.crystal_phosphorus.name=Phosphorus Crystals item.crystal_plutonium.name=Plutonium Crystals item.crystal_rare.name=Rare Earth Crystals @@ -1590,6 +1593,7 @@ item.ingot_mox_fuel.name=Ingot of MOX Fuel item.ingot_neptunium.name=Neptunium Ingot item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot item.ingot_niobium.name=Niobium Ingot +item.ingot_osmiridium.name=Osmiridium Ingot item.ingot_phosphorus.name=Bar of White Phosphorus item.ingot_plutonium.name=Plutonium Ingot item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel @@ -1943,6 +1947,7 @@ item.nugget_mercury.name=Small Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget +item.nugget_osmiridium.name=Osmiridium Nugget item.nugget_plutonium.name=Plutonium Nugget item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel item.nugget_polonium.name=Polonium-210 Nugget @@ -2125,6 +2130,7 @@ item.powder_gold.name=Gold Powder item.powder_i131.name=Iodine-131 Powder item.powder_i131_tiny.name=Tiny Pile of Iodine-131 Powder item.powder_ice.name=Cryo Powder +item.powder_impure_osmiridium.name=Impure Osmiridium Powder item.powder_iodine.name=Iodine Powder item.powder_iron.name=Iron Powder item.powder_lanthanium.name=Lanthanium Powder @@ -2144,6 +2150,8 @@ item.powder_neptunium.name=Neptunium Powder item.powder_niobium.name=Niobium Powder item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder item.powder_nitan_mix.name=Nitanium Blend +item.powder_paleogenite.name=Paleogenite Powder +item.powder_paleogenite_tiny.name=Tiny Pile of Paleogenite Powder item.powder_plutonium.name=Plutonium Powder item.powder_poison.name=Poison Powder item.powder_polonium.name=Polonium-210 Powder @@ -2885,6 +2893,7 @@ tile.brick_jungle_trap.name=Trapped Enargite Bricks tile.brick_light.name=Light Bricks tile.brick_obsidian.name=Obsidian Bricks tile.broadcaster_pc.name=Corrupted Broadcaster +tile.burning_earth.name=Burning Grass tile.cable_switch.name=Power Switch tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block @@ -3291,6 +3300,7 @@ tile.ore_rare.name=Rare Earth Ore tile.ore_reiium.name=Reiite tile.ore_schrabidium.name=Schrabidium Ore tile.ore_sulfur.name=Sulfur Ore +tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite tile.ore_thorium.name=Thorium Ore tile.ore_tikite.name=Trixite tile.ore_titanium.name=Titanium Ore @@ -3412,6 +3422,7 @@ tile.struct_soyuz_core.name=Soyuz Launcher Core Component tile.taint.name=Taint tile.taint_barrel.name=IMP Residue Barrel tile.tape_recorder.name=Tape Recorder +tile.tektite.name=Tektite tile.tesla.name=Tesla Coil tile.test_nuke.name=Test Nuke tile.therm_endo.name=Endothermic Bomb diff --git a/src/main/resources/assets/hbm/textures/blocks/burning_grass_side.png b/src/main/resources/assets/hbm/textures/blocks/burning_grass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..46da8af3c693a984ae147d636c40b0e9c130e105 GIT binary patch literal 716 zcmV;-0yF)IP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2jvP3 z1Of@h*!6M%00K-&L_t(2&t*`-Zqq;%e7kO9TiGTyNfoEai4%hmL}@}RfrJtfwL6t&^z*q4Dk+>ohd_Y2~Q;VS5R#EIG-gN6YHiwmbVK2My&Age}hlax;LMTmB z#uxw;3WfE0ElCm~WV6{Y#?mxJ2yHeSN@=xP6`IXv9LJ?n31cjZViPZJGnvD+T1}E9 zt|f|Mu~s3WFCU84{z>9| zs}++769qE`GXVIrOxlH8mu6bx8Ja4kY){-8nksyJ`-1sbJ+pEA+;nEMQNN85Qixnk zC;+I!eYJlgQnzO|e*2+9WZ|H-=XgO&Q-kOZBUB-hWxHX-0Km{xg~+b`Qz7z_GKI+F zK}Y!f;dL0XC1p#>%7=JXy5UI@u0&WdRITEhF|9yi@) zSrFYFKHi^9XB8q*?Pw>u=Bu-8x235!mzLuN=+nDbju(vj?YSTFZ<&n;lj#ipJL5qI z05AY>HUP~2#&bWk-36cIYjwPUvu$@_y9=z>mAM~stgu}>UNHB=uRpHFgU-e2(PTOs y_1gfDd+zY-;`AsNE+3v5-@n-IfPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2jvP3 z1Oh7)xU`l400LA=L_t(2&n42?PU|ob24LIcIF7R~s;UYC;;>x73n20SFM$MY1YKy_ z;3iH&Y@dtVjz+(}(fs)J^|dU^^?I$8LI^R&x~}7#2SG57<1h@y7>seA=kM?Dd7i_~ z&CSoxkMH{c;JU7qGD(uI>)N(0ih^@)jJdnJ`}+D~j3I>J>FH@4$J6Pgwboh_LNLaT z<8aOqLX=V=#OLSd<#NFo-`?H=V+;ToV?qdwG3UH#8qWFUa_Rg2@9%G#CWMgVIE%&N zZbt|q0FY(b;c%EE^E|KX zIt;^yhli$V!Z7^){>B(rRpmI2=XsE(=^XEQ9sun3d&bx}j!G%lb-S+X`@Ss8sZLQbdCYPAwVz{|_aT(9+deSd#XDYe!%O;gu3=X@N;wr!&*0)VDz_WL~~ zNrExn?RJjiP)e0j)>?!R0F-69*=$y;)pol@2u;&e6vclAonKx8gt<@v0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf00(qQO+^Rd2ObAB z1G3UsT>t!Z~JkCwr$Zg4P3W_vOMBgRd8$vosNUL zuI1mrwvFVp7>|bdb8!jZ^I&>Wh^nf=VDi7^T8pJ0s=Cr5+qUuW!I|b*7O-5c(G7fr zT_47hH$3!vG4i}bB4~_d;7YTO<0u-&e6iF4MDY3BPn5@_Ja=HdfBUj^99xSxt&oDi z_mJgq$M>tc^qB!b#BBC*Qv)w6$K!!1|5^=3JFP^ponUZEXLYYcf zqhX>D>!wy}j3Drk^b;(WOE{tpouT-K#e{xqB^2^Onvv3UGL~dpDP&oJi_1%Ogy>>% z&+}Xuz944`=DLp9B#MYtjH~rVi=RAxqzLIsQIIm<-LuSyA6~XV>T$`j>rhCCc+t^yv6MBTpsf>wGqjRLHd%z@4TVL-G z%b7^nl!~8xr#{oW6a1acvnN2t`~J-ef)6VvWVQ6OgBy<4wJq%CPKm`5+dcwlTw!Fx8Fiu6v~;!bc4agVG$RM z%@y|#R=XKjiD{veMVlCxPNv}FUZf6Rqo0HajoeT^`LcJI9pKf_9^}YM;Jeu T(h(}Y00000NkvXXu0mjf+kZ%X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/tektite.png b/src/main/resources/assets/hbm/textures/blocks/tektite.png new file mode 100644 index 0000000000000000000000000000000000000000..c5394d5fa61ae622b73e6b3449183ab6802b39ac GIT binary patch literal 763 zcmVPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^Rd2ObAB1G3UsT>t3K&}JKDw}g%GrjW8JTqroh>%LkfvC8lyEKEC77^_X%S( zITw}~3Cn^p20e_PIRxb3(ONNwh1ym4X~v!!U7oLzQeupzt}99@gs||}{UfqpwFm^x zSz=6dZH-crrgm6sIO{u>7>OwYFpQq(-JZ6ovBn?|Uj~fP90$*b+xHBkM=M3nnR#B& zO0l`Tz#7BL{y@%!+F6Ft6H`L^IgoQ^iIMw+05Ogb)Y; z0RQb?SYqV6kGBkd!f4GL0x>4`ha)jY#BV?UP`akZ82!crKv))}6d0}Fw61M94kJ=Z z!m`kJE%JQ5LMh4L+fNvy8N8=$97b!DRCH}azv`$e%l>c#V6(YGAQ=6G_~X}~O4l|> zDcF5JuxcA(OmEmKB`Kv)3S7V2aKGIGPzoGJkGweRNhvXmp6jcxkW!LMMk&SqIPhf{ zPlm$X!gc}L&1^s5eQ4YjLKN;1!ZrgoH4 z&_W2NdB$kXdevc#W{DAN45Obo4jzE#mp$v#byEnWoN<*!&LL2{>XaJz=H_cEYdMad t${L!wqNyES^NM(kk+yayDLEVm{s-k0MZh7L$qN7g002ovPDHLkV1gC}Q4RnA literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids2.png b/src/main/resources/assets/hbm/textures/gui/fluids2.png index c210045faebb26c0d30e0142ad0cb855f81268b0..8ef1e58d5c7643519d07a4aec185998b7cb87582 100755 GIT binary patch delta 22830 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 Eg2-U7j{pDw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/crystal_osmiridium.png b/src/main/resources/assets/hbm/textures/items/crystal_osmiridium.png new file mode 100644 index 0000000000000000000000000000000000000000..3875e8649815374261710006c603f6b664e22d6e GIT binary patch literal 513 zcmV+c0{;DpP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jvP9 z2?+)bje^$z00DtXL_t(I%Z*b(O9DX{eY3l;8xdGh5E_b65u^l(A)P#W>Lzpyf(QaH z(KWhCmp}-`Um*R24jmKpt2uG7Z= zCPg$=1^`%n2c|umUw}`JM*{fj4Pf;h06@PX;;%8K{vWM zPaPt48unK3cz;EJyc>@MFm%S)53RE#TCm=-uoLhJW(v2^XqzmVf~v3wlQsWRK_QzV zp0^P4uR=GvOg6t#CDFYtFd@CyIEsOb}@bgvmjxaCp$3b`l0Pt4%M7h>vK1cvi$Y#jv z`-ecHF%LQpZz3DEkj)U>J-KWTK!|^zO+gm<&hzjCn3KyM8S_s!00000NkvXXu0mjf DfNjpN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_osmiridium.png b/src/main/resources/assets/hbm/textures/items/ingot_osmiridium.png new file mode 100644 index 0000000000000000000000000000000000000000..0195321e9e3d8c087fe10f4cb5d1234b2c934854 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgggE&&l8X6?su;y_bWJY5_^EKcv8 z?C5paL8R^fM&nMewTrrUt!SDd+%ch*`=soi&h(E0Rh{c%N*1cmP*Q2My5c3wmSm*) zc+r^|El0Rm?`Ku)dH=t?{@#S$zuj|!t#54lrz7xV9$$^W`R@|plyiE~{r6&GUp&8V zen~T+wN1TN=d%8jRW9qicJw@Y^JRmY)9pEZY`Yl}9;W?IxW85D$-|ef@qK-Q-BzPn>oT(^9qE1%qx@J8Xzrm zRw(<(;mTV6o(|3{2W(=tIIW$X;c~<&YP;Tw;;F}l{r>$muVcQL70(Y)*K0-AbW|YuPgggE&&lOHr~s;azLReo-U3d7N?UF zBv^ZPsC=?2|C64OkT5~uVe$&EZAmI88}^)&{olKFiR6~4u9EL;{~joKe$jePo54dP z$z?x(_uuFFv*!&@ZgKx#^;-;_f_4_aPk)c+v9J55Xv=f!ncQ!E-D9UeynOB7)@?rD z_{_@hs%N%voi$NT7)fkDRu(7 OkHOQ`&t;ucLK6TkC2G0= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_impure_osmiridium.png b/src/main/resources/assets/hbm/textures/items/powder_impure_osmiridium.png new file mode 100644 index 0000000000000000000000000000000000000000..350f953013328d17c8f03f02dda98d23211bfa5b GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgggE+I}qPI*msd7vpuo-U3d7N^fn z-ssnyAku2z!D*OqR4FmjdP*zbq>{pkg0+12PlzX_yh?In-+iHRmkCGMlm5g*oy$y? zO6{&VZvTBw^*h_=)8EO@w^*9ux2E3jL3Q5S>b%-D&)-N?SV=zU(QUBeP=0xxtLFS# z`FApNHo9&TyrDcvnK3tSNwiFCd48>M5|hDP9t{^)|Im(b z$+N$=m7BBgdw$JP!m~PVd*9Wm%rDpP-za%Ya>;xSDcAdfN7}Ar*i4TA1|Wl{tDnm{ Hr-UW|62PP= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_paleogenite.png b/src/main/resources/assets/hbm/textures/items/powder_paleogenite.png new file mode 100644 index 0000000000000000000000000000000000000000..369afc33edb7b5ee1df2ade0b503727b5e014bdf GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgggE+I}XBX$whg+QU}o-U3d7N_4% zIOuoSK)_{w_VIUGVlFFeKm33U~uu}6w(rij3!6EWrY-@G}nzwGIsofh?a z)z)eJX6KS`tA7&k>JtB&-2Bq$7S~Sx8IPF{EbIKqch1>CZa(MZALowb9ITYMzEzar z&~NTr7B@VKBL1&gyFglzKapkaf?nn29aH<7EtBS~Ke~$5rg7KAquiE94KJpYc-w9- zQ9arn^qIxWJmTfM1Z~;c3g(CdrU&mVnfBPm@@SQ5to^Hddze`hZU?`#kDvbb+`ky- jdZpX*PQ7o_u4SBfyheTcUiFxg#KqHG|NhIXzcKk3Fwow!8aEvh54b-E3+!nV~)%fz*H}OO4B6W_ z#qQ$qB}u#c=ibYY(Vtwyx@W@oog#Tm^h-Uor6X+lYPgg&ebxsLQ07gS$ AB>(^b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_tektite.png b/src/main/resources/assets/hbm/textures/items/powder_tektite.png new file mode 100644 index 0000000000000000000000000000000000000000..761971e50748da3b9c9c46951600e1316d52cd6f GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sDEfH31!Z9ZwBAbW|YuPgggE+I}nHm5TpAT$4Zx;TbdoZdRo zv8%;Ez;%D~O%`z{#{FqT^BgQ+#&7Qp^z7{Dx9;=kKgvLkK@`&-(UY<<>KVrkR1v&@J*wW(#RSZL_U`7BI(a;2xGR$8g-jBA{kdcXWisqDjj?;Txc zEaS|*t>!P=vhtjzi7)d~kxe?xf{xjLZ}FX*)}Gi9#1)mj=5?2eZ~pEM!5NWjw!YZK zcg|8{>7pCE*3Eb>nW!Fn{isG}L-(Qs7Jc@Ij?I|8dvw7D+&f;c=%l2yVwKmr=R3RRF3eX|$}f$arlj=a>&K~e3=jQ( Va4_tUc?Apz22WQ%mvv4FO#n_