mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
can't wait for the silly people on discord bug me 24/7 about this fuckin
g commit i swear to god this is why we can't have nice things
This commit is contained in:
parent
f953d69ee6
commit
be2c17f102
@ -132,6 +132,8 @@ public class ModBlocks {
|
||||
public static Block cluster_depth_iron;
|
||||
public static Block cluster_depth_titanium;
|
||||
public static Block cluster_depth_tungsten;
|
||||
|
||||
public static Block stone_keyhole;
|
||||
|
||||
public static Block stone_depth_nether;
|
||||
public static Block ore_depth_nether_neodymium;
|
||||
@ -303,6 +305,7 @@ public class ModBlocks {
|
||||
public static Block deco_emitter;
|
||||
public static Block part_emitter;
|
||||
public static Block deco_loot;
|
||||
public static Block pedestal;
|
||||
public static Block bobblehead;
|
||||
public static Block snowglobe;
|
||||
|
||||
@ -614,6 +617,7 @@ public class ModBlocks {
|
||||
public static Block door_metal;
|
||||
public static Block door_office;
|
||||
public static Block door_bunker;
|
||||
public static Block door_red;
|
||||
|
||||
public static Block barbed_wire;
|
||||
public static Block barbed_wire_fire;
|
||||
@ -1367,6 +1371,8 @@ public class ModBlocks {
|
||||
cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten");
|
||||
ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite");
|
||||
|
||||
stone_keyhole = new BlockKeyhole().setBlockName("stone_keyhole").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":stone_keyhole");
|
||||
|
||||
ore_random = new BlockMotherOfAllOres().setBlockName("ore_random").setCreativeTab(MainRegistry.blockTab);
|
||||
ore_bedrock = new BlockBedrockOreTE().setBlockName("ore_bedrock").setCreativeTab(null);
|
||||
ore_volcano = new BlockFissure().setBlockName("ore_volcano").setLightLevel(1F).setCreativeTab(MainRegistry.blockTab);
|
||||
@ -1543,6 +1549,7 @@ public class ModBlocks {
|
||||
deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter");
|
||||
part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top");
|
||||
deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top");
|
||||
bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron");
|
||||
hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat");
|
||||
@ -2154,6 +2161,7 @@ public class ModBlocks {
|
||||
door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal");
|
||||
door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office");
|
||||
door_bunker = new BlockModDoor(Material.iron).setBlockName("door_bunker").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_bunker");
|
||||
door_red = new BlockModDoor(Material.iron).setBlockName("door_red").setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":door_red");
|
||||
|
||||
barbed_wire = new BarbedWire(Material.iron).setBlockName("barbed_wire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_model");
|
||||
barbed_wire_fire = new BarbedWire(Material.iron).setBlockName("barbed_wire_fire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_fire_model");
|
||||
@ -2584,6 +2592,9 @@ public class ModBlocks {
|
||||
register(ore_bedrock);
|
||||
register(ore_volcano);
|
||||
|
||||
//Secret
|
||||
register(stone_keyhole);
|
||||
|
||||
//Crystals
|
||||
GameRegistry.registerBlock(crystal_power, crystal_power.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crystal_energy, crystal_energy.getUnlocalizedName());
|
||||
@ -2738,6 +2749,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName());
|
||||
@ -3079,6 +3091,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(door_red, door_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(large_vehicle_door, large_vehicle_door.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(qe_containment, qe_containment.getUnlocalizedName());
|
||||
|
||||
244
src/main/java/com/hbm/blocks/generic/BlockKeyhole.java
Normal file
244
src/main/java/com/hbm/blocks/generic/BlockKeyhole.java
Normal file
@ -0,0 +1,244 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
|
||||
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemModDoor;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.WeightedRandomObject;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.BlockStone;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.WeightedRandom;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockKeyhole extends BlockStone {
|
||||
|
||||
protected IIcon iconTop;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon("stone");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return side == 0 || side == 1 ? this.iconTop : this.blockIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) {
|
||||
return new ItemStack(Blocks.stone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.key_red && side != 0 && side != 1) {
|
||||
if(world.isRemote) return true;
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(side);
|
||||
generateRoom(world, x - dir.offsetX * 4, y - 2, z - dir.offsetZ * 4);
|
||||
int b = 0;
|
||||
if(side == 2) b = 1;
|
||||
if(side == 5) b = 2;
|
||||
if(side == 3) b = 3;
|
||||
if(side == 4) b = 0;
|
||||
ItemModDoor.placeDoorBlock(world, x, y - 1, z, b, ModBlocks.door_red);
|
||||
world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F);
|
||||
player.triggerAchievement(MainRegistry.achRedRoom);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected static void generateRoom(World world, int x, int y, int z) {
|
||||
|
||||
int size = 9;
|
||||
int height = 5;
|
||||
int width = size / 2;
|
||||
|
||||
//Outer Edges, top and bottom
|
||||
for(int i = -width; i <= width; i++) {
|
||||
world.setBlock(x + i, y, z + width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + i, y, z - width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + width, y, z + i, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x - width, y, z + i, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + i, y + height - 1, z + width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + i, y + height - 1, z - width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x - width, y + height - 1, z + i, ModBlocks.brick_red, 6, 3);
|
||||
}
|
||||
|
||||
for(int i = 1; i <= height - 2; i++) {
|
||||
//Outer edges, sides
|
||||
world.setBlock(x + width, y + i, z + width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x + width, y + i, z - width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x - width, y + i, z + width, ModBlocks.brick_red, 6, 3);
|
||||
world.setBlock(x - width, y + i, z - width, ModBlocks.brick_red, 6, 3);
|
||||
|
||||
//Walls
|
||||
for(int j = -width + 1; j <= width - 1; j++) {
|
||||
world.setBlock(x + width, y + i, z + j, ModBlocks.brick_red, 4, 3);
|
||||
world.setBlock(x - width, y + i, z + j, ModBlocks.brick_red, 5, 3);
|
||||
world.setBlock(x + j, y + i, z + width, ModBlocks.brick_red, 2, 3);
|
||||
world.setBlock(x + j, y + i, z - width, ModBlocks.brick_red, 3, 3);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = -width + 1; i <= width - 1; i++) {
|
||||
for(int j = -width + 1; j <= width - 1; j++) {
|
||||
//Floor and ceiling
|
||||
world.setBlock(x + i, y, z + j, ModBlocks.brick_red, 1, 3);
|
||||
world.setBlock(x + i, y + height - 1, z + j, ModBlocks.brick_red, 0, 3);
|
||||
|
||||
for(int k = 1; k <= height - 2; k++) {
|
||||
world.setBlock(x + i, y + k, z + j, Blocks.air);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Torches
|
||||
int torchDist = width - 1;
|
||||
int torchOff = torchDist - 1;
|
||||
world.setBlock(x + torchDist, y + 2, z + torchOff, Blocks.torch);
|
||||
world.setBlock(x + torchDist, y + 2, z - torchOff, Blocks.torch);
|
||||
world.setBlock(x - torchDist, y + 2, z + torchOff, Blocks.torch);
|
||||
world.setBlock(x - torchDist, y + 2, z - torchOff, Blocks.torch);
|
||||
world.setBlock(x + torchOff, y + 2, z + torchDist, Blocks.torch);
|
||||
world.setBlock(x - torchOff, y + 2, z + torchDist, Blocks.torch);
|
||||
world.setBlock(x + torchOff, y + 2, z - torchDist, Blocks.torch);
|
||||
world.setBlock(x - torchOff, y + 2, z - torchDist, Blocks.torch);
|
||||
|
||||
//Cobwebs
|
||||
if(world.rand.nextInt(4) == 0) {
|
||||
for(int i = -width + 1; i <= width - 1; i++) {
|
||||
for(int j = -width + 1; j <= width - 1; j++) {
|
||||
if(world.rand.nextBoolean()) world.setBlock(x + i, y + height - 2, z + j, Blocks.web);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Pillars
|
||||
if(world.rand.nextInt(4) == 0) {
|
||||
for(int i = 1; i <= height - 2; i++) {
|
||||
world.setBlock(x + width - 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3);
|
||||
world.setBlock(x + width - 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3);
|
||||
world.setBlock(x - width + 2, y + i, z + width - 2, ModBlocks.concrete_colored, 14, 3);
|
||||
world.setBlock(x - width + 2, y + i, z - width + 2, ModBlocks.concrete_colored, 14, 3);
|
||||
}
|
||||
}
|
||||
|
||||
//Fire
|
||||
if(world.rand.nextInt(4) == 0) {
|
||||
world.setBlock(x + width - 1, y, z + width - 1, Blocks.netherrack);
|
||||
world.setBlock(x + width - 1, y, z - width + 1, Blocks.netherrack);
|
||||
world.setBlock(x - width + 1, y, z + width - 1, Blocks.netherrack);
|
||||
world.setBlock(x - width + 1, y, z - width + 1, Blocks.netherrack);
|
||||
world.setBlock(x + width - 1, y + 1, z + width - 1, Blocks.fire);
|
||||
world.setBlock(x + width - 1, y + 1, z - width + 1, Blocks.fire);
|
||||
world.setBlock(x - width + 1, y + 1, z + width - 1, Blocks.fire);
|
||||
world.setBlock(x - width + 1, y + 1, z - width + 1, Blocks.fire);
|
||||
}
|
||||
|
||||
//Circle
|
||||
if(world.rand.nextInt(4) == 0) {
|
||||
for(int i = -1; i <= 1; i++) {
|
||||
for(int j = -1; j <= 1; j++) {
|
||||
if(i != 0 || j != 0) world.setBlock(x + i, y, z + j, ModBlocks.concrete_colored, 14, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Lava
|
||||
if(world.rand.nextInt(4) == 0) {
|
||||
world.setBlock(x + width - 2, y, z + width - 1, Blocks.lava);
|
||||
world.setBlock(x + width - 3, y, z + width - 1, Blocks.lava);
|
||||
world.setBlock(x - width + 2, y, z + width - 1, Blocks.lava);
|
||||
world.setBlock(x - width + 3, y, z + width - 1, Blocks.lava);
|
||||
world.setBlock(x + width - 2, y, z - width + 1, Blocks.lava);
|
||||
world.setBlock(x + width - 3, y, z - width + 1, Blocks.lava);
|
||||
world.setBlock(x - width + 2, y, z - width + 1, Blocks.lava);
|
||||
world.setBlock(x - width + 3, y, z - width + 1, Blocks.lava);
|
||||
world.setBlock(x + width - 1, y, z + width - 2, Blocks.lava);
|
||||
world.setBlock(x + width - 1, y, z + width - 3, Blocks.lava);
|
||||
world.setBlock(x + width - 1, y, z - width + 2, Blocks.lava);
|
||||
world.setBlock(x + width - 1, y, z - width + 3, Blocks.lava);
|
||||
world.setBlock(x - width + 1, y, z + width - 2, Blocks.lava);
|
||||
world.setBlock(x - width + 1, y, z + width - 3, Blocks.lava);
|
||||
world.setBlock(x - width + 1, y, z - width + 2, Blocks.lava);
|
||||
world.setBlock(x - width + 1, y, z - width + 3, Blocks.lava);
|
||||
}
|
||||
|
||||
int rand = world.rand.nextInt(20);
|
||||
|
||||
if(rand == 0) {
|
||||
world.setBlock(x, y + 1, z, ModBlocks.deco_loot);
|
||||
TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y + 1, z);
|
||||
loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0);
|
||||
loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0);
|
||||
loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0);
|
||||
loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0);
|
||||
} else {
|
||||
spawnPedestalItem(world, x, y + 1, z);
|
||||
}
|
||||
|
||||
//Clear dropped items
|
||||
List<EntityItem> items = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y + height, z + 0.5).expand(size / 2D, 0, size / 2D));
|
||||
for(EntityItem item : items) item.setDead();
|
||||
}
|
||||
|
||||
public static List<WeightedRandomObject> pedestalItems;
|
||||
|
||||
public static void spawnPedestalItem(World world, int x, int y, int z) {
|
||||
world.setBlock(x, y, z, ModBlocks.pedestal);
|
||||
TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z);
|
||||
if(pedestalItems == null) initPedestal();
|
||||
pedestal.item = ((WeightedRandomObject) WeightedRandom.getRandomItem(world.rand, pedestalItems)).asStack().copy();
|
||||
}
|
||||
|
||||
public static void initPedestal() {
|
||||
pedestalItems = new ArrayList();
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ballistic_gauntlet), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.night_vision), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.protection_charm), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.armor_polish), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.bandaid), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.serum), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.quartz_plutonium), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.morning_glory), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.lodestone), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.spider_milk), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.ink), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.heart_container), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.black_diamond), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5));
|
||||
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.gem_alexandrite), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.crackpipe), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.flask_infusion), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModBlocks.boxcar), 5));
|
||||
pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.book_of_), 5));
|
||||
}
|
||||
}
|
||||
@ -48,11 +48,6 @@ public class BlockLoot extends BlockContainer {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z) {
|
||||
super.onBlockAdded(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
|
||||
|
||||
@ -319,6 +319,8 @@ public class BlockModDoor extends Block {
|
||||
return ModItems.door_metal;
|
||||
else if (this == ModBlocks.door_office)
|
||||
return ModItems.door_office;
|
||||
else if (this == ModBlocks.door_red)
|
||||
return ModItems.door_red;
|
||||
else
|
||||
return ModItems.door_bunker;
|
||||
}
|
||||
@ -379,6 +381,8 @@ public class BlockModDoor extends Block {
|
||||
return ModItems.door_metal;
|
||||
else if (this == ModBlocks.door_office)
|
||||
return ModItems.door_office;
|
||||
else if (this == ModBlocks.door_red)
|
||||
return ModItems.door_red;
|
||||
else
|
||||
return ModItems.door_bunker;
|
||||
}
|
||||
|
||||
141
src/main/java/com/hbm/blocks/generic/BlockPedestal.java
Normal file
141
src/main/java/com/hbm/blocks/generic/BlockPedestal.java
Normal file
@ -0,0 +1,141 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
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.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPedestal extends BlockContainer {
|
||||
|
||||
protected IIcon iconSide;
|
||||
|
||||
public BlockPedestal() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityPedestal();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":pedestal_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return side == 0 || side == 1 ? this.blockIcon : this.iconSide;
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) return true;
|
||||
if(player.isSneaking()) return false;
|
||||
|
||||
TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z);
|
||||
|
||||
if(pedestal.item == null && player.getHeldItem() != null) {
|
||||
pedestal.item = player.getHeldItem().copy();
|
||||
player.inventory.mainInventory[player.inventory.currentItem] = null;
|
||||
pedestal.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
return true;
|
||||
} else if(pedestal.item != null && player.getHeldItem() == null) {
|
||||
player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy();
|
||||
pedestal.item = null;
|
||||
pedestal.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
TileEntityPedestal entity = (TileEntityPedestal) world.getTileEntity(x, y, z);
|
||||
if(entity != null && entity.item != null) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, entity.item.copy());
|
||||
world.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
|
||||
public static class TileEntityPedestal extends TileEntity {
|
||||
|
||||
public ItemStack item;
|
||||
|
||||
@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.item = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
if(this.item != null) {
|
||||
NBTTagCompound stack = new NBTTagCompound();
|
||||
this.item.writeToNBT(stack);
|
||||
nbt.setTag("item", stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2352,6 +2352,7 @@ public class ModItems {
|
||||
public static Item door_metal;
|
||||
public static Item door_office;
|
||||
public static Item door_bunker;
|
||||
public static Item door_red;
|
||||
|
||||
public static Item sliding_blast_door_skin;
|
||||
|
||||
@ -5409,6 +5410,7 @@ public class ModItems {
|
||||
door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal");
|
||||
door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office");
|
||||
door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker");
|
||||
door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red");
|
||||
|
||||
sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default");
|
||||
|
||||
@ -8058,6 +8060,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName());
|
||||
GameRegistry.registerItem(door_office, door_office.getUnlocalizedName());
|
||||
GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName());
|
||||
GameRegistry.registerItem(door_red, door_red.getUnlocalizedName());
|
||||
GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName());
|
||||
|
||||
//Records
|
||||
|
||||
@ -6,105 +6,82 @@ import com.hbm.items.ModItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemModDoor extends Item
|
||||
{
|
||||
public ItemModDoor()
|
||||
{
|
||||
this.maxStackSize = 1;
|
||||
this.setCreativeTab(CreativeTabs.tabRedstone);
|
||||
}
|
||||
public class ItemModDoor extends Item {
|
||||
|
||||
public ItemModDoor() {
|
||||
this.maxStackSize = 1;
|
||||
this.setCreativeTab(CreativeTabs.tabRedstone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
|
||||
* True if something happen and false if it don't. This is for ITEMS, not BLOCKS
|
||||
*/
|
||||
public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
|
||||
{
|
||||
if (p_77648_7_ != 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
++p_77648_5_;
|
||||
Block block;
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
|
||||
if(side != 1) {
|
||||
return false;
|
||||
} else {
|
||||
++y;
|
||||
|
||||
Block block = Blocks.air;
|
||||
|
||||
if(this == ModItems.door_metal)
|
||||
block = ModBlocks.door_metal;
|
||||
else if(this == ModItems.door_office)
|
||||
block = ModBlocks.door_office;
|
||||
else
|
||||
block = ModBlocks.door_bunker;
|
||||
if(this == ModItems.door_metal) block = ModBlocks.door_metal;
|
||||
if(this == ModItems.door_office) block = ModBlocks.door_office;
|
||||
if(this == ModItems.door_bunker) block = ModBlocks.door_bunker;
|
||||
if(this == ModItems.door_red) block = ModBlocks.door_red;
|
||||
|
||||
if (p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_) && p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_ + 1, p_77648_6_, p_77648_7_, p_77648_1_))
|
||||
{
|
||||
if (!block.canPlaceBlockAt(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
int i1 = MathHelper.floor_double((double)((p_77648_2_.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3;
|
||||
placeDoorBlock(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_, i1, block);
|
||||
--p_77648_1_.stackSize;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(player.canPlayerEdit(x, y, z, side, stack) && player.canPlayerEdit(x, y + 1, z, side, stack)) {
|
||||
if(!block.canPlaceBlockAt(world, x, y, z)) {
|
||||
return false;
|
||||
} else {
|
||||
int i1 = MathHelper.floor_double((double) ((player.rotationYaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3;
|
||||
placeDoorBlock(world, x, y, z, i1, block);
|
||||
--stack.stackSize;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void placeDoorBlock(World p_150924_0_, int p_150924_1_, int p_150924_2_, int p_150924_3_, int p_150924_4_, Block p_150924_5_)
|
||||
{
|
||||
byte b0 = 0;
|
||||
byte b1 = 0;
|
||||
public static void placeDoorBlock(World world, int x, int y, int z, int meta, Block door) {
|
||||
byte offsetX = 0;
|
||||
byte offsetZ = 0;
|
||||
|
||||
if (p_150924_4_ == 0)
|
||||
{
|
||||
b1 = 1;
|
||||
}
|
||||
if(meta == 0) {
|
||||
offsetZ = 1;
|
||||
}
|
||||
|
||||
if (p_150924_4_ == 1)
|
||||
{
|
||||
b0 = -1;
|
||||
}
|
||||
if(meta == 1) {
|
||||
offsetX = -1;
|
||||
}
|
||||
|
||||
if (p_150924_4_ == 2)
|
||||
{
|
||||
b1 = -1;
|
||||
}
|
||||
if(meta == 2) {
|
||||
offsetZ = -1;
|
||||
}
|
||||
|
||||
if (p_150924_4_ == 3)
|
||||
{
|
||||
b0 = 1;
|
||||
}
|
||||
if(meta == 3) {
|
||||
offsetX = 1;
|
||||
}
|
||||
|
||||
int i1 = (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1).isNormalCube() ? 1 : 0);
|
||||
int j1 = (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1).isNormalCube() ? 1 : 0) + (p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1).isNormalCube() ? 1 : 0);
|
||||
boolean flag = p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_, p_150924_3_ - b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ - b0, p_150924_2_ + 1, p_150924_3_ - b1) == p_150924_5_;
|
||||
boolean flag1 = p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_, p_150924_3_ + b1) == p_150924_5_ || p_150924_0_.getBlock(p_150924_1_ + b0, p_150924_2_ + 1, p_150924_3_ + b1) == p_150924_5_;
|
||||
boolean flag2 = false;
|
||||
int i1 = (world.getBlock(x - offsetX, y, z - offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x - offsetX, y + 1, z - offsetZ).isNormalCube() ? 1 : 0);
|
||||
int j1 = (world.getBlock(x + offsetX, y, z + offsetZ).isNormalCube() ? 1 : 0) + (world.getBlock(x + offsetX, y + 1, z + offsetZ).isNormalCube() ? 1 : 0);
|
||||
boolean flag = world.getBlock(x - offsetX, y, z - offsetZ) == door || world.getBlock(x - offsetX, y + 1, z - offsetZ) == door;
|
||||
boolean flag1 = world.getBlock(x + offsetX, y, z + offsetZ) == door || world.getBlock(x + offsetX, y + 1, z + offsetZ) == door;
|
||||
boolean flag2 = false;
|
||||
|
||||
if (flag && !flag1)
|
||||
{
|
||||
flag2 = true;
|
||||
}
|
||||
else if (j1 > i1)
|
||||
{
|
||||
flag2 = true;
|
||||
}
|
||||
if(flag && !flag1) {
|
||||
flag2 = true;
|
||||
} else if(j1 > i1) {
|
||||
flag2 = true;
|
||||
}
|
||||
|
||||
p_150924_0_.setBlock(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_, p_150924_4_, 2);
|
||||
p_150924_0_.setBlock(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_, 8 | (flag2 ? 1 : 0), 2);
|
||||
p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_, p_150924_3_, p_150924_5_);
|
||||
p_150924_0_.notifyBlocksOfNeighborChange(p_150924_1_, p_150924_2_ + 1, p_150924_3_, p_150924_5_);
|
||||
}
|
||||
world.setBlock(x, y, z, door, meta, 2);
|
||||
world.setBlock(x, y + 1, z, door, 8 | (flag2 ? 1 : 0), 2);
|
||||
world.notifyBlocksOfNeighborChange(x, y, z, door);
|
||||
world.notifyBlocksOfNeighborChange(x, y + 1, z, door);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
|
||||
import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
|
||||
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
|
||||
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
|
||||
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
||||
import com.hbm.blocks.machine.MachineFan.TileEntityFan;
|
||||
import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter;
|
||||
@ -171,6 +172,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDecoBlockAltF.class, new RenderDecoBlockAlt());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDemonLamp.class, new RenderDemonLamp());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter());
|
||||
@ -824,6 +826,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension());
|
||||
RenderingRegistry.registerBlockHandler(new RenderSplitter());
|
||||
RenderingRegistry.registerBlockHandler(new RenderCapacitor());
|
||||
RenderingRegistry.registerBlockHandler(new RenderPedestal());
|
||||
|
||||
RenderingRegistry.registerBlockHandler(new RenderFoundryBasin());
|
||||
RenderingRegistry.registerBlockHandler(new RenderFoundryMold());
|
||||
|
||||
@ -190,6 +190,7 @@ public class MainRegistry {
|
||||
public static Achievement achGoFish;
|
||||
public static Achievement achNo9;
|
||||
public static Achievement achInferno;
|
||||
public static Achievement achRedRoom;
|
||||
public static Achievement bobHidden;
|
||||
public static Achievement horizonsStart;
|
||||
public static Achievement horizonsEnd;
|
||||
@ -678,6 +679,7 @@ public class MainRegistry {
|
||||
achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat();
|
||||
achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat();
|
||||
achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat();
|
||||
achRedRoom = new Achievement("achievement.redRoom", "redRoom", -10, 10, ModItems.key_red, null).initIndependentStat().setSpecial().registerStat();
|
||||
|
||||
bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat();
|
||||
|
||||
@ -757,6 +759,7 @@ public class MainRegistry {
|
||||
achWitchtaunter,
|
||||
achNo9,
|
||||
achInferno,
|
||||
achRedRoom,
|
||||
achSlimeball,
|
||||
achSulfuric,
|
||||
bossCreeper,
|
||||
|
||||
68
src/main/java/com/hbm/render/block/RenderPedestal.java
Normal file
68
src/main/java/com/hbm/render/block/RenderPedestal.java
Normal file
@ -0,0 +1,68 @@
|
||||
package com.hbm.render.block;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.generic.BlockPedestal;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class RenderPedestal implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
tessellator.startDrawingQuads();
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
if(i == 0) renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0);
|
||||
if(i == 1) renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0);
|
||||
if(i == 2) renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875);
|
||||
tessellator.setNormal(0.0F, -1.0F, 0.0F);
|
||||
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
|
||||
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
||||
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
|
||||
tessellator.setNormal(0.0F, 0.0F, -1.0F);
|
||||
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
|
||||
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
||||
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
|
||||
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
|
||||
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
|
||||
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
||||
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
|
||||
}
|
||||
|
||||
tessellator.draw();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
||||
|
||||
renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 0.25, 1.0);
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
renderer.setRenderBounds(0.0, 0.75, 0.0, 1.0, 1.0, 1.0);
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
renderer.setRenderBounds(0.125, 0.25, 0.125, 0.875, 0.75, 0.875);
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRender3DInInventory(int modelId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderId() {
|
||||
return BlockPedestal.renderID;
|
||||
}
|
||||
}
|
||||
@ -5,13 +5,16 @@ import org.lwjgl.opengl.GL12;
|
||||
|
||||
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorTrenchmaster;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.model.ModelFatman;
|
||||
import com.hbm.render.model.ModelLeverAction;
|
||||
import com.hbm.util.Tuple.Quartet;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.ItemRenderer;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
@ -48,6 +51,8 @@ public class RenderLoot extends TileEntitySpecialRenderer {
|
||||
} else if(stack.getItem() == ModItems.gun_lever_action) {
|
||||
renderShotgun();
|
||||
|
||||
} else if(stack.getItem() instanceof ArmorTrenchmaster) {
|
||||
renderTrenchmaster(stack);
|
||||
} else {
|
||||
renderStandardItem(item.getW());
|
||||
}
|
||||
@ -58,6 +63,57 @@ public class RenderLoot extends TileEntitySpecialRenderer {
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void renderTrenchmaster(ItemStack stack) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0.5, 1.5, 0.5);
|
||||
GL11.glScaled(0.0625, 0.0625, 0.0625);
|
||||
GL11.glRotated(180, 1, 0, 0);
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
if(stack.getItem() == ModItems.trenchmaster_helmet) {
|
||||
bindTexture(ResourceManager.trenchmaster_helmet);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
ResourceManager.armor_trenchmaster.renderPart("Helmet");
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
float lastX = OpenGlHelper.lastBrightnessX;
|
||||
float lastY = OpenGlHelper.lastBrightnessY;
|
||||
GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
|
||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
ResourceManager.armor_trenchmaster.renderPart("Light");
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glPopAttrib();
|
||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY);
|
||||
}
|
||||
if(stack.getItem() == ModItems.trenchmaster_plate) {
|
||||
bindTexture(ResourceManager.trenchmaster_chest);
|
||||
ResourceManager.armor_trenchmaster.renderPart("Chest");
|
||||
bindTexture(ResourceManager.trenchmaster_arm);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(-3, 1, 0, 0);
|
||||
ResourceManager.armor_trenchmaster.renderPart("LeftArm");
|
||||
ResourceManager.armor_trenchmaster.renderPart("RightArm");
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(stack.getItem() == ModItems.trenchmaster_legs) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg);
|
||||
ResourceManager.armor_trenchmaster.renderPart("LeftLeg");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(-0.1, 1, 0, 0);
|
||||
ResourceManager.armor_trenchmaster.renderPart("RightLeg");
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(stack.getItem() == ModItems.trenchmaster_boots) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg);
|
||||
ResourceManager.armor_trenchmaster.renderPart("LeftBoot");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(-0.1, 1, 0, 0);
|
||||
ResourceManager.armor_trenchmaster.renderPart("RightBoot");
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private void renderNuke() {
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glTranslated(1, 0.5, 1);
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderPedestalTile extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y + 1, z + 0.5);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
|
||||
TileEntityPedestal pedestal = (TileEntityPedestal) te;
|
||||
|
||||
if(pedestal.item != null) {
|
||||
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
ItemStack stack = pedestal.item.copy();
|
||||
GL11.glScaled(1.5, 1.5, 1.5);
|
||||
|
||||
if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) {
|
||||
GL11.glTranslated(0, 0.125, 0);
|
||||
GL11.glRotatef(player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp + 180, 0.0F, -1.0F, 0.0F);
|
||||
|
||||
if(!RenderManager.instance.options.fancyGraphics) {
|
||||
GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
|
||||
}
|
||||
|
||||
GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625, 0);
|
||||
} else {
|
||||
GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625 + 0.0625, 0);
|
||||
}
|
||||
|
||||
EntityItem dummy = new EntityItem(te.getWorldObj(), 0, 0, 0, stack);
|
||||
dummy.hoverStart = 0.0F;
|
||||
|
||||
RenderItem.renderInFrame = true;
|
||||
RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
|
||||
RenderItem.renderInFrame = false;
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -12,6 +12,7 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
|
||||
import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner;
|
||||
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
|
||||
import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre;
|
||||
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
|
||||
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
||||
import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter;
|
||||
import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR;
|
||||
@ -205,6 +206,7 @@ public class TileMappings {
|
||||
put(TileEntityCustomMachine.class, "tileentity_custom_machine");
|
||||
|
||||
put(TileEntityLoot.class, "tileentity_ntm_loot");
|
||||
put(TileEntityPedestal.class, "tileentity_ntm_pedestal");
|
||||
put(TileEntityBobble.class, "tileentity_ntm_bobblehead");
|
||||
put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe");
|
||||
put(TileEntityEmitter.class, "tileentity_ntm_emitter");
|
||||
|
||||
@ -66,6 +66,8 @@ achievement.radium.desc=SIE SIND GEFEUERT WEIL SIE RADIUM IN MEINEN KAFFEE GESCH
|
||||
achievement.radium=MISTER UNGLAUBLICH
|
||||
achievement.radPoison.desc=Leide an Strahlenkrankheit.
|
||||
achievement.radPoison=Yay, Strahlung!
|
||||
achievement.redRoom.desc=?
|
||||
achievement.redRoom=Die andere Seite
|
||||
achievement.sacrifice.desc=Sterbe im Feuer, aber irgendwie auch nicht.
|
||||
achievement.sacrifice=Sororizid
|
||||
achievement.selenium.desc=Lange nicht gesehen!
|
||||
@ -1705,6 +1707,7 @@ item.dnt_plate.name=dineutrom brustplatte
|
||||
item.door_bunker.name=Bunkertür
|
||||
item.door_metal.name=Metalltür
|
||||
item.door_office.name=Bürotür
|
||||
item.door_red.name=Rote Tür
|
||||
item.dosimeter.name=Dosimeter
|
||||
item.drax.name=Terra-Bohrer
|
||||
item.drax_mk2.name=Gehärteter Terra-Bohrer
|
||||
@ -3893,6 +3896,7 @@ tile.drone_waypoint_request.name=Logistikdronen-Wegpunkt
|
||||
tile.door_bunker.name=Bunkertür
|
||||
tile.door_metal.name=Metalltür
|
||||
tile.door_office.name=Bürotür
|
||||
tile.door_red.name=Rote Tür
|
||||
tile.ducrete.name=Ducretefliese
|
||||
tile.ducrete_stairs.name=Ducretefliesentreppe
|
||||
tile.ducrete_smooth.name=Ducrete
|
||||
@ -4312,6 +4316,7 @@ tile.ore_uranium_scorched.name=Verschmortes Uranerz
|
||||
tile.ore_verticium.name=Dollargrünes Mineral
|
||||
tile.ore_volcano.name=Thermale Fissur
|
||||
tile.ore_weidanium.name=Weidit
|
||||
tile.pedestal.name=Podest
|
||||
tile.pink_barrel.name=Kerosinfass
|
||||
tile.pink_log.name=Pinkes Holz
|
||||
tile.pink_planks.name=Pinke Holzbretter
|
||||
@ -4479,6 +4484,7 @@ tile.stone_cracked.name=Rissiger Stein
|
||||
tile.stone_depth.name=Tiefenfels
|
||||
tile.stone_depth_nether.name=Nether-Tiefenfels
|
||||
tile.stone_gneiss.name=Graphitschiefer
|
||||
tile.stone_keyhole.name=Seltsamer Stein
|
||||
tile.stone_porous.name=Poröser Stein
|
||||
tile.stone_resource.asbestos.name=Chrysotil
|
||||
tile.stone_resource.bauxite.name=Bauxit
|
||||
|
||||
@ -94,6 +94,8 @@ achievement.RBMK.desc=He's delusional, get him to the infirmary.
|
||||
achievement.RBMK=3.6 Roentegen?
|
||||
achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war."
|
||||
achievement.redBalloons=99 Red Balloons
|
||||
achievement.redRoom.desc=?
|
||||
achievement.redRoom=The Other Side
|
||||
achievement.sacrifice.desc=Face the fire and live.
|
||||
achievement.sacrifice=Sororicide
|
||||
achievement.schrab.desc=Regardless, I wouldn't look at it for too long.
|
||||
@ -2405,6 +2407,7 @@ item.dnt_plate.name=dineutrom chestplate
|
||||
item.door_bunker.name=Bunker Door
|
||||
item.door_metal.name=Metal Door
|
||||
item.door_office.name=Office Door
|
||||
item.door_red.name=Red Door
|
||||
item.dosimeter.name=Dosimeter
|
||||
item.drax.name=Terra Drill
|
||||
item.drax_mk2.name=Hardened Terra Drill
|
||||
@ -4884,6 +4887,7 @@ tile.drone_waypoint_request.name=Logistics Drone Waypoint
|
||||
tile.door_bunker.name=Bunker Door
|
||||
tile.door_metal.name=Metal Door
|
||||
tile.door_office.name=Office Door
|
||||
tile.door_red.name=Red Door
|
||||
tile.ducrete.name=Ducrete Tile
|
||||
tile.ducrete_stairs.name=Ducrete Tile Stairs
|
||||
tile.ducrete_smooth.name=Ducrete
|
||||
@ -5311,6 +5315,7 @@ tile.ore_verticium.name=Dollar Green Mineral
|
||||
tile.ore_volcano.name=Geothermal Vent
|
||||
tile.ore_weidanium.name=Weidite
|
||||
tile.part_emitter.name=Deco Particle Emitter
|
||||
tile.pedestal.name=Pedestal
|
||||
tile.pink_barrel.name=Kerosene Barrel
|
||||
tile.pink_log.name=Pink Log
|
||||
tile.pink_planks.name=Pink Wood Planks
|
||||
@ -5482,6 +5487,7 @@ tile.stone_cracked.name=Cracked Stone
|
||||
tile.stone_depth.name=Depth Rock
|
||||
tile.stone_depth_nether.name=Nether Depth Rock
|
||||
tile.stone_gneiss.name=Graphitic Schist
|
||||
tile.stone_keyhole.name=Strange Stone
|
||||
tile.stone_porous.name=Porous Stone
|
||||
tile.stone_resource.asbestos.name=Chrysotile
|
||||
tile.stone_resource.bauxite.name=Bauxite
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/door_red_lower.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/door_red_lower.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 179 B |
BIN
src/main/resources/assets/hbm/textures/blocks/door_red_upper.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/door_red_upper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 155 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pedestal_side.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/pedestal_side.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 252 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pedestal_top.png
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/pedestal_top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 233 B |
BIN
src/main/resources/assets/hbm/textures/items/door_red.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/door_red.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 243 B |
Loading…
x
Reference in New Issue
Block a user