drill air block fix, proper cooling tower particle condition

This commit is contained in:
Bob 2022-12-18 01:52:04 +01:00
parent e5fbdf0a38
commit e609272ec5
11 changed files with 147 additions and 135 deletions

View File

@ -12,7 +12,6 @@ import com.hbm.handler.GunConfiguration;
import com.hbm.handler.HbmKeybinds;
import com.hbm.interfaces.IHoldableWeapon;
import com.hbm.interfaces.IItemHUD;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.GunAnimationPacket;
import com.hbm.packet.GunButtonPacket;
import com.hbm.packet.PacketDispatcher;
@ -167,7 +166,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
return getBeltSize(player, getBeltType(player, stack, main)) > 0;
} else {
return getMag(stack) >= 0 + config.roundsPerCycle;
//return getMag(stack) >= 0 + config.roundsPerCycle;
return getMag(stack) > 0;
}
}
@ -220,6 +220,9 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD {
for(int k = 0; k < altConfig.roundsPerCycle; k++) {
if(altConfig.reloadType != altConfig.RELOAD_NONE && !hasAmmo(stack, player, true))
break;
if(config.bulletsMax > config.bulletsMin)
bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin);

View File

@ -97,6 +97,7 @@ import com.hbm.tileentity.network.*;
import com.hbm.tileentity.turret.*;
import com.hbm.util.BobMathUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.wiaj.cannery.Jars;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
@ -121,6 +122,8 @@ public class ClientProxy extends ServerProxy {
registerItemRenderer();
registerEntityRenderer();
registerBlockRenderer();
Jars.initJars();
RenderingRegistry.addNewArmourRendererPrefix("5");
RenderingRegistry.addNewArmourRendererPrefix("6");

View File

@ -657,9 +657,13 @@ public class ModEventHandlerClient {
list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type);
}
CanneryBase cannery = Jars.canneries.get(comp);
if(cannery != null) {
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("cannery.f1"));
try {
CanneryBase cannery = Jars.canneries.get(comp);
if(cannery != null) {
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("cannery.f1"));
}
} catch(Exception ex) {
list.add(EnumChatFormatting.RED + "Error loading cannery: " + ex.getLocalizedMessage());
}
/*ItemStack copy = stack.copy();

View File

@ -10,17 +10,15 @@ import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.main.ModEventHandler;
import com.hbm.main.ModEventHandlerImpact;
import com.hbm.tileentity.INBTPacketReceiver;
import com.hbm.tileentity.TileEntityLoadedBase;
import api.hbm.fluid.IFluidStandardTransceiver;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.EnumSkyBlock;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver {
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, INBTPacketReceiver {
public int age = 0;
public FluidTank[] tanks;
@ -43,13 +41,16 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA
if(age >= 2) {
age = 0;
}
this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
this.tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
if(this.waterTimer > 0)
this.waterTimer--;
int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill());
tanks[0].setFill(tanks[0].getFill() - convert);
if(convert > 0)
this.waterTimer = 20;
int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord);
if(MainRegistry.proxy.getImpactFire(worldObj) > 0 && light > 7) { // Make both steam and water evaporate during firestorms...
@ -63,15 +64,20 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA
fillFluidInit(tanks[1].getTankType());
} else {
if(tanks[0].getFill() > 0) {
this.waterTimer = 20;
} else if(this.waterTimer > 0){
this.waterTimer--;
}
NBTTagCompound data = new NBTTagCompound();
this.tanks[0].writeToNBT(data, "0");
this.tanks[1].writeToNBT(data, "1");
data.setByte("timer", (byte) this.waterTimer);
INBTPacketReceiver.networkPack(this, data, 150);
}
}
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.tanks[0].readFromNBT(nbt, "0");
this.tanks[1].readFromNBT(nbt, "1");
this.waterTimer = nbt.getByte("timer");
}
@Override
public void readFromNBT(NBTTagCompound nbt) {

View File

@ -1,9 +1,6 @@
package com.hbm.tileentity.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.UpgradeManager;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
@ -22,7 +19,6 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -329,7 +325,7 @@ public class TileEntityMachineMiningDrill extends TileEntityMachineBase implemen
* */
public boolean tryDrill(int x, int y, int z) {
if(worldObj.getBlock(x, y, z) == Blocks.air || !isMinableOreo(x, y, z))
if(worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z) || !isMinableOreo(x, y, z))
return false;
if(worldObj.getBlock(x, y, z).getMaterial().isLiquid()) {
worldObj.func_147480_a(x, y, z, false);

View File

@ -419,7 +419,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen
}
private boolean canBreak(Block block, int x, int y, int z) {
return block != Blocks.air && block.getBlockHardness(worldObj, x, y, z) >= 0 && !block.getMaterial().isLiquid() && block != Blocks.bedrock;
return block.isAir(worldObj, x, y, z) && block.getBlockHardness(worldObj, x, y, z) >= 0 && !block.getMaterial().isLiquid() && block != Blocks.bedrock;
}
public int getRange() {

View File

@ -3,7 +3,6 @@ package com.hbm.tileentity.machine;
import com.hbm.entity.missile.EntityMinerRocket;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.items.ISatChip;
import com.hbm.items.machine.ItemSatChip;
import com.hbm.saveddata.SatelliteSavedData;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.saveddata.satellites.SatelliteMiner;
@ -49,21 +48,19 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
@Override
public ItemStack getStackInSlotOnClosing(int i) {
if(slots[i] != null)
{
if(slots[i] != null) {
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
} else {
return null;
return null;
}
}
@Override
public void setInventorySlotContents(int i, ItemStack itemStack) {
slots[i] = itemStack;
if(itemStack != null && itemStack.stackSize > getInventoryStackLimit())
{
if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) {
itemStack.stackSize = getInventoryStackLimit();
}
}
@ -89,11 +86,10 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
@Override
public boolean isUseableByPlayer(EntityPlayer player) {
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this)
{
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) {
return false;
}else{
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64;
} else {
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64;
}
}
@ -105,30 +101,26 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
if(i == 2 || i == 3 || i == 4 || i == 5)
{
if(i == 2 || i == 3 || i == 4 || i == 5) {
return false;
}
return true;
}
@Override
public ItemStack decrStackSize(int i, int j) {
if(slots[i] != null)
{
if(slots[i].stackSize <= j)
{
if(slots[i] != null) {
if(slots[i].stackSize <= j) {
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
}
ItemStack itemStack1 = slots[i].splitStack(j);
if (slots[i].stackSize == 0)
{
if(slots[i].stackSize == 0) {
slots[i] = null;
}
return itemStack1;
} else {
return null;
@ -139,15 +131,13 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
slots = new ItemStack[getSizeInventory()];
for(int i = 0; i < list.tagCount(); i++)
{
for(int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length)
{
if(b0 >= 0 && b0 < slots.length) {
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
}
}
@ -157,13 +147,11 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
NBTTagList list = new NBTTagList();
for(int i = 0; i < slots.length; i++)
{
if(slots[i] != null)
{
for(int i = 0; i < slots.length; i++) {
if(slots[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte)i);
nbt1.setByte("slot", (byte) i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
@ -172,10 +160,9 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_)
{
return access;
}
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return access;
}
@Override
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
@ -193,68 +180,68 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
public void updateEntity() {
if(!worldObj.isRemote) {
if(data == null)
data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites");
if(data == null) {
worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData());
data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites");
}
data.markDirty();
data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites");
if(data != null && slots[15] != null) {
int freq = ISatChip.getFreqS(slots[15]);
Satellite sat = data.getSatFromFreq(freq);
int delay = 10 * 60 * 1000;
if(sat instanceof SatelliteMiner) {
SatelliteMiner miner = (SatelliteMiner)sat;
if(miner.lastOp + delay < System.currentTimeMillis()) {
EntityMinerRocket rocket = new EntityMinerRocket(worldObj);
rocket.posX = xCoord + 0.5;
rocket.posY = 300;
rocket.posZ = zCoord + 0.5;
rocket.satelliteClassName = miner.getClass().getName();
rocket.getDataWatcher().updateObject(17, freq);
worldObj.spawnEntityInWorld(rocket);
miner.lastOp = System.currentTimeMillis();
data.markDirty();
}
}
}
List<Entity> list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5));
for(Entity e : list) {
if(e instanceof EntityMinerRocket) {
EntityMinerRocket rocket = (EntityMinerRocket)e;
if(slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) {
rocket.setDead();
ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.tots);
break;
}
if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) {
unloadCargo(rocket.satelliteClassName);
}
}
}
if(data == null) {
worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData());
data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites");
}
data.markDirty();
ejectInto(xCoord + 2, yCoord, zCoord);
ejectInto(xCoord - 2, yCoord, zCoord);
ejectInto(xCoord, yCoord, zCoord + 2);
ejectInto(xCoord, yCoord, zCoord - 2);
if(data != null && slots[15] != null) {
int freq = ISatChip.getFreqS(slots[15]);
Satellite sat = data.getSatFromFreq(freq);
int delay = 10 * 60 * 1000;
if(sat instanceof SatelliteMiner) {
SatelliteMiner miner = (SatelliteMiner) sat;
if(miner.lastOp + delay < System.currentTimeMillis()) {
EntityMinerRocket rocket = new EntityMinerRocket(worldObj);
rocket.posX = xCoord + 0.5;
rocket.posY = 300;
rocket.posZ = zCoord + 0.5;
rocket.satelliteClassName = miner.getClass().getName();
rocket.getDataWatcher().updateObject(17, freq);
worldObj.spawnEntityInWorld(rocket);
miner.lastOp = System.currentTimeMillis();
data.markDirty();
}
}
}
List<Entity> list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5));
for(Entity e : list) {
if(e instanceof EntityMinerRocket) {
EntityMinerRocket rocket = (EntityMinerRocket) e;
if(slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) {
rocket.setDead();
ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.tots);
break;
}
if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) {
unloadCargo(rocket.satelliteClassName);
}
}
}
ejectInto(xCoord + 2, yCoord, zCoord);
ejectInto(xCoord - 2, yCoord, zCoord);
ejectInto(xCoord, yCoord, zCoord + 2);
ejectInto(xCoord, yCoord, zCoord - 2);
}
}
@ -268,7 +255,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
for(int i = 0; i < items; i++) {
ItemStack stack = ((WeightedRandomObject)WeightedRandom.getRandomItem(rand, cargo)).asStack();
addToInv(stack);
addToInv(stack.copy());
}
}
@ -276,12 +263,14 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
for(int i = 0; i < 15; i++) {
if(slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() &&
slots[i].stackSize < slots[i].getMaxStackSize()) {
if(slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() && slots[i].stackSize < slots[i].getMaxStackSize()) {
slots[i].stackSize++;
int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize);
return;
slots[i].stackSize += toAdd;
stack.stackSize -= toAdd;
if(stack.stackSize <= 0) return;
}
}
@ -351,16 +340,28 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
}
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
AxisAlignedBB bb = null;
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
return 65536.0D;
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 1,
yCoord,
zCoord - 1,
xCoord + 2,
yCoord + 1,
zCoord + 2
);
}
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

View File

@ -3,7 +3,6 @@ package com.hbm.tileentity.machine;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;

View File

@ -9,7 +9,7 @@ public class Jars {
public static HashMap<ComparableStack, CanneryBase> canneries = new HashMap();
static {
public static void initJars() {
canneries.put(new ComparableStack(ModBlocks.heater_firebox), new CanneryFirebox());
canneries.put(new ComparableStack(ModBlocks.machine_stirling), new CanneryStirling());
canneries.put(new ComparableStack(ModBlocks.machine_stirling_steel), new CanneryStirling());

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB