mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
last bit of EC compat stuff
This commit is contained in:
parent
4588db50af
commit
b30bb8ae15
@ -122,6 +122,7 @@ public class EntityMappings {
|
||||
addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000);
|
||||
addEntity(EntityAAShell.class, "entity_aa_shell", 1000);
|
||||
addEntity(EntityRocketHoming.class, "entity_stinger", 1000);
|
||||
addEntity(EntityMissileTest.class, "entity_missile_test_mk2", 1000);
|
||||
addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000);
|
||||
addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000);
|
||||
addEntity(EntityRagingVortex.class, "entity_raging_vortex", 250);
|
||||
|
||||
@ -16,7 +16,10 @@ import com.hbm.items.ModItems;
|
||||
|
||||
import com.hbm.items.ItemAmmoEnums.AmmoFatman;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class EntityMissileTier0 extends EntityMissileBaseNT {
|
||||
@ -40,6 +43,40 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT {
|
||||
return 0.5F;
|
||||
}
|
||||
|
||||
public static class EntityMissileTest extends EntityMissileTier0 {
|
||||
public EntityMissileTest(World world) { super(world); }
|
||||
public EntityMissileTest(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); }
|
||||
@Override public ItemStack getDebrisRareDrop() { return null; }
|
||||
@Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_test); }
|
||||
|
||||
@Override public void onImpact() {
|
||||
int x = (int) Math.floor(posX);
|
||||
int y = (int) Math.floor(posY);
|
||||
int z = (int) Math.floor(posZ);
|
||||
int range = 50;
|
||||
|
||||
for(int iX = -range; iX <= range; iX++) {
|
||||
for(int iY = -range; iY <= range; iY++) {
|
||||
for(int iZ = -range; iZ <= range; iZ++) {
|
||||
double dist = Math.sqrt(iX * iX + iY * iY + iZ * iZ);
|
||||
if(dist > range) continue;
|
||||
Block block = worldObj.getBlock(x + iX, y + iY, z + iZ);
|
||||
int meta = worldObj.getBlockMetadata(x + iX, y + iY, z + iZ);
|
||||
int charMeta = (int) MathHelper.clamp_double(12 - (dist / range) * (dist / range) * 13, 0, 12);
|
||||
|
||||
if(block.isNormalCube()) {
|
||||
if(block != ModBlocks.sellafield_slaked || meta < charMeta) {
|
||||
worldObj.setBlock(x + iX, y + iY, z + iZ, ModBlocks.sellafield_slaked, charMeta, 3);
|
||||
}
|
||||
} else {
|
||||
worldObj.setBlock(x + iX, y + iY, z + iZ, Blocks.air);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class EntityMissileMicro extends EntityMissileTier0 {
|
||||
public EntityMissileMicro(World world) { super(world); }
|
||||
public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); }
|
||||
|
||||
@ -1330,6 +1330,7 @@ public class ModItems {
|
||||
public static Item missile_emp;
|
||||
public static Item missile_shuttle;
|
||||
public static Item missile_stealth;
|
||||
public static Item missile_test;
|
||||
|
||||
public static Item mp_thruster_10_kerosene;
|
||||
public static Item mp_thruster_10_kerosene_tec;
|
||||
@ -3955,6 +3956,7 @@ public class ModItems {
|
||||
missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp");
|
||||
missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle");
|
||||
missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth");
|
||||
missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro");
|
||||
missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_carrier");
|
||||
missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz");
|
||||
missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander");
|
||||
@ -6878,6 +6880,7 @@ public class ModItems {
|
||||
|
||||
//Missiles
|
||||
//Tier 0
|
||||
GameRegistry.registerItem(missile_test, missile_test.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName());
|
||||
|
||||
@ -419,6 +419,7 @@ public class ClientProxy extends ServerProxy {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.dnt_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
||||
|
||||
ItemRenderMissileGeneric.init();
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_test, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_taint, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_micro, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_bhole, new ItemRenderMissileGeneric(RenderMissileType.TYPE_TIER0));
|
||||
@ -719,6 +720,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileSchrabidium.class, new RenderMissileTaint());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileEMP.class, new RenderMissileTaint());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileShuttle.class, new RenderMissileShuttle());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileTest.class, new RenderMissileTaint());
|
||||
//effects
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, new RenderCloudRainbow());
|
||||
|
||||
@ -1239,6 +1239,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_bhole.png");
|
||||
public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_schrab.png");
|
||||
public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_emp.png");
|
||||
public static final ResourceLocation missileMicroTest_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_test.png");
|
||||
|
||||
public static final ResourceLocation soyuz_engineblock = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/engineblock.png");
|
||||
public static final ResourceLocation soyuz_bottomstage = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz/bottomstage.png");
|
||||
|
||||
@ -49,6 +49,8 @@ public class RenderMissileTaint extends Render {
|
||||
return ResourceManager.missileMicroSchrab_tex;
|
||||
if(p_110775_1_ instanceof EntityMissileEMP)
|
||||
return ResourceManager.missileMicroEMP_tex;
|
||||
if(p_110775_1_ instanceof EntityMissileTest)
|
||||
return ResourceManager.missileMicroTest_tex;
|
||||
|
||||
return ResourceManager.missileMicro_tex;
|
||||
}
|
||||
|
||||
@ -130,6 +130,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
|
||||
|
||||
public static void init() {
|
||||
|
||||
renderers.put(new ComparableStack(ModItems.missile_test), generateStandard(ResourceManager.missileMicroTest_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_taint), generateStandard(ResourceManager.missileTaint_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_micro), generateStandard(ResourceManager.missileMicro_tex, ResourceManager.missileMicro));
|
||||
renderers.put(new ComparableStack(ModItems.missile_bhole), generateStandard(ResourceManager.missileMicroBHole_tex, ResourceManager.missileMicro));
|
||||
|
||||
@ -7,33 +7,12 @@ import java.util.Set;
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.entity.missile.EntityMissileAntiBallistic;
|
||||
import com.hbm.entity.missile.EntityMissileBaseNT;
|
||||
import com.hbm.entity.missile.EntityMissileDoomsday;
|
||||
import com.hbm.entity.missile.EntityMissileShuttle;
|
||||
import com.hbm.entity.missile.EntityMissileStealth;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.EntityMissileBHole;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.EntityMissileEMP;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.EntityMissileMicro;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.EntityMissileSchrabidium;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.EntityMissileTaint;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.EntityMissileBunkerBuster;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.EntityMissileCluster;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.EntityMissileDecoy;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.EntityMissileGeneric;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.EntityMissileIncendiary;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.EntityMissileBusterStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.EntityMissileClusterStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.EntityMissileEMPStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.EntityMissileIncendiaryStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.EntityMissileStrong;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileBurst;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileDrill;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileInferno;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.EntityMissileRain;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano;
|
||||
import com.hbm.entity.missile.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier0.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier1.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier2.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier3.*;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.*;
|
||||
import com.hbm.interfaces.IBomb.BombReturnCode;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.container.ContainerLaunchPadLarge;
|
||||
@ -78,6 +57,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
|
||||
public static void registerLaunchables() {
|
||||
|
||||
//Tier 0
|
||||
missiles.put(new ComparableStack(ModItems.missile_test), EntityMissileTest.class);
|
||||
missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class);
|
||||
missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class);
|
||||
missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class);
|
||||
|
||||
@ -21,7 +21,9 @@ import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.ArmorUtil;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -33,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider {
|
||||
public class TileEntityCore extends TileEntityMachineBase implements IGUIProvider, IInfoProviderEC {
|
||||
|
||||
public int field;
|
||||
public int heat;
|
||||
@ -41,6 +43,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide
|
||||
public FluidTank[] tanks;
|
||||
private boolean lastTickValid = false;
|
||||
public boolean meltdownTick = false;
|
||||
protected int consumption;
|
||||
protected int prevConsumption;
|
||||
|
||||
public TileEntityCore() {
|
||||
super(3);
|
||||
@ -59,6 +63,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.prevConsumption = this.consumption;
|
||||
this.consumption = 0;
|
||||
|
||||
int chunkX = xCoord >> 4;
|
||||
int chunkZ = zCoord >> 4;
|
||||
|
||||
@ -231,6 +238,8 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide
|
||||
if(tanks[0].getFill() < demand || tanks[1].getFill() < demand)
|
||||
return joules;
|
||||
|
||||
this.consumption += demand;
|
||||
|
||||
heat += (int)Math.ceil((double)joules / 10000D);
|
||||
|
||||
tanks[0].setFill(tanks[0].getFill() - demand);
|
||||
@ -355,4 +364,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUICore(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.prevConsumption);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,8 @@ package com.hbm.tileentity.machine;
|
||||
import api.hbm.block.ILaserable;
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import api.hbm.fluid.IFluidStandardReceiver;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
|
||||
import com.hbm.inventory.container.ContainerCoreEmitter;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
@ -10,6 +12,8 @@ import com.hbm.inventory.gui.GUICoreEmitter;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -33,7 +37,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import java.util.List;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider {
|
||||
public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public static final long maxPower = 1000000000L;
|
||||
@ -330,4 +334,10 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUICoreEmitter(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 || prev > 0 ? 20 : 0);
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, maxPower * watts / 2000);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,10 +8,12 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.gui.GUICoreReceiver;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
|
||||
import api.hbm.block.ILaserable;
|
||||
import api.hbm.energy.IEnergyGenerator;
|
||||
import api.hbm.fluid.IFluidStandardReceiver;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -30,7 +32,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider {
|
||||
public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public long joules;
|
||||
@ -153,8 +155,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared()
|
||||
{
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
@ -220,4 +221,10 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUICoreReceiver(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 ? 20 : 0);
|
||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, joules * 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,8 +6,10 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemLens;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -26,7 +28,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider {
|
||||
public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public static final long maxPower = 2500000000L;
|
||||
@ -224,4 +226,15 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUICoreStabilizer(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
int demand = (int) Math.pow(watts, 4);
|
||||
long damage = ItemLens.getLensDamage(slots[0]);
|
||||
ItemLens lens = (ItemLens) com.hbm.items.ModItems.ams_lens;
|
||||
if(getPower() >= demand && slots[0] != null && slots[0].getItem() == lens && damage < 432000000L)
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, demand);
|
||||
else
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,15 +4,20 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.handler.radiation.ChunkRadiationManager;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import li.cil.oc.api.machine.Arguments;
|
||||
import li.cil.oc.api.machine.Callback;
|
||||
import li.cil.oc.api.machine.Context;
|
||||
import li.cil.oc.api.network.SimpleComponent;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityGeiger extends TileEntity implements SimpleComponent {
|
||||
public class TileEntityGeiger extends TileEntity implements SimpleComponent, IInfoProviderEC {
|
||||
|
||||
int timer = 0;
|
||||
int ticker = 0;
|
||||
@ -74,4 +79,10 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent {
|
||||
return new Object[] {check()};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
int rads = check();
|
||||
String chunkPrefix = ContaminationUtil.getPreffixFromRad(rads);
|
||||
data.setString(CompatEnergyControl.S_CHUNKRAD, chunkPrefix + rads + " RAD/s");
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,9 +5,11 @@ import com.hbm.main.MainRegistry;
|
||||
import com.hbm.sound.AudioWrapper;
|
||||
import com.hbm.tileentity.INBTPacketReceiver;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import api.hbm.tile.IHeatSource;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@ -15,7 +17,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver {
|
||||
public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IHeatSource, IEnergyUser, INBTPacketReceiver, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public int heatEnergy;
|
||||
@ -200,4 +202,11 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setLong(CompatEnergyControl.D_CONSUMPTION_HE, getConsumption());
|
||||
data.setLong(CompatEnergyControl.L_ENERGY_TU, getHeatStored());
|
||||
data.setLong(CompatEnergyControl.D_OUTPUT_TU, getHeatGen());
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,11 +28,13 @@ import com.hbm.sound.AudioWrapper;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.energy.IEnergyGenerator;
|
||||
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -49,7 +51,7 @@ import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider {
|
||||
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public static final long maxPower = 1_000_000;
|
||||
@ -59,6 +61,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
|
||||
public int afterburner;
|
||||
public boolean wasOn;
|
||||
public boolean showBlood = false;
|
||||
protected int output;
|
||||
protected int consumption;
|
||||
|
||||
public float spin;
|
||||
public float lastSpin;
|
||||
@ -119,6 +123,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.output = 0;
|
||||
this.consumption = 0;
|
||||
|
||||
//meta below 12 means that it's an old multiblock configuration
|
||||
if(this.getBlockMetadata() < 12) {
|
||||
//get old direction
|
||||
@ -165,7 +172,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
|
||||
if(amountToBurn > 0) {
|
||||
this.wasOn = true;
|
||||
this.tank.setFill(this.tank.getFill() - amountToBurn);
|
||||
this.power += burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4));
|
||||
this.output = (int) (burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4)));
|
||||
this.power += this.output;
|
||||
this.consumption = amountToBurn;
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * amountToBurn);
|
||||
}
|
||||
@ -513,4 +522,11 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem
|
||||
if(type == UpgradeType.AFTERBURN) return 3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0);
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.consumption);
|
||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output);
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,12 +24,14 @@ import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.I18nUtil;
|
||||
import com.hbm.util.ParticleUtil;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.energy.IEnergyGenerator;
|
||||
import api.hbm.fluid.IFluidStandardReceiver;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -43,13 +45,15 @@ import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
|
||||
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
||||
|
||||
public long power;
|
||||
public static final long maxPower = 100000;
|
||||
public FluidTank tank;
|
||||
public boolean isOn = false;
|
||||
public boolean doesBurn = false;
|
||||
protected int fluidUsed = 0;
|
||||
protected int output = 0;
|
||||
|
||||
public TileEntityMachineGasFlare() {
|
||||
super(6);
|
||||
@ -99,6 +103,9 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.fluidUsed = 0;
|
||||
this.output = 0;
|
||||
|
||||
for(DirPos pos : getConPos()) {
|
||||
this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
@ -125,6 +132,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
|
||||
if(tank.getTankType().hasTrait(FT_Gaseous.class) || tank.getTankType().hasTrait(FT_Gaseous_ART.class)) {
|
||||
int eject = Math.min(maxVent, tank.getFill());
|
||||
this.fluidUsed = eject;
|
||||
tank.setFill(tank.getFill() - eject);
|
||||
tank.getTankType().onFluidRelease(this, tank, eject);
|
||||
|
||||
@ -135,6 +143,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
|
||||
if(tank.getTankType().hasTrait(FT_Flammable.class)) {
|
||||
int eject = Math.min(maxBurn, tank.getFill());
|
||||
this.fluidUsed = eject;
|
||||
tank.setFill(tank.getFill() - eject);
|
||||
|
||||
int penalty = 5;
|
||||
@ -145,6 +154,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
powerProd /= penalty;
|
||||
powerProd += powerProd * yield / 3;
|
||||
|
||||
this.output = (int) powerProd;
|
||||
power += powerProd;
|
||||
|
||||
if(power > maxPower)
|
||||
@ -336,4 +346,11 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
||||
if(type == UpgradeType.EFFECT) return 3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.fluidUsed > 0);
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed);
|
||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,8 @@ package com.hbm.tileentity.machine.rbmk;
|
||||
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||
import api.hbm.fluid.IFluidUser;
|
||||
import api.hbm.fluid.IPipeNet;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType;
|
||||
import com.hbm.handler.CompatHandler;
|
||||
@ -16,6 +18,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.gui.GUIRBMKBoiler;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -35,11 +38,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent {
|
||||
public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC {
|
||||
|
||||
public FluidTank feed;
|
||||
public FluidTank steam;
|
||||
public List<IFluidAcceptor> list = new ArrayList();
|
||||
protected int consumption;
|
||||
protected int output;
|
||||
|
||||
public TileEntityRBMKBoiler() {
|
||||
super(0);
|
||||
@ -59,6 +64,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
|
||||
if(!worldObj.isRemote) {
|
||||
feed.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
|
||||
steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
|
||||
|
||||
this.consumption = 0;
|
||||
this.output = 0;
|
||||
|
||||
double heatCap = this.getHeatFromSteam(steam.getTankType());
|
||||
double heatProvided = this.heat - heatCap;
|
||||
@ -83,6 +91,9 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
|
||||
steamProduced = (int)Math.floor((waterUsed * 100D) / steamFactor);
|
||||
}
|
||||
|
||||
this.consumption = waterUsed;
|
||||
this.output = steamProduced;
|
||||
|
||||
feed.setFill(feed.getFill() - waterUsed);
|
||||
steam.setFill(steam.getFill() + steamProduced);
|
||||
|
||||
@ -402,4 +413,10 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIRBMKBoiler(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, consumption);
|
||||
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, output);
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,8 +11,10 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemRBMKRod;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType;
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.ParticleUtil;
|
||||
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -31,7 +33,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||
public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent {
|
||||
public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IRBMKLoadable, SimpleComponent, IInfoProviderEC {
|
||||
|
||||
//amount of "neutron energy" buffered for the next tick to use for the reaction
|
||||
public double fluxFast;
|
||||
@ -503,4 +505,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIRBMKRod(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) {
|
||||
data.setDouble(CompatEnergyControl.D_DEPLETION_PERCENT, ((1.0D - ItemRBMKRod.getEnrichment(slots[0])) * 100_000.0D) / 1_000.0D);
|
||||
data.setDouble(CompatEnergyControl.D_XENON_PERCENT, ItemRBMKRod.getPoison(slots[0]));
|
||||
data.setDouble(CompatEnergyControl.D_SKIN_C, ItemRBMKRod.getHullHeat(slots[0]));
|
||||
data.setDouble(CompatEnergyControl.D_CORE_C, ItemRBMKRod.getCoreHeat(slots[0]));
|
||||
data.setDouble(CompatEnergyControl.D_MELT_C, ((ItemRBMKRod) slots[0].getItem()).meltingPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import java.util.List;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineGasCent;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineGasCent.PseudoFluidTank;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||
@ -22,6 +23,11 @@ import net.minecraft.world.World;
|
||||
|
||||
/** Provides data specified by EC's CrossModBase */
|
||||
public class CompatEnergyControl {
|
||||
|
||||
/** Returns the steel ingot to craft the sensor kit with */
|
||||
public static ItemStack getCraftingMaterial() {
|
||||
return new ItemStack(ModItems.ingot_steel); //in the event that i do end up moving all ingots to metadata
|
||||
}
|
||||
|
||||
/** Returns true for stacks with electric items like batteries or powertools (i.e. implements IBatteryItem) */
|
||||
public static boolean isElectricItem(ItemStack stack) {
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/models/missile_test.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/missile_test.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 829 B |
Loading…
x
Reference in New Issue
Block a user