mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
flash! bam! alakazam!
This commit is contained in:
parent
2a9ee72cc4
commit
9cf673206a
@ -2,6 +2,10 @@
|
||||
* More axes
|
||||
* Bismuth, volcanic, chlorophyte and mese tool materials now have axes
|
||||
* Axes also double as offensive weapons, being a lot more powerful than their pickaxe counterparts
|
||||
* Drainage pipe
|
||||
* Spills fluid, allowing to void up to 1.000mB per tick
|
||||
* Might slightly alter the landscape, depending on whether the fluid was poisonous
|
||||
* Viscous, flammable liquids cause oil spill blocks to appear
|
||||
|
||||
## Changed
|
||||
* After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end.
|
||||
@ -29,3 +33,5 @@
|
||||
* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise
|
||||
* Fixed smokestacks being able to void any fluid under certain conditions
|
||||
* Fixed the hydrotreater only using half as much crude oil per operation as it should
|
||||
* Fixed the old launchpad printing the wrong message when successfully launched via detonator
|
||||
* Oil spills should no longer save, fixing an issue where chunkloaded derricks would constantly spill oil entities into unloaded chunks, causing them to get stuck
|
||||
|
||||
@ -806,6 +806,7 @@ public class ModBlocks {
|
||||
public static Block fluid_duct_exhaust;
|
||||
public static Block fluid_valve;
|
||||
public static Block fluid_switch;
|
||||
public static Block machine_drain;
|
||||
public static Block radio_torch_sender;
|
||||
public static Block radio_torch_receiver;
|
||||
public static Block radio_torch_counter;
|
||||
@ -952,7 +953,6 @@ public class ModBlocks {
|
||||
public static Block dfc_core;
|
||||
|
||||
public static Block machine_converter_he_rf;
|
||||
public static final int guiID_converter_he_rf = 28;
|
||||
public static Block machine_converter_rf_he;
|
||||
|
||||
public static Block machine_schrabidium_transmutator;
|
||||
@ -1972,6 +1972,7 @@ public class ModBlocks {
|
||||
fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
machine_drain = new MachineDrain(Material.iron).setBlockName("machine_drain").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete");
|
||||
radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter");
|
||||
@ -3262,6 +3263,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName());
|
||||
register(fluid_valve);
|
||||
register(fluid_switch);
|
||||
register(machine_drain);
|
||||
register(radio_torch_sender);
|
||||
register(radio_torch_receiver);
|
||||
register(radio_torch_counter);
|
||||
|
||||
@ -101,6 +101,8 @@ public class BlockLayering extends Block {
|
||||
|
||||
public boolean isReplaceable(IBlockAccess world, int x, int y, int z) {
|
||||
if(this == ModBlocks.leaves_layer) return true;
|
||||
if(this == ModBlocks.oil_spill) return true;
|
||||
if(this == ModBlocks.foam_layer) return true;
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
return meta >= 7 ? false : blockMaterial.isReplaceable();
|
||||
}
|
||||
|
||||
86
src/main/java/com/hbm/blocks/machine/MachineDrain.java
Normal file
86
src/main/java/com/hbm/blocks/machine/MachineDrain.java
Normal file
@ -0,0 +1,86 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineDrain;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.ChatStyle;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
|
||||
public class MachineDrain extends BlockDummyable implements ILookOverlay {
|
||||
|
||||
public MachineDrain(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityMachineDrain();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {0, 0, 2, 0, 0, 0};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@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 && !player.isSneaking()) {
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return false;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(!(te instanceof TileEntityMachineDrain)) return false;
|
||||
|
||||
TileEntityMachineDrain drain = (TileEntityMachineDrain) te;
|
||||
|
||||
FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem());
|
||||
drain.tank.setTankType(type);
|
||||
drain.markDirty();
|
||||
player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!")));
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(!(te instanceof TileEntityMachineDrain)) return;
|
||||
|
||||
TileEntityMachineDrain drain = (TileEntityMachineDrain) te;
|
||||
List<String> text = new ArrayList();
|
||||
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + drain.tank.getTankType().getLocalizedName() + ": " + drain.tank.getFill() + "/" + drain.tank.getMaxFill() + "mB");
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.tileentity.conductor.TileEntityRFDuct;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRFCable extends BlockContainer {
|
||||
|
||||
public BlockRFCable(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
float p = 1F/16F;
|
||||
this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2);
|
||||
this.useNeighborBrightness = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) {
|
||||
TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z);
|
||||
|
||||
if(cable != null)
|
||||
{
|
||||
float p = 1F/16F;
|
||||
float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0);
|
||||
float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0);
|
||||
float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0);
|
||||
float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0);
|
||||
float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0);
|
||||
float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0);
|
||||
|
||||
this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ);
|
||||
}
|
||||
}
|
||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) {
|
||||
TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z);
|
||||
|
||||
if(cable != null)
|
||||
{
|
||||
float p = 1F/16F;
|
||||
float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0);
|
||||
float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0);
|
||||
float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0);
|
||||
float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0);
|
||||
float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0);
|
||||
float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0);
|
||||
|
||||
this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityRFDuct(10000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -3,47 +3,54 @@ package com.hbm.entity.projectile;
|
||||
import com.hbm.entity.particle.EntityOilSpillFX;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.projectile.EntityThrowable;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityOilSpill extends EntityThrowable {
|
||||
|
||||
public EntityOilSpill(World p_i1773_1_)
|
||||
{
|
||||
super(p_i1773_1_);
|
||||
}
|
||||
public EntityOilSpill(World p_i1773_1_) {
|
||||
super(p_i1773_1_);
|
||||
}
|
||||
|
||||
public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_)
|
||||
{
|
||||
super(p_i1774_1_, p_i1774_2_);
|
||||
}
|
||||
public EntityOilSpill(World p_i1774_1_, EntityLivingBase p_i1774_2_) {
|
||||
super(p_i1774_1_, p_i1774_2_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void entityInit() {
|
||||
}
|
||||
@Override
|
||||
public void entityInit() { }
|
||||
|
||||
public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_)
|
||||
{
|
||||
super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
super.onUpdate();
|
||||
if(!worldObj.isRemote) {
|
||||
worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
|
||||
if(this.isBurning()) {
|
||||
this.setDead();
|
||||
worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
public EntityOilSpill(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) {
|
||||
super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition p_70184_1_)
|
||||
{
|
||||
if(this.ticksExisted > 5) {
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
super.onUpdate();
|
||||
if(!worldObj.isRemote) {
|
||||
worldObj.spawnEntityInWorld(new EntityOilSpillFX(worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
|
||||
if(this.isBurning()) {
|
||||
this.setDead();
|
||||
worldObj.createExplosion(null, posX, posY, posZ, 1.5F, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition p_70184_1_) {
|
||||
if(this.ticksExisted > 5) {
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean writeToNBTOptional(NBTTagCompound nbt) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
super.readEntityFromNBT(nbt);
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
@ -202,7 +202,11 @@ public class Fluids {
|
||||
/* Original baseline for leaded fuels */
|
||||
public static final float LEAD_FUEL = PollutionHandler.HEAVY_METAL_PER_SECOND * 0.025F;
|
||||
/* Poison stat for most petrochemicals */
|
||||
public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.025F;
|
||||
public static final float POISON_OIL = PollutionHandler.POISON_PER_SECOND * 0.0025F;
|
||||
/* Poison stat for horrible chemicals like red mud or phosgene */
|
||||
public static final float POISON_EXTREME = PollutionHandler.POISON_PER_SECOND * 0.025F;
|
||||
/* Poison stat for mostly inert things like carbon dioxide */
|
||||
public static final float POISON_MINOR = PollutionHandler.POISON_PER_SECOND * 0.001F;
|
||||
|
||||
public static final FT_Polluting P_OIL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_UNREFINED_OIL).release(PollutionType.POISON, POISON_OIL);
|
||||
public static final FT_Polluting P_FUEL = new FT_Polluting().burn(PollutionType.SOOT, SOOT_REFINED_OIL).release(PollutionType.POISON, POISON_OIL);
|
||||
@ -261,7 +265,7 @@ public class Fluids {
|
||||
AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
|
||||
ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
|
||||
ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID);
|
||||
WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS);
|
||||
WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME));
|
||||
CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS);
|
||||
HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP);
|
||||
OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP);
|
||||
@ -280,7 +284,7 @@ public class Fluids {
|
||||
PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_XM = new FluidType("PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(NOCON, NOID, PLASMA);
|
||||
PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA);
|
||||
CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
|
||||
CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_MINOR));
|
||||
PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA);
|
||||
HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
|
||||
DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS);
|
||||
@ -307,7 +311,7 @@ public class Fluids {
|
||||
WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS, P_OIL);
|
||||
COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS, P_OIL);
|
||||
SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS);
|
||||
NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60));
|
||||
NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME));
|
||||
SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30));
|
||||
BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, DELICIOUS);
|
||||
BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number
|
||||
@ -326,8 +330,8 @@ public class Fluids {
|
||||
KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL).addContainers(new CD_Canister(0xFF377D));
|
||||
REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS, P_GAS);
|
||||
COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
|
||||
PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS);
|
||||
MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS);
|
||||
PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME));
|
||||
MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME));
|
||||
IONGEL = new FluidType("IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
|
||||
OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL);
|
||||
NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL);
|
||||
@ -338,7 +342,7 @@ public class Fluids {
|
||||
FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL);
|
||||
SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, P_FUEL);
|
||||
NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||
REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000));
|
||||
REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000), new FT_Polluting().release(PollutionType.POISON, POISON_EXTREME));
|
||||
CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60));
|
||||
CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60));
|
||||
CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60));
|
||||
@ -355,7 +359,7 @@ public class Fluids {
|
||||
THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
|
||||
THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
|
||||
THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, VISCOUS, new FT_Corrosive(65));
|
||||
FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65));
|
||||
FULLERENE = new FluidType("FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65), new FT_Polluting().release(PollutionType.POISON, POISON_MINOR));
|
||||
PHEROMONE = new FluidType("PHEROMONE", 0x5FA6E8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(1));
|
||||
PHEROMONE_M = new FluidType("PHEROMONE_M", 0x48C9B0 , 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Pheromone(2));
|
||||
OIL_DS = new FluidType("OIL_DS", 0x121212, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(LIQUID, VISCOUS, P_OIL);
|
||||
|
||||
@ -274,6 +274,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCompressor.class, new RenderCompressor());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDrain.class, new RenderDrain());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron());
|
||||
@ -337,7 +338,6 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule());
|
||||
//network
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRFDuct.class, new RenderRFCable());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge());
|
||||
@ -1764,6 +1764,20 @@ public class ClientProxy extends ServerProxy {
|
||||
}
|
||||
}
|
||||
|
||||
if("splash".equals(type)) {
|
||||
if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean())) {
|
||||
ParticleSplash fx = new ParticleSplash(man, world, x, y, z);
|
||||
|
||||
if(data.hasKey("color")) {
|
||||
Color color = new Color(data.getInteger("color"));
|
||||
float f = 1F - rand.nextFloat() * 0.2F;
|
||||
fx.setRBGColorF(color.getRed() / 255F * f, color.getGreen() / 255F * f, color.getBlue() / 255F * f);
|
||||
}
|
||||
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(fx);
|
||||
}
|
||||
}
|
||||
|
||||
if("deadleaf".equals(type)) {
|
||||
if(particleSetting == 0 || (particleSetting == 1 && rand.nextBoolean()))
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z));
|
||||
|
||||
@ -1056,6 +1056,8 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModItems.mold_base), new Object[] { " B ", "BIB", " B ", 'B', ModItems.ingot_firebrick, 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.brick_fire), new Object[] { "BB", "BB", 'B', ModItems.ingot_firebrick });
|
||||
addShapelessAuto(new ItemStack(ModItems.ingot_firebrick, 4), new Object[] { ModBlocks.brick_fire });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.machine_drain), new Object[] { "PPP", "T ", "PPP", 'P', STEEL.plateCast(), 'T', ModItems.tank_steel });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.filing_cabinet, 1, DecoCabinetEnum.STEEL.ordinal()), new Object[] { " P ", "PIP", " P ", 'P', STEEL.plate(), 'I', ModItems.plate_polymer });
|
||||
|
||||
|
||||
@ -1251,6 +1251,7 @@ public class ModEventHandlerClient {
|
||||
|
||||
public static IIcon particleBase;
|
||||
public static IIcon particleLeaf;
|
||||
public static IIcon particleSplash;
|
||||
|
||||
@SubscribeEvent
|
||||
public void onTextureStitch(TextureStitchEvent.Pre event) {
|
||||
@ -1258,6 +1259,7 @@ public class ModEventHandlerClient {
|
||||
if(event.map.getTextureType() == 0) {
|
||||
particleBase = event.map.registerIcon(RefStrings.MODID + ":particle/particle_base");
|
||||
particleLeaf = event.map.registerIcon(RefStrings.MODID + ":particle/dead_leaf");
|
||||
particleSplash = event.map.registerIcon(RefStrings.MODID + ":particle/particle_splash");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -301,6 +301,9 @@ public class ResourceManager {
|
||||
public static final IModelCustom solar_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solar_boiler.obj"));
|
||||
public static final IModelCustom solar_mirror = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/solar_mirror.obj"));
|
||||
|
||||
//Drain
|
||||
public static final IModelCustom drain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/drain.obj"));
|
||||
|
||||
//Vault Door
|
||||
public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj"));
|
||||
public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj"));
|
||||
@ -738,6 +741,9 @@ public class ResourceManager {
|
||||
public static final ResourceLocation solar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_boiler.png");
|
||||
public static final ResourceLocation solar_mirror_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solar_mirror.png");
|
||||
|
||||
//Drain
|
||||
public static final ResourceLocation drain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drain.png");
|
||||
|
||||
//Blast Door
|
||||
public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_base.png");
|
||||
public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_tooth.png");
|
||||
|
||||
68
src/main/java/com/hbm/particle/ParticleSplash.java
Normal file
68
src/main/java/com/hbm/particle/ParticleSplash.java
Normal file
@ -0,0 +1,68 @@
|
||||
package com.hbm.particle;
|
||||
|
||||
import com.hbm.main.ModEventHandlerClient;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ParticleSplash extends EntityFX {
|
||||
|
||||
public ParticleSplash(TextureManager texman, World world, double x, double y, double z) {
|
||||
super(world, x, y, z);
|
||||
particleIcon = ModEventHandlerClient.particleSplash;
|
||||
this.particleRed = this.particleGreen = this.particleBlue = 1F - world.rand.nextFloat() * 0.2F;
|
||||
this.particleAlpha = 0.5F;
|
||||
this.particleScale = 0.4F;
|
||||
this.particleMaxAge = 200 + world.rand.nextInt(50);
|
||||
this.particleGravity = 0.4F;
|
||||
}
|
||||
|
||||
public int getFXLayer() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public void onUpdate() {
|
||||
super.onUpdate();
|
||||
|
||||
if(!this.onGround) {
|
||||
this.motionX += rand.nextGaussian() * 0.002D;
|
||||
this.motionZ += rand.nextGaussian() * 0.002D;
|
||||
|
||||
if(this.motionY < -0.5D)
|
||||
this.motionY = -0.5D;
|
||||
} else {
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderParticle(Tessellator tess, float interp, float fX, float fY, float fZ, float sX, float sZ) {
|
||||
|
||||
tess.setNormal(0.0F, 1.0F, 0.0F);
|
||||
|
||||
tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha);
|
||||
|
||||
float scale = this.particleScale;
|
||||
float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX);
|
||||
float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY);
|
||||
float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ);
|
||||
|
||||
boolean flipU = this.getEntityId() % 2 == 0;
|
||||
boolean flipV = this.getEntityId() % 4 < 2;
|
||||
|
||||
double minU = flipU ? particleIcon.getMaxU() : particleIcon.getMinU();
|
||||
double maxU = flipU ? particleIcon.getMinU() : particleIcon.getMaxU();
|
||||
double minV = flipV ? particleIcon.getMaxV() : particleIcon.getMinV();
|
||||
double maxV = flipV ? particleIcon.getMinV() : particleIcon.getMaxV();
|
||||
|
||||
tess.addVertexWithUV((double) (pX - fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ - fZ * scale - sZ * scale), maxU, maxV);
|
||||
tess.addVertexWithUV((double) (pX - fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ - fZ * scale + sZ * scale), maxU, minV);
|
||||
tess.addVertexWithUV((double) (pX + fX * scale + sX * scale), (double) (pY + fY * scale), (double) (pZ + fZ * scale + sZ * scale), minU, minV);
|
||||
tess.addVertexWithUV((double) (pX + fX * scale - sX * scale), (double) (pY - fY * scale), (double) (pZ + fZ * scale - sZ * scale), minU, maxV);
|
||||
}
|
||||
}
|
||||
58
src/main/java/com/hbm/render/tileentity/RenderDrain.java
Normal file
58
src/main/java/com/hbm/render/tileentity/RenderDrain.java
Normal file
@ -0,0 +1,58 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderDrain extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(te.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.drain_tex);
|
||||
ResourceManager.drain.renderAll();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.machine_drain);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(-1, -1, 0);
|
||||
GL11.glScaled(5, 5, 5);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glRotatef(180, 0F, 1F, 0F);
|
||||
GL11.glTranslated(0.75, 0, 0);
|
||||
bindTexture(ResourceManager.drain_tex); ResourceManager.drain.renderAll();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -1,159 +0,0 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.conductor.TileEntityRFDuct;
|
||||
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class RenderRFCable extends TileEntitySpecialRenderer {
|
||||
|
||||
public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/rf_cable.png");
|
||||
float pixel = 1F/16F;
|
||||
float textureP = 1F / 32F;
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) {
|
||||
GL11.glTranslated(offsetX, offsetY, offsetZ);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
this.bindTexture(texture);
|
||||
drawCore(tileentity);
|
||||
TileEntityRFDuct cable = (TileEntityRFDuct) tileentity;
|
||||
for(int i = 0; i < cable.connections.length; i++)
|
||||
{
|
||||
if(cable.connections[i] != null)
|
||||
{
|
||||
drawConnection(cable.connections[i]);
|
||||
}
|
||||
}
|
||||
GL11.glTranslated(-offsetX, -offsetY, -offsetZ);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
|
||||
}
|
||||
|
||||
public void drawCore(TileEntity tileentity) {
|
||||
Tessellator tesseract = Tessellator.instance;
|
||||
tesseract.startDrawingQuads();
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP);
|
||||
tesseract.draw();
|
||||
|
||||
// Muehsam muss ich hier im BSH meine genialen Mods schreiben, obwohl ich die Zeit eigentlich doch besser nutzen koennte.
|
||||
// Da mir das aber Spass macht, wird auch in Zukunft gutes Zeug von mir geben (und damit meine ich NICHT Drogen, etc.)
|
||||
// Danke.
|
||||
|
||||
//I didn't write this, but I'm gonna leave it there.
|
||||
}
|
||||
|
||||
public void drawConnection(ForgeDirection direction)
|
||||
{
|
||||
Tessellator tesseract = Tessellator.instance;
|
||||
tesseract.startDrawingQuads();
|
||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||
if(direction.equals(ForgeDirection.UP))
|
||||
{
|
||||
|
||||
}
|
||||
if(direction.equals(ForgeDirection.DOWN))
|
||||
{
|
||||
GL11.glRotatef(180, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.NORTH))
|
||||
{
|
||||
GL11.glRotatef(270, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.SOUTH))
|
||||
{
|
||||
GL11.glRotatef(90, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.EAST))
|
||||
{
|
||||
GL11.glRotatef(270, 0, 0, 1);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.WEST))
|
||||
{
|
||||
GL11.glRotatef(90, 0, 0, 1);
|
||||
}
|
||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP);
|
||||
tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP);
|
||||
tesseract.draw();
|
||||
|
||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||
if(direction.equals(ForgeDirection.UP))
|
||||
{
|
||||
|
||||
}
|
||||
if(direction.equals(ForgeDirection.DOWN))
|
||||
{
|
||||
GL11.glRotatef(-180, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.NORTH))
|
||||
{
|
||||
GL11.glRotatef(-270, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.SOUTH))
|
||||
{
|
||||
GL11.glRotatef(-90, 1, 0, 0);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.EAST))
|
||||
{
|
||||
GL11.glRotatef(-270, 0, 0, 1);
|
||||
}
|
||||
if(direction.equals(ForgeDirection.WEST))
|
||||
{
|
||||
GL11.glRotatef(-90, 0, 0, 1);
|
||||
}
|
||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||
}
|
||||
}
|
||||
@ -97,6 +97,7 @@ public class TileMappings {
|
||||
put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator");
|
||||
put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple");
|
||||
put(TileEntityFluidDuct.class, "tileentity_universal_duct");
|
||||
put(TileEntityMachineDrain.class, "tileentity_fluid_drain");
|
||||
put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank");
|
||||
put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan");
|
||||
put(TileEntityMachineTurbineGas.class, "tileentity_machine_gasturbine");
|
||||
@ -136,7 +137,6 @@ public class TileMappings {
|
||||
put(TileEntityFF.class, "tileentity_forcefield");
|
||||
put(TileEntityForceField.class, "tileentity_machine_field");
|
||||
put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder");
|
||||
put(TileEntityRFDuct.class, "tileentity_hbm_rfduct");
|
||||
put(TileEntityReactorControl.class, "tileentity_reactor_remote_control");
|
||||
put(TileEntityWasteDrum.class, "tileentity_waste_drum");
|
||||
put(TileEntityDecon.class, "tileentity_decon");
|
||||
|
||||
@ -110,6 +110,8 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements
|
||||
this.missileLoaded = false;
|
||||
this.decrStackSize(1, 1);
|
||||
this.markDirty();
|
||||
|
||||
return BombReturnCode.LAUNCHED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,144 +0,0 @@
|
||||
package com.hbm.tileentity.conductor;
|
||||
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import cofh.api.energy.IEnergyConnection;
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
import cofh.api.energy.IEnergyReceiver;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityRFDuct extends TileEntity implements IEnergyHandler {
|
||||
|
||||
public ForgeDirection[] connections = new ForgeDirection[6];
|
||||
protected EnergyStorage storage;
|
||||
public int output;
|
||||
|
||||
public TileEntityRFDuct(int output) {
|
||||
this.output = output;
|
||||
this.storage = new EnergyStorage(200);
|
||||
|
||||
storage.setMaxReceive(output);
|
||||
storage.setMaxExtract(output);
|
||||
storage.setMaxTransfer(output);
|
||||
}
|
||||
|
||||
public void updateEntity() {
|
||||
this.updateConnections();
|
||||
|
||||
if (storage.getEnergyStored() > 0) {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
|
||||
int targetX = xCoord + ForgeDirection.getOrientation(i).offsetX;
|
||||
int targetY = yCoord + ForgeDirection.getOrientation(i).offsetY;
|
||||
int targetZ = zCoord + ForgeDirection.getOrientation(i).offsetZ;
|
||||
|
||||
TileEntity tile = worldObj.getTileEntity(targetX, targetY, targetZ);
|
||||
if (tile instanceof IEnergyReceiver) {
|
||||
int maxExtract = storage.getMaxExtract();
|
||||
int maxAvailable = storage.extractEnergy(maxExtract, true);
|
||||
int energyTransferred = ((IEnergyReceiver) tile)
|
||||
.receiveEnergy(ForgeDirection.getOrientation(i).getOpposite(), maxAvailable, false);
|
||||
|
||||
storage.extractEnergy(energyTransferred, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateConnections() {
|
||||
if (this.worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) instanceof IEnergyConnection)
|
||||
connections[0] = ForgeDirection.UP;
|
||||
else
|
||||
connections[0] = null;
|
||||
|
||||
if (this.worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) instanceof IEnergyConnection)
|
||||
connections[1] = ForgeDirection.DOWN;
|
||||
else
|
||||
connections[1] = null;
|
||||
|
||||
if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) instanceof IEnergyConnection)
|
||||
connections[2] = ForgeDirection.NORTH;
|
||||
else
|
||||
connections[2] = null;
|
||||
|
||||
if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) instanceof IEnergyConnection)
|
||||
connections[3] = ForgeDirection.SOUTH;
|
||||
else
|
||||
connections[3] = null;
|
||||
|
||||
if (this.worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) instanceof IEnergyConnection)
|
||||
connections[4] = ForgeDirection.EAST;
|
||||
else
|
||||
connections[4] = null;
|
||||
|
||||
if (this.worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) instanceof IEnergyConnection)
|
||||
connections[5] = ForgeDirection.WEST;
|
||||
else
|
||||
connections[5] = null;
|
||||
}
|
||||
|
||||
public boolean onlyOneOpposite(ForgeDirection[] directions) {
|
||||
ForgeDirection mainDirection = null;
|
||||
boolean isOpposite = false;
|
||||
|
||||
for (int i = 0; i < directions.length; i++) {
|
||||
|
||||
if (mainDirection == null && directions[i] != null)
|
||||
mainDirection = directions[i];
|
||||
|
||||
if (directions[i] != null && mainDirection != directions[i]) {
|
||||
if (!isOpposite(mainDirection, directions[i]))
|
||||
return false;
|
||||
else
|
||||
isOpposite = true;
|
||||
}
|
||||
}
|
||||
|
||||
return isOpposite;
|
||||
}
|
||||
|
||||
public boolean isOpposite(ForgeDirection firstDirection, ForgeDirection secondDirection) {
|
||||
|
||||
if ((firstDirection.equals(ForgeDirection.NORTH) && secondDirection.equals(ForgeDirection.SOUTH))
|
||||
|| firstDirection.equals(ForgeDirection.SOUTH) && secondDirection.equals(ForgeDirection.NORTH))
|
||||
return true;
|
||||
|
||||
if ((firstDirection.equals(ForgeDirection.EAST) && secondDirection.equals(ForgeDirection.WEST))
|
||||
|| firstDirection.equals(ForgeDirection.WEST) && secondDirection.equals(ForgeDirection.EAST))
|
||||
return true;
|
||||
|
||||
if ((firstDirection.equals(ForgeDirection.UP) && secondDirection.equals(ForgeDirection.DOWN))
|
||||
|| firstDirection.equals(ForgeDirection.DOWN) && secondDirection.equals(ForgeDirection.UP))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectEnergy(ForgeDirection from) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
|
||||
return this.storage.receiveEnergy(Math.min(output, maxReceive), simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
|
||||
|
||||
return storage.extractEnergy(storage.getMaxExtract(), simulate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ForgeDirection from) {
|
||||
return storage.getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ForgeDirection from) {
|
||||
return storage.getMaxEnergyStored();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,155 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Polluting;
|
||||
import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.packet.BufPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.tileentity.IBufPacketReceiver;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.fluid.IFluidStandardReceiver;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver {
|
||||
|
||||
public FluidTank tank;
|
||||
|
||||
public TileEntityMachineDrain() {
|
||||
this.tank = new FluidTank(Fluids.NONE, 2_000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) {
|
||||
for(DirPos pos : getConPos()) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
|
||||
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
|
||||
|
||||
if(tank.getFill() > 0) {
|
||||
int toSpill = Math.max(tank.getFill() / 2, 1);
|
||||
tank.setFill(tank.getFill() - toSpill);
|
||||
FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, toSpill);
|
||||
|
||||
if(toSpill >= 100 && worldObj.rand.nextInt(20) == 0 && tank.getTankType().hasTrait(FT_Liquid.class) && tank.getTankType().hasTrait(FT_Viscous.class) && tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
Vec3 start = Vec3.createVectorHelper(xCoord + 0.5 - dir.offsetX * 3, yCoord + 0.5, zCoord + 0.5 - dir.offsetZ * 3);
|
||||
Vec3 end = start.addVector(worldObj.rand.nextGaussian() * 5, -25, worldObj.rand.nextGaussian() * 5);
|
||||
MovingObjectPosition mop = worldObj.func_147447_a(start, end, false, true, false);
|
||||
|
||||
if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && mop.sideHit == 1) {
|
||||
Block block = worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ);
|
||||
if(!block.getMaterial().isLiquid() && block.isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ) && ModBlocks.oil_spill.canPlaceBlockAt(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) {
|
||||
worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.oil_spill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if(tank.getFill() > 0 && MainRegistry.proxy.me().getDistance(xCoord, yCoord, zCoord) < 100) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
if(tank.getTankType().hasTrait(FT_Gaseous.class)) {
|
||||
data.setString("type", "tower");
|
||||
data.setFloat("lift", 0.5F);
|
||||
data.setFloat("base", 0.375F);
|
||||
data.setFloat("max", 3F);
|
||||
data.setInteger("life", 100 + worldObj.rand.nextInt(50));
|
||||
} else {
|
||||
data.setString("type", "splash");
|
||||
}
|
||||
|
||||
data.setInteger("color", tank.getTankType().getColor());
|
||||
data.setDouble("posX", xCoord + 0.5 - dir.offsetX * 2.5);
|
||||
data.setDouble("posZ", zCoord + 0.5 - dir.offsetZ * 2.5);
|
||||
data.setDouble("posY", yCoord + 0.5);
|
||||
|
||||
MainRegistry.proxy.effectNT(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DirPos[] getConPos() {
|
||||
ForgeDirection dir0 = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
ForgeDirection dir1 = dir0.getRotation(ForgeDirection.UP);
|
||||
ForgeDirection dir2 = dir0.getRotation(ForgeDirection.DOWN);
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord + dir0.offsetX, yCoord, zCoord + dir0.offsetZ, dir0),
|
||||
new DirPos(xCoord + dir1.offsetX, yCoord, zCoord + dir1.offsetZ, dir1),
|
||||
new DirPos(xCoord + dir2.offsetX, yCoord, zCoord + dir2.offsetZ, dir2)
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
this.tank.readFromNBT(nbt, "t");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
this.tank.writeToNBT(nbt, "t");
|
||||
}
|
||||
|
||||
@Override public void serialize(ByteBuf buf) { tank.serialize(buf); }
|
||||
@Override public void deserialize(ByteBuf buf) { tank.deserialize(buf); }
|
||||
|
||||
@Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; }
|
||||
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; }
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, ForgeDirection dir) {
|
||||
return dir != ForgeDirection.UP && dir != ForgeDirection.DOWN;
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 2,
|
||||
yCoord,
|
||||
zCoord - 2,
|
||||
xCoord + 3,
|
||||
yCoord + 1,
|
||||
zCoord + 3
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
@ -4145,6 +4145,7 @@ tile.machine_difurnace_on.name=Hochofen
|
||||
tile.machine_difurnace_rtg_off.name=Atomarer Hochofen
|
||||
tile.machine_difurnace_rtg_on.name=Atomarer Hochofen
|
||||
tile.machine_dineutronium_battery.name=Spark Energiespeicherblock
|
||||
tile.machine_drain.name=Ausgussrohr
|
||||
tile.machine_drill.name=Automatischer Minenbohrer
|
||||
tile.machine_electric_furnace_off.name=Elektrischer Ofen
|
||||
tile.machine_electric_furnace_on.name=Elektrischer Ofen
|
||||
|
||||
@ -5159,6 +5159,7 @@ tile.machine_difurnace_on.name=Blast Furnace
|
||||
tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace
|
||||
tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace
|
||||
tile.machine_dineutronium_battery.name=Spark Energy Storage Block
|
||||
tile.machine_drain.name=Drainage Pipe
|
||||
tile.machine_drill.name=Automatic Mining Drill
|
||||
tile.machine_electric_furnace_off.name=Electric Furnace
|
||||
tile.machine_electric_furnace_on.name=Electric Furnace
|
||||
|
||||
190
src/main/resources/assets/hbm/models/machines/drain.obj
Normal file
190
src/main/resources/assets/hbm/models/machines/drain.obj
Normal file
@ -0,0 +1,190 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'drain.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v -0.500000 0.000000 0.500000
|
||||
v -0.500000 1.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v -0.500000 1.000000 -0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v 0.500000 1.000000 0.500000
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.500000 1.000000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.853553 -0.353553
|
||||
v -0.500000 1.000000 0.000000
|
||||
v -0.500000 0.853553 0.353553
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 0.146447 0.353553
|
||||
v -0.500000 0.000000 -0.000000
|
||||
v -0.500000 0.146447 -0.353553
|
||||
v -2.500000 0.500000 -0.500000
|
||||
v -2.500000 0.853553 -0.353553
|
||||
v -2.500000 1.000000 0.000000
|
||||
v -2.500000 0.853553 0.353553
|
||||
v -2.500000 0.500000 0.500000
|
||||
v -2.500000 0.146447 0.353553
|
||||
v -2.500000 0.000000 -0.000000
|
||||
v -2.500000 0.146447 -0.353553
|
||||
v -2.500000 0.500000 -0.437500
|
||||
v -2.500000 0.809359 -0.309359
|
||||
v -2.500000 0.937500 0.000000
|
||||
v -2.500000 0.809359 0.309359
|
||||
v -2.500000 0.500000 0.437500
|
||||
v -2.500000 0.190641 0.309359
|
||||
v -2.500000 0.062500 -0.000000
|
||||
v -2.500000 0.190641 -0.309359
|
||||
v -1.500000 0.500000 -0.437500
|
||||
v -1.500000 0.809359 -0.309359
|
||||
v -1.500000 0.937500 0.000000
|
||||
v -1.500000 0.809359 0.309359
|
||||
v -1.500000 0.500000 0.437500
|
||||
v -1.500000 0.190641 0.309359
|
||||
v -1.500000 0.062500 -0.000000
|
||||
v -1.500000 0.190641 -0.309359
|
||||
vt 0.250000 0.326531
|
||||
vt 0.000000 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.326531
|
||||
vt 0.000000 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.326531
|
||||
vt 0.000000 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.326531
|
||||
vt 0.000000 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.653061
|
||||
vt 0.000000 0.326531
|
||||
vt 0.250000 0.326531
|
||||
vt 0.250000 0.653061
|
||||
vt 0.000000 0.326531
|
||||
vt 0.437500 0.653061
|
||||
vt 0.343750 0.000000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.625000 0.653061
|
||||
vt 0.531250 -0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.812500 0.653061
|
||||
vt 0.718750 0.000000
|
||||
vt 0.812500 0.000000
|
||||
vt 0.906250 0.653061
|
||||
vt 0.906250 -0.000000
|
||||
vt 0.343750 0.653061
|
||||
vt 0.250000 0.000000
|
||||
vt 0.531250 0.653061
|
||||
vt 0.718750 0.653061
|
||||
vt 1.000000 0.653061
|
||||
vt 1.000000 -0.000000
|
||||
vt 0.812500 0.673469
|
||||
vt 0.250000 0.653061
|
||||
vt 0.343750 0.673469
|
||||
vt 0.250000 0.673469
|
||||
vt 0.437500 0.673469
|
||||
vt 0.625000 0.673469
|
||||
vt 0.906250 0.673469
|
||||
vt 0.531250 0.673469
|
||||
vt 0.718750 0.673469
|
||||
vt 0.531250 1.000000
|
||||
vt 0.718750 1.000000
|
||||
vt 0.812500 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.437500 1.000000
|
||||
vt 0.625000 1.000000
|
||||
vt 1.000000 0.673469
|
||||
vt 0.906250 1.000000
|
||||
vt 0.343750 1.000000
|
||||
vt 0.249819 0.795918
|
||||
vt 0.217837 0.896766
|
||||
vt 0.140625 0.938539
|
||||
vt 0.000000 0.326531
|
||||
vt 0.000000 0.326531
|
||||
vt 0.000000 0.326531
|
||||
vt 0.000000 0.653061
|
||||
vt 0.000000 0.653061
|
||||
vt 1.000000 1.000000
|
||||
vt 0.063413 0.896766
|
||||
vt 0.031431 0.795918
|
||||
vt 0.063413 0.695070
|
||||
vt 0.140625 0.653298
|
||||
vt 0.217837 0.695070
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 -0.3827 0.9239
|
||||
vn 0.0000 0.9239 0.3827
|
||||
vn 0.0000 0.3827 -0.9239
|
||||
vn 0.0000 -0.3827 -0.9239
|
||||
vn 0.0000 -0.9239 0.3827
|
||||
vn 0.0000 0.3827 0.9239
|
||||
vn 0.0000 0.9239 -0.3827
|
||||
vn 0.0000 -0.9239 -0.3827
|
||||
s off
|
||||
f 2/1/1 3/2/1 1/3/1
|
||||
f 4/4/2 7/5/2 3/6/2
|
||||
f 8/7/3 5/8/3 7/9/3
|
||||
f 6/10/4 1/11/4 5/12/4
|
||||
f 7/13/5 1/14/5 3/15/5
|
||||
f 4/16/6 6/17/6 8/7/6
|
||||
f 21/18/7 14/19/7 13/20/7
|
||||
f 19/21/8 12/22/8 11/23/8
|
||||
f 17/24/9 10/25/9 9/26/9
|
||||
f 24/27/10 9/26/10 16/28/10
|
||||
f 22/29/11 15/30/11 14/19/11
|
||||
f 20/31/12 13/20/12 12/22/12
|
||||
f 18/32/13 11/23/13 10/25/13
|
||||
f 23/33/14 16/28/14 15/34/14
|
||||
f 24/27/1 25/35/1 17/24/1
|
||||
f 23/36/1 30/37/1 31/38/1
|
||||
f 20/31/1 29/39/1 21/18/1
|
||||
f 18/32/1 27/40/1 19/21/1
|
||||
f 23/33/1 32/41/1 24/27/1
|
||||
f 21/18/1 30/37/1 22/29/1
|
||||
f 19/21/1 28/42/1 20/31/1
|
||||
f 17/24/1 26/43/1 18/32/1
|
||||
f 27/40/14 36/44/14 28/42/14
|
||||
f 25/35/7 34/45/7 26/43/7
|
||||
f 32/41/12 33/46/12 25/35/12
|
||||
f 30/37/13 39/47/13 31/38/13
|
||||
f 28/42/10 37/48/10 29/39/10
|
||||
f 26/43/11 35/49/11 27/40/11
|
||||
f 31/50/8 40/51/8 32/41/8
|
||||
f 29/39/9 38/52/9 30/37/9
|
||||
f 37/53/1 36/54/1 35/55/1
|
||||
f 2/1/1 4/56/1 3/2/1
|
||||
f 4/4/2 8/57/2 7/5/2
|
||||
f 8/7/3 6/17/3 5/8/3
|
||||
f 6/10/4 2/58/4 1/11/4
|
||||
f 7/13/5 5/59/5 1/14/5
|
||||
f 4/16/6 2/60/6 6/17/6
|
||||
f 21/18/7 22/29/7 14/19/7
|
||||
f 19/21/8 20/31/8 12/22/8
|
||||
f 17/24/9 18/32/9 10/25/9
|
||||
f 24/27/10 17/24/10 9/26/10
|
||||
f 22/29/11 23/36/11 15/30/11
|
||||
f 20/31/12 21/18/12 13/20/12
|
||||
f 18/32/13 19/21/13 11/23/13
|
||||
f 23/33/14 24/27/14 16/28/14
|
||||
f 24/27/1 32/41/1 25/35/1
|
||||
f 23/36/1 22/29/1 30/37/1
|
||||
f 20/31/1 28/42/1 29/39/1
|
||||
f 18/32/1 26/43/1 27/40/1
|
||||
f 23/33/1 31/50/1 32/41/1
|
||||
f 21/18/1 29/39/1 30/37/1
|
||||
f 19/21/1 27/40/1 28/42/1
|
||||
f 17/24/1 25/35/1 26/43/1
|
||||
f 27/40/14 35/49/14 36/44/14
|
||||
f 25/35/7 33/46/7 34/45/7
|
||||
f 32/41/12 40/51/12 33/46/12
|
||||
f 30/37/13 38/52/13 39/47/13
|
||||
f 28/42/10 36/44/10 37/48/10
|
||||
f 26/43/11 34/45/11 35/49/11
|
||||
f 31/50/8 39/61/8 40/51/8
|
||||
f 29/39/9 37/48/9 38/52/9
|
||||
f 35/55/1 34/62/1 33/63/1
|
||||
f 33/63/1 40/64/1 35/55/1
|
||||
f 40/64/1 39/65/1 35/55/1
|
||||
f 39/65/1 38/66/1 35/55/1
|
||||
f 38/66/1 37/53/1 35/55/1
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 151 B |
BIN
src/main/resources/assets/hbm/textures/models/machines/drain.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/machines/drain.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Loading…
x
Reference in New Issue
Block a user