finished dynamic barrels, more textues

This commit is contained in:
HbmMods 2020-04-09 19:57:09 +02:00
parent f11ea407f1
commit 79a08930d9
48 changed files with 830 additions and 111 deletions

View File

@ -469,6 +469,13 @@ container.reactorSmall=Atomreaktor
tile.machine_controller.name=Reaktorfernsteuerung
container.reactorControl=Reaktorfernsteuerung
tile.barrel_plastic.name=Sicheres Fass™
tile.barrel_corroded.name=Verrostetes Fass
tile.barrel_iron.name=Eisenfass
tile.barrel_steel.name=Stahlfass
tile.barrel_antimatter.name=Magnetischer Antimaterie-Behälter
container.barrel=Fass
tile.broadcaster_pc.name=Korrupter Sender
tile.radiobox.name=Rosenberg Ungeziefervernichter

View File

@ -469,6 +469,13 @@ container.reactorSmall=Nuclear Reactor
tile.machine_controller.name=Reactor Remote Control Block
container.reactorControl=Reactor Remote Control Block
tile.barrel_plastic.name=Safe Barrel™
tile.barrel_corroded.name=Corroded Barrel
tile.barrel_iron.name=Iron Barrel
tile.barrel_steel.name=Steel Barrel
tile.barrel_antimatter.name=Magnetic Antimatter Container
container.barrel=Barrel
tile.broadcaster_pc.name=Corrupted Broadcaster
tile.radiobox.name=Rosenberg Pest Control Box

View File

@ -0,0 +1,147 @@
# Blender v2.76 (sub 0) OBJ File: 'antenna_top.blend'
# www.blender.org
o Cube_Cube.001
v -0.375000 0.000000 0.375000
v -0.375000 0.500000 0.375000
v -0.375000 0.000000 -0.375000
v -0.375000 0.500000 -0.375000
v 0.375000 0.000000 0.375000
v 0.375000 0.500000 0.375000
v 0.375000 0.000000 -0.375000
v 0.375000 0.500000 -0.375000
v -0.250000 1.250000 -0.250000
v -0.250000 1.250000 -0.500000
v -0.500000 1.250000 -0.500000
v -0.500000 1.250000 -0.250000
v -0.500000 0.250000 -0.250000
v -0.500000 0.250000 -0.500000
v -0.250000 0.250000 -0.250000
v -0.250000 0.250000 -0.500000
v -0.125000 0.500000 -0.125000
v 0.125000 0.500000 -0.125000
v -0.125000 0.500000 0.125000
v 0.125000 0.500000 0.125000
v 0.125000 0.625000 -0.125000
v 0.125000 0.625000 0.125000
v -0.125000 0.625000 -0.125000
v -0.125000 0.625000 0.125000
v -0.250000 1.250000 0.500000
v -0.250000 1.250000 0.250000
v -0.500000 1.250000 0.250000
v -0.500000 1.250000 0.500000
v -0.500000 0.250000 0.500000
v -0.500000 0.250000 0.250000
v -0.250000 0.250000 0.500000
v -0.250000 0.250000 0.250000
v 0.500000 1.250000 -0.250000
v 0.500000 1.250000 -0.500000
v 0.250000 1.250000 -0.500000
v 0.250000 1.250000 -0.250000
v 0.250000 0.250000 -0.250000
v 0.250000 0.250000 -0.500000
v 0.500000 0.250000 -0.250000
v 0.500000 0.250000 -0.500000
v 0.500000 1.250000 0.500000
v 0.500000 1.250000 0.250000
v 0.250000 1.250000 0.250000
v 0.250000 1.250000 0.500000
v 0.250000 0.250000 0.500000
v 0.250000 0.250000 0.250000
v 0.500000 0.250000 0.500000
v 0.500000 0.250000 0.250000
vt 0.600000 0.000000
vt 0.600000 0.400000
vt -0.000000 0.400000
vt 0.000122 0.000122
vt 0.600000 1.000000
vt 0.000000 1.000000
vt 0.800000 0.000000
vt 0.800000 0.800000
vt 0.600000 0.800000
vt 0.600000 0.600000
vt 0.800000 0.100000
vt 0.999906 0.000094
vt 1.000000 0.000000
vt 0.800000 0.600000
vt 1.000000 0.300000
vt 0.800000 0.300000
vt -0.000000 -0.000000
vt 0.000100 0.999900
vt 1.000000 0.100000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
s off
f 4/1/1 3/2/1 1/3/1
f 8/1/2 7/2/2 3/3/2
f 6/3/3 5/4/3 7/1/3
f 2/3/4 1/4/4 5/1/4
f 3/3/5 7/2/5 5/5/5
f 8/5/6 4/6/6 2/3/6
f 13/7/1 12/8/1 11/9/1
f 16/7/3 10/8/3 9/9/3
f 14/7/2 11/8/2 10/9/2
f 15/7/4 9/8/4 12/9/4
f 10/8/6 11/9/6 12/10/6
f 22/11/3 20/7/3 18/12/3
f 23/11/1 17/7/1 19/13/1
f 24/11/4 19/7/4 20/12/4
f 21/11/2 18/7/2 17/13/2
f 13/10/5 14/14/5 16/8/5
f 21/15/6 23/16/6 24/11/6
f 29/7/1 28/8/1 27/9/1
f 32/7/3 26/8/3 25/9/3
f 30/7/2 27/8/2 26/9/2
f 31/7/4 25/8/4 28/9/4
f 26/8/6 27/9/6 28/10/6
f 29/10/5 30/14/5 32/8/5
f 37/7/1 36/8/1 35/9/1
f 40/7/3 34/8/3 33/9/3
f 38/7/2 35/8/2 34/9/2
f 39/7/4 33/8/4 36/9/4
f 34/8/6 35/9/6 36/10/6
f 37/10/5 38/14/5 40/8/5
f 45/7/1 44/8/1 43/9/1
f 48/7/3 42/8/3 41/9/3
f 46/7/2 43/8/2 42/9/2
f 47/7/4 41/8/4 44/9/4
f 42/8/6 43/9/6 44/10/6
f 45/10/5 46/14/5 48/8/5
f 2/17/1 4/1/1 1/3/1
f 4/17/2 8/1/2 3/3/2
f 8/2/3 6/3/3 7/1/3
f 6/2/4 2/3/4 5/1/4
f 1/18/5 3/3/5 5/5/5
f 6/2/6 8/5/6 2/3/6
f 14/1/1 13/7/1 11/9/1
f 15/1/3 16/7/3 9/9/3
f 16/1/2 14/7/2 10/9/2
f 13/1/4 15/7/4 12/9/4
f 9/14/6 10/8/6 12/10/6
f 21/19/3 22/11/3 18/12/3
f 24/19/1 23/11/1 19/13/1
f 22/19/4 24/11/4 20/12/4
f 23/19/2 21/11/2 17/13/2
f 15/9/5 13/10/5 16/8/5
f 22/19/6 21/15/6 24/11/6
f 30/1/1 29/7/1 27/9/1
f 31/1/3 32/7/3 25/9/3
f 32/1/2 30/7/2 26/9/2
f 29/1/4 31/7/4 28/9/4
f 25/14/6 26/8/6 28/10/6
f 31/9/5 29/10/5 32/8/5
f 38/1/1 37/7/1 35/9/1
f 39/1/3 40/7/3 33/9/3
f 40/1/2 38/7/2 34/9/2
f 37/1/4 39/7/4 36/9/4
f 33/14/6 34/8/6 36/10/6
f 39/9/5 37/10/5 40/8/5
f 46/1/1 45/7/1 43/9/1
f 47/1/3 48/7/3 41/9/3
f 48/1/2 46/7/2 42/9/2
f 45/1/4 47/7/4 44/9/4
f 41/14/6 42/8/6 44/10/6
f 47/9/5 45/10/5 48/8/5

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 B

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 340 B

View File

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -401,7 +401,7 @@ public class ModBlocks {
public static Block barrel_iron;
public static Block barrel_steel;
public static Block barrel_antimatter;
public static final int guiID_barrel = 18;
public static final int guiID_barrel = 92;
public static Block machine_transformer;
public static Block machine_transformer_20;

View File

@ -1,29 +1,17 @@
package com.hbm.blocks.generic;
import com.hbm.tileentity.deco.TileEntityDecoPoleTop;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class DecoPoleTop extends BlockContainer {
public class DecoPoleTop extends Block {
public DecoPoleTop(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityDecoPoleTop();
}
@Override
public int getRenderType(){
return -1;
return 334084;
}
@Override
@ -35,27 +23,5 @@ public class DecoPoleTop extends BlockContainer {
public boolean renderAsNormalBlock() {
return false;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0)
{
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
}
if(i == 1)
{
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}
if(i == 2)
{
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}
if(i == 3)
{
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
}
}

View File

@ -17,6 +17,8 @@ import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockFluidBarrel extends BlockContainer {
@ -61,6 +63,20 @@ public class BlockFluidBarrel extends BlockContainer {
return false;
}
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
{
float f = 0.0625F;
this.setBlockBounds(2*f, 0.0F, 2*f, 14*f, 1.0F, 14*f);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
float f = 0.0625F;
this.setBlockBounds(2*f, 0.0F, 2*f, 14*f, 1.0F, 14*f);
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
private final Random field_149933_a = new Random();
private Random rand;

View File

@ -9,8 +9,6 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;
public class EntityGrenadePulse extends EntityGrenadeBouncyBase {
private static final String __OBFID = "CL_00001722";
public EntityGrenadePulse(World p_i1773_1_) {
super(p_i1773_1_);

View File

@ -152,7 +152,9 @@ public class ExplosionChaos {
int Z = zz + z;
int ZZ = YY + zz * zz;
if (ZZ < r22) {
pDestruction(world, X, Y, Z);
if(world.getBlock(X, Y, Z).getExplosionResistance(null) <= 70)
pDestruction(world, X, Y, Z);
}
}
}

View File

@ -2,64 +2,66 @@ package com.hbm.handler;
import java.util.Arrays;
import com.hbm.render.util.EnumSymbol;
public class FluidTypeHandler {
public enum FluidType {
NONE (0x888888, 0, 1, 1, "hbmfluid.none"),
NONE (0x888888, 0, 1, 1, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.none"),
WATER (0x3333FF, 1, 1, 1, "hbmfluid.water"),
STEAM (0xe5e5e5, 9, 2, 1, "hbmfluid.steam", true, false, false),
HOTSTEAM (0xE7D6D6, 1, 1, 2, "hbmfluid.hotsteam", true, false, false),
SUPERHOTSTEAM (0xE7B7B7, 2, 1, 2, "hbmfluid.superhotsteam", true, false, false),
COOLANT (0xd8fcff, 2, 1, 1, "hbmfluid.coolant"),
WATER (0x3333FF, 1, 1, 1, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.water"),
STEAM (0xe5e5e5, 9, 2, 1, 3, 0, 0, EnumSymbol.NONE, "hbmfluid.steam", true, false, false),
HOTSTEAM (0xE7D6D6, 1, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.hotsteam", true, false, false),
SUPERHOTSTEAM (0xE7B7B7, 2, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.superhotsteam", true, false, false),
COOLANT (0xd8fcff, 2, 1, 1, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.coolant"),
LAVA (0xFF3300, 3, 1, 1, "hbmfluid.lava", true, false, false),
LAVA (0xFF3300, 3, 1, 1, 4, 0, 0, EnumSymbol.NOWATER, "hbmfluid.lava", true, false, false),
DEUTERIUM (0x0000FF, 4, 1, 1, "hbmfluid.deuterium"),
TRITIUM (0x000099, 5, 1, 1, "hbmfluid.tritium"),
DEUTERIUM (0x0000FF, 4, 1, 1, 3, 4, 0, EnumSymbol.NONE, "hbmfluid.deuterium"),
TRITIUM (0x000099, 5, 1, 1, 3, 4, 0, EnumSymbol.RADIATION, "hbmfluid.tritium"),
OIL (0x020202, 6, 1, 1, "hbmfluid.oil"),
HOTOIL (0x300900, 8, 2, 1, "hbmfluid.hotoil", true, false, false),
OIL (0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.oil"),
HOTOIL (0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", true, false, false),
HEAVYOIL (0x141312, 2, 2, 1, "hbmfluid.heavyoil"),
BITUMEN (0x1f2426, 3, 2, 1, "hbmfluid.bitumen"),
SMEAR (0x190f01, 7, 1, 1, "hbmfluid.smear"),
HEATINGOIL (0x211806, 4, 2, 1, "hbmfluid.heatingoil"),
HEAVYOIL (0x141312, 2, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.heavyoil"),
BITUMEN (0x1f2426, 3, 2, 1, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.bitumen"),
SMEAR (0x190f01, 7, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.smear"),
HEATINGOIL (0x211806, 4, 2, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.heatingoil"),
RECLAIMED (0x332b22, 8, 1, 1, "hbmfluid.reclaimed"),
PETROIL (0x44413d, 9, 1, 1, "hbmfluid.petroil"),
RECLAIMED (0x332b22, 8, 1, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.reclaimed"),
PETROIL (0x44413d, 9, 1, 1, 1, 3, 0, EnumSymbol.NONE, "hbmfluid.petroil"),
LUBRICANT (0x606060, 10, 1, 1, "hbmfluid.lubricant"),
LUBRICANT (0x606060, 10, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.lubricant"),
NAPHTHA (0x595744, 5, 2, 1, "hbmfluid.naphtha"),
DIESEL (0xf2eed5, 11, 1, 1, "hbmfluid.diesel"),
NAPHTHA (0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha"),
DIESEL (0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel"),
LIGHTOIL (0x8c7451, 6, 2, 1, "hbmfluid.lightoil"),
KEROSENE (0xffa5d2, 12, 1, 1, "hbmfluid.kerosene"),
LIGHTOIL (0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil"),
KEROSENE (0xffa5d2, 12, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.kerosene"),
GAS (0xfffeed, 13, 1, 1, "hbmfluid.gas"),
PETROLEUM (0x7cb7c9, 7, 2, 1, "hbmfluid.petroleum"),
GAS (0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.gas"),
PETROLEUM (0x7cb7c9, 7, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.petroleum"),
BIOGAS (0xbfd37c, 12, 2, 1, "hbmfluid.biogas"),
BIOFUEL (0xeef274, 13, 2, 1, "hbmfluid.biofuel"),
BIOGAS (0xbfd37c, 12, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.biogas"),
BIOFUEL (0xeef274, 13, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.biofuel"),
NITAN (0x8018ad, 15, 2, 1, "hbmfluid.nitan"),
NITAN (0x8018ad, 15, 2, 1, 2, 4, 1, EnumSymbol.NONE, "hbmfluid.nitan"),
UF6 (0xD1CEBE, 14, 1, 1, "hbmfluid.uf6", false, true, false),
PUF6 (0x4C4C4C, 15, 1, 1, "hbmfluid.puf6", false, true, false),
SAS3 (0x4ffffc, 14, 2, 1, "hbmfluid.sas3", false, true, false),
UF6 (0xD1CEBE, 14, 1, 1, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", false, true, false),
PUF6 (0x4C4C4C, 15, 1, 1, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", false, true, false),
SAS3 (0x4ffffc, 14, 2, 1, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", false, true, false),
AMAT (0x010101, 0, 2, 1, "hbmfluid.amat", false, false, true),
ASCHRAB (0xb50000, 1, 2, 1, "hbmfluid.aschrab", false, false, true),
AMAT (0x010101, 0, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.amat", false, false, true),
ASCHRAB (0xb50000, 1, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.aschrab", false, false, true),
ACID (0xfff7aa, 10, 2, 1, "hbmfluid.acid", false, true, false),
WATZ (0x86653E, 11, 2, 1, "hbmfluid.watz", false, true, false),
CRYOGEL (0x32ffff, 0, 1, 2, "hbmfluid.cryogel"),
ACID (0xfff7aa, 10, 2, 1, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", false, true, false),
WATZ (0x86653E, 11, 2, 1, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", false, true, false),
CRYOGEL (0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel"),
HYDROGEN (0x4286f4, 3, 1, 2, "hbmfluid.hydrogen"),
OXYGEN (0x98bdf9, 4, 1, 2, "hbmfluid.oxygen"),
XENON (0xba45e8, 5, 1, 2, "hbmfluid.xenon"),
BALEFIRE (0x28e02e, 6, 1, 2, "hbmfluid.balefire", true, true, false);
HYDROGEN (0x4286f4, 3, 1, 2, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen"),
OXYGEN (0x98bdf9, 4, 1, 2, 3, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.oxygen"),
XENON (0xba45e8, 5, 1, 2, 0, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.xenon"),
BALEFIRE (0x28e02e, 6, 1, 2, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", true, true, false);
//Approximate HEX Color of the fluid, used for pipe rendering
@ -79,20 +81,33 @@ public class FluidTypeHandler {
//Whether the fluid is antimatter and requires magnetic storage
private boolean antimatter;
private FluidType(int color, int x, int y, int sheet, String name) {
public int poison;
public int flammability;
public int reactivity;
public EnumSymbol symbol;
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name) {
this.color = color;
this.textureX = x;
this.textureY = y;
this.name = name;
this.sheetID = sheet;
this.poison = p;
this.flammability = f;
this.reactivity = r;
this.symbol = symbol;
}
private FluidType(int color, int x, int y, int sheet, String name, boolean hot, boolean corrosive, boolean antimatter) {
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, boolean hot, boolean corrosive, boolean antimatter) {
this.color = color;
this.textureX = x;
this.textureY = y;
this.name = name;
this.sheetID = sheet;
this.poison = p;
this.flammability = f;
this.reactivity = r;
this.symbol = symbol;
this.hot = hot;
this.corrosive = corrosive;
this.antimatter = antimatter;

View File

@ -822,6 +822,15 @@ public class GUIHandler implements IGuiHandler {
}
return null;
}
case ModBlocks.guiID_barrel:
{
if(entity instanceof TileEntityBarrel)
{
return new ContainerBarrel(player.inventory, (TileEntityBarrel) entity);
}
return null;
}
}
} else {
//NON-TE CONTAINERS
@ -1643,6 +1652,15 @@ public class GUIHandler implements IGuiHandler {
}
return null;
}
case ModBlocks.guiID_barrel:
{
if(entity instanceof TileEntityBarrel)
{
return new GUIBarrel(player.inventory, (TileEntityBarrel) entity);
}
return null;
}
}
} else {
//CLIENTONLY GUIS

View File

@ -0,0 +1,87 @@
package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityBarrel;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerBarrel extends Container {
private TileEntityBarrel diFurnace;
private int power;
public ContainerBarrel(InventoryPlayer invPlayer, TileEntityBarrel tedf) {
power = 0;
diFurnace = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 8, 17));
this.addSlotToContainer(new Slot(tedf, 1, 8, 53));
this.addSlotToContainer(new Slot(tedf, 2, 53 - 18, 17));
this.addSlotToContainer(new Slot(tedf, 3, 53 - 18, 53));
this.addSlotToContainer(new Slot(tedf, 4, 125, 17));
this.addSlotToContainer(new Slot(tedf, 5, 125, 53));
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
}
}
for(int i = 0; i < 9; i++)
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
}
}
@Override
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if (par2 <= 5) {
if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true))
{
return null;
}
}
else if (!this.mergeItemStack(var5, 0, 6, false))
{
return null;
}
if (var5.stackSize == 0)
{
var4.putStack((ItemStack) null);
}
else
{
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return diFurnace.isUseableByPlayer(player);
}
}

View File

@ -6,6 +6,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerCoreEmitter extends Container {
@ -33,4 +34,18 @@ public class ContainerCoreEmitter extends Container {
public boolean canInteractWith(EntityPlayer player) {
return nukeBoy.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
return null;
}
return var3;
}
}

View File

@ -6,6 +6,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerCoreReceiver extends Container {
@ -33,4 +34,18 @@ public class ContainerCoreReceiver extends Container {
public boolean canInteractWith(EntityPlayer player) {
return te.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
return null;
}
return var3;
}
}

View File

@ -0,0 +1,70 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerBarrel;
import com.hbm.lib.RefStrings;
import com.hbm.packet.AuxButtonPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.machine.TileEntityBarrel;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIBarrel extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_barrel.png");
private TileEntityBarrel tank;
public GUIBarrel(InventoryPlayer invPlayer, TileEntityBarrel tedf) {
super(new ContainerBarrel(invPlayer, tedf));
tank = tedf;
this.xSize = 176;
this.ySize = 166;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 71, guiTop + 69 - 52, 34, 52);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 35 < y && guiTop + 35 + 18 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(tank.xCoord, tank.yCoord, tank.zCoord, 0, 0));
}
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = tank.mode;
drawTexturedModalRect(guiLeft + 151, guiTop + 34, 176, i * 18, 18, 18);
Minecraft.getMinecraft().getTextureManager().bindTexture(tank.tank.getSheet());
tank.tank.renderTank(this, guiLeft + 71, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 16, 52);
tank.tank.renderTank(this, guiLeft + 71 + 16, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 16, 52);
tank.tank.renderTank(this, guiLeft + 71 + 32, guiTop + 69, tank.tank.getTankType().textureX() * FluidTank.x, tank.tank.getTankType().textureY() * FluidTank.y, 2, 52);
}
}

View File

@ -19,20 +19,33 @@ public class ItemBlockLore extends ItemBlock {
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(this.field_150939_a instanceof RedBarrel)
if(this.field_150939_a instanceof RedBarrel) {
list.add("Static fluid barrel");
}
if(this.field_150939_a == ModBlocks.barrel_plastic)
if(this.field_150939_a == ModBlocks.barrel_plastic) {
list.add("Cannot store hot fluids");
list.add("Cannot store corrosive fluids");
list.add("Cannot store antimatter");
}
if(this.field_150939_a == ModBlocks.barrel_iron)
list.add("Will leak when corrosive fluids are stored");
if(this.field_150939_a == ModBlocks.barrel_iron) {
list.add("Can store hot fluids");
list.add("Cannot store corrosive fluids properly");
list.add("Cannot store antimatter");
}
if(this.field_150939_a == ModBlocks.barrel_steel)
list.add("Can hold corrosive fluids");
if(this.field_150939_a == ModBlocks.barrel_steel) {
list.add("Can store hot fluids");
list.add("Can store corrosive fluids");
list.add("Cannot store antimatter");
}
if(this.field_150939_a == ModBlocks.barrel_antimatter)
if(this.field_150939_a == ModBlocks.barrel_antimatter) {
list.add("Can store hot fluids");
list.add("Can store corrosive fluids");
list.add("Can store antimatter");
}
}
}

View File

@ -60,6 +60,7 @@ public class ClientProxy extends ServerProxy
RenderingRegistry.registerBlockHandler(new RenderBarrel());
RenderingRegistry.registerBlockHandler(new RenderFence());
RenderingRegistry.registerBlockHandler(new RenderBarbedWire());
RenderingRegistry.registerBlockHandler(new RenderAntennaTop());
MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate());
MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate());
@ -79,7 +80,6 @@ public class ClientProxy extends ServerProxy
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityObjTester.class, new RendererObjTester());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget());
//MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.nuke_gadget), new ItemRenderNukeGadget());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeCustom.class, new RenderNukeCustom());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium());
@ -131,6 +131,7 @@ public class ClientProxy extends ServerProxy
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorSmall.class, new RenderSmallReactor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVaultDoor.class, new RenderVaultDoor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor());

View File

@ -612,11 +612,12 @@ public class ResourceManager {
public static final ResourceLocation mp_w_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/warheads/mp_w_15_balefire.png");
//ISBRHs
public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/scaffold.obj"));
public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/taperecorder.obj"));
public static final IModelCustom beam = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/beam.obj"));
public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/barrel.obj"));
public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pole.obj"));
public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj"));
public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj"));
public static final IModelCustom beam = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/beam.obj"));
public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barrel.obj"));
public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pole.obj"));
public static final IModelCustom barbed_wire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barbed_wire.obj"));
public static final IModelCustom antenna_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/antenna_top.obj"));
}

View File

@ -3,6 +3,7 @@ package com.hbm.packet;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.items.weapon.ItemMissile.PartSize;
import com.hbm.tileentity.bomb.TileEntityLaunchTable;
import com.hbm.tileentity.machine.TileEntityBarrel;
import com.hbm.tileentity.machine.TileEntityCoreEmitter;
import com.hbm.tileentity.machine.TileEntityCoreStabilizer;
import com.hbm.tileentity.machine.TileEntityForceField;
@ -226,6 +227,13 @@ public class AuxButtonPacket implements IMessage {
}
}
if (te instanceof TileEntityBarrel) {
TileEntityBarrel barrel = (TileEntityBarrel)te;
barrel.mode = (short) ((barrel.mode + 1) % barrel.modes);
barrel.markDirty();
}
//} catch (Exception x) { }
return null;

View File

@ -0,0 +1,70 @@
package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
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.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.obj.WavefrontObject;
public class RenderAntennaTop implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
GL11.glPushMatrix();
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, 0);
tessellator.setColorOpaque_F(1, 1, 1);
if (renderer.hasOverrideBlockTexture())
{
iicon = renderer.overrideBlockTexture;
}
GL11.glTranslated(0, -0.5, 0);
GL11.glScalef(0.75F, 0.75F, 0.75F);
tessellator.startDrawingQuads();
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, false);
tessellator.draw();
GL11.glPopMatrix();
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z));
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
tessellator.setColorOpaque_F(1, 1, 1);
if (renderer.hasOverrideBlockTexture())
{
iicon = renderer.overrideBlockTexture;
}
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.antenna_top, iicon, tessellator, 0, true);
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return 334084;
}
}

View File

@ -20,12 +20,10 @@ public class RenderFence implements ISimpleBlockRenderingHandler {
BlockFence fence = (BlockFence) ModBlocks.fence_metal;
boolean flag = false;
float f = 0.375F;
float f1 = 0.625F;
renderer.setRenderBounds((double)f, 0.0D, (double)f, (double)f1, 1.0D, (double)f1);
renderer.renderStandardBlock(fence, x, y, z);
flag = true;
boolean flag1 = false;
boolean flag2 = false;
@ -61,24 +59,22 @@ public class RenderFence implements ISimpleBlockRenderingHandler {
{
renderer.setRenderBounds((double)f4, (double)0, (double)0.5, (double)f5, (double)1, (double)0.5);
renderer.renderStandardBlock(fence, x, y, z);
flag = true;
}
if (flag2)
{
renderer.setRenderBounds((double)0.5, (double)0, (double)f6, (double)0.5, (double)1, (double)f7);
renderer.renderStandardBlock(fence, x, y, z);
flag = true;
}
renderer.field_152631_f = false;
fence.setBlockBoundsBasedOnState(world, x, y, z);
return flag;
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return false;
return true;
}
@Override

View File

@ -0,0 +1,46 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.render.util.DiamondPronter;
import com.hbm.render.util.EnumSymbol;
import com.hbm.tileentity.machine.TileEntityBarrel;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderFluidBarrel extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
if(te instanceof TileEntityBarrel) {
TileEntityBarrel barrel = (TileEntityBarrel)te;
FluidType type = barrel.tank.getTankType();
int poison = type.poison;
int flammability = type.flammability;
int reactivity = type.reactivity;
EnumSymbol symbol = type.symbol;
for(int j = 0; j < 4; j++) {
GL11.glPushMatrix();
GL11.glTranslated(0.4, 0.25, -0.15);
GL11.glScalef(1.0F, 0.35F, 0.35F);
DiamondPronter.pront(poison, flammability, reactivity, symbol);
GL11.glPopMatrix();
GL11.glRotatef(90, 0, 1, 0);
}
}
GL11.glPopMatrix();
}
}

View File

@ -3,14 +3,12 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.render.util.BeamPronter;
import com.hbm.render.util.BeamPronter.EnumBeamType;
import com.hbm.render.util.BeamPronter.EnumWaveType;
import com.hbm.render.util.DiamondPronter;
import com.hbm.render.util.EnumSymbol;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
@ -32,7 +30,8 @@ public class RendererObjTester extends TileEntitySpecialRenderer {
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
{
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y, z + 0.5);
GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
GL11.glEnable(GL11.GL_LIGHTING);
/*switch(tileEntity.getBlockMetadata())
{
case 5:
@ -108,10 +107,12 @@ public class RendererObjTester extends TileEntitySpecialRenderer {
//SoyuzPronter.prontSoyuz();
//TomPronter.prontTom();
BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F);
BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F);
//BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F);
//BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F);
//BeamPronter.prontHelix(Vec3.createVectorHelper(0, 5, 0), 0.5, 0.5, 0.5, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25 + 180, 25, 0.25F);
DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER);
GL11.glPopMatrix();
}

View File

@ -0,0 +1,115 @@
package com.hbm.render.util;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.ResourceLocation;
public class DiamondPronter {
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/danger_diamond.png");
public static void pront(int poison, int flammability, int reactivity, EnumSymbol symbol) {
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
float p = 1F/256F;
float s = 1F/139F;
Tessellator tess = Tessellator.instance;
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
tess.startDrawingQuads();
tess.addVertexWithUV(0.0, 0.5, -0.5, p * 144, p * 45);
tess.addVertexWithUV(0.0, 0.5, 0.5, p * 5, p * 45);
tess.addVertexWithUV(0.0, -0.5, 0.5, p * 5, p * 184);
tess.addVertexWithUV(0.0, -0.5, -0.5, p * 144, p * 184);
tess.draw();
float width = 10F * s;
float height = 14F * s;
if(poison >= 0 && poison < 6) {
float oY = 0;
float oZ = 33 * s;
int x = 5 + (poison - 1) * 24;
int y = 5;
if(poison == 0) x = 125;
tess.startDrawingQuads();
tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p);
tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p);
tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p);
tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p);
tess.draw();
}
if(flammability >= 0 && flammability < 6) {
float oY = 33 * s;
float oZ = 0;
int x = 5 + (flammability - 1) * 24;
int y = 5;
if(flammability == 0) x = 125;
tess.startDrawingQuads();
tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p);
tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p);
tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p);
tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p);
tess.draw();
}
if(reactivity >= 0 && reactivity < 6) {
float oY = 0;
float oZ = -33 * s;
int x = 5 + (reactivity - 1) * 24;
int y = 5;
if(reactivity == 0) x = 125;
tess.startDrawingQuads();
tess.addVertexWithUV(0.01, height + oY, -width + oZ, (x + 20) * p, y * p);
tess.addVertexWithUV(0.01, height + oY, width + oZ, x * p, y * p);
tess.addVertexWithUV(0.01, -height + oY, width + oZ, x * p, (y + 28) * p);
tess.addVertexWithUV(0.01, -height + oY, -width + oZ, (x + 20) * p, (y + 28) * p);
tess.draw();
}
float symSize = 59F/2F * s;
if(symbol != EnumSymbol.NONE) {
float oY = -33 * s;
float oZ = 0;
int x = symbol.x;
int y = symbol.y;
tess.startDrawingQuads();
tess.addVertexWithUV(0.01, symSize + oY, -symSize + oZ, (x + 59) * p, y * p);
tess.addVertexWithUV(0.01, symSize + oY, symSize + oZ, x * p, y * p);
tess.addVertexWithUV(0.01, -symSize + oY, symSize + oZ, x * p, (y + 59) * p);
tess.addVertexWithUV(0.01, -symSize + oY, -symSize + oZ, (x + 59) * p, (y + 59) * p);
tess.draw();
}
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,20 @@
package com.hbm.render.util;
public enum EnumSymbol {
NONE(0, 0),
RADIATION(195, 2),
NOWATER(195, 63),
ACID(195, 124),
ASPHYXIANT(195, 185),
CROYGENIC(134, 185),
ANTIMATTER(73, 185),
OXIDIZER(12, 185);
public int x;
public int y;
private EnumSymbol(int x, int y) {
this.x = x;
this.y = y;
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
@ -10,13 +11,23 @@ import com.hbm.inventory.FluidTank;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource {
public FluidTank tank;
public int mode = 0;
public short mode = 0;
public static final short modes = 4;
public int age = 0;
public List<IFluidAcceptor> list = new ArrayList();
public TileEntityBarrel() {
super(6);
tank = new FluidTank(FluidType.NONE, 0, 0);
}
public TileEntityBarrel(int capacity) {
super(6);
tank = new FluidTank(FluidType.NONE, capacity, 0);
@ -33,9 +44,62 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
if(!worldObj.isRemote) {
tank.setType(0, 1, slots);
tank.loadTank(2, 3, slots);
tank.unloadTank(4, 5, slots);
tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
age++;
if(age >= 20)
age = 0;
if((mode == 1 || mode == 2) && (age == 9 || age == 19))
fillFluidInit(tank.getTankType());
if(tank.getFill() > 0) {
Block b = this.getBlockType();
if(b != ModBlocks.barrel_antimatter && tank.getTankType().isAntimatter()) {
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
}
if(b == ModBlocks.barrel_plastic && (tank.getTankType().isCorrosive() || tank.getTankType().isHot())) {
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
}
//TODO: rip off furnace code and make transition more seamless
if(b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) {
ItemStack[] copy = this.slots.clone();
this.slots = new ItemStack[6];
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded);
TileEntityBarrel barrel = (TileEntityBarrel)worldObj.getTileEntity(xCoord, yCoord, zCoord);
if(barrel != null) {
barrel.tank.setTankType(tank.getTankType());
barrel.tank.setFill(Math.min(barrel.tank.getMaxFill(), tank.getFill()));
barrel.slots = copy;
}
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
}
if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) {
tank.setFill(tank.getFill() - 1);
}
}
NBTTagCompound data = new NBTTagCompound();
data.setShort("mode", mode);
this.networkPack(data, 50);
}
}
public void networkUnpack(NBTTagCompound data) {
mode = data.getShort("mode");
}
@Override
public void setFillstate(int fill, int index) {
@ -49,6 +113,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
@Override
public int getMaxFluidFill(FluidType type) {
if(mode == 2 || mode == 3)
return 0;
return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0;
}
@ -74,6 +142,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
@Override
public int getFluidFill(FluidType type) {
return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0;
}
@ -100,4 +169,20 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
return list;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
mode = nbt.getShort("mode");
tank.readFromNBT(nbt, "tank");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setShort("mode", mode);
tank.writeToNBT(nbt, "tank");
}
}

View File

@ -48,8 +48,8 @@ public class TileEntityMachineReactorSmall extends TileEntity
public FluidTank[] tanks;
private static final int[] slots_top = new int[] { 0 };
private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16 };
private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 };
private static final int[] slots_bottom = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15 };
private static final int[] slots_side = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 };
private String customName;