mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
fixed hazard system memery, some fluid connections that didn't render
This commit is contained in:
parent
9f3424120e
commit
eedf2b61c4
@ -2174,7 +2174,7 @@ public class ModBlocks {
|
||||
rbmk_heater = new RBMKHeater().setBlockName("rbmk_heater").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_heater");
|
||||
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
|
||||
rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console");
|
||||
rbmk_loader = new BlockGeneric(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
||||
rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
||||
rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet");
|
||||
rbmk_steam_outlet = new RBMKOutlet(Material.iron).setBlockName("rbmk_steam_outlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_outlet");
|
||||
rbmk_heatex = new RBMKHeatex(Material.iron).setBlockName("rbmk_heatex").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_heatex");
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import api.hbm.fluid.IFluidConnectorBlock;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
@ -10,9 +13,11 @@ import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockPillar extends Block {
|
||||
public class BlockPillar extends Block implements IFluidConnectorBlock {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
@ -85,4 +90,9 @@ public class BlockPillar extends Block {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
if(this != ModBlocks.reactor_conductor) return false;
|
||||
return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineTurbofan;
|
||||
@ -11,8 +8,6 @@ import com.hbm.tileentity.machine.TileEntityMachineTurbofan;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
@ -3,9 +3,11 @@ package com.hbm.blocks.machine;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
|
||||
import api.hbm.energy.IEnergyConnectorBlock;
|
||||
import api.hbm.fluid.IFluidConnectorBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
@ -15,7 +17,7 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public abstract class DummyOldBase extends BlockContainer implements IDummy, IEnergyConnectorBlock {
|
||||
public abstract class DummyOldBase extends BlockContainer implements IDummy, IEnergyConnectorBlock, IFluidConnectorBlock {
|
||||
|
||||
public static boolean safeBreak = false;
|
||||
private boolean port = false;
|
||||
@ -66,8 +68,6 @@ public abstract class DummyOldBase extends BlockContainer implements IDummy, IEn
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
return port;
|
||||
}
|
||||
@Override public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { return port; }
|
||||
@Override public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { return port; }
|
||||
}
|
||||
|
||||
@ -6,8 +6,8 @@ import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.TileEntityProxyEnergy;
|
||||
import com.hbm.tileentity.TileEntityProxyInventory;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineMiningLaser;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
@ -27,14 +27,9 @@ public class MachineMiningLaser extends BlockDummyable implements ITooltipProvid
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityMachineMiningLaser();
|
||||
|
||||
if(meta == 7)
|
||||
return new TileEntityProxyEnergy();
|
||||
|
||||
if(meta >= 6)
|
||||
return new TileEntityProxyInventory();
|
||||
if(meta >= 12) return new TileEntityMachineMiningLaser();
|
||||
if(meta == 7) return new TileEntityProxyEnergy();
|
||||
if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -3,9 +3,13 @@ package com.hbm.blocks.machine;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineReactorLarge;
|
||||
|
||||
import api.hbm.fluid.IFluidConnectorBlock;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -19,9 +23,11 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class ReactorHatch extends Block {
|
||||
public class ReactorHatch extends Block implements IFluidConnectorBlock {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconFront;
|
||||
@ -176,4 +182,9 @@ public class ReactorHatch extends Block {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
return type == Fluids.WATER || type == Fluids.COOLANT || type == Fluids.STEAM || type == Fluids.HOTSTEAM || type == Fluids.SUPERHOTSTEAM || type == Fluids.ULTRAHOTSTEAM;
|
||||
}
|
||||
}
|
||||
|
||||
24
src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java
Normal file
24
src/main/java/com/hbm/blocks/machine/rbmk/RBMKLoader.java
Normal file
@ -0,0 +1,24 @@
|
||||
package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import com.hbm.blocks.generic.BlockGeneric;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
|
||||
import api.hbm.fluid.IFluidConnectorBlock;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class RBMKLoader extends BlockGeneric implements IFluidConnectorBlock {
|
||||
|
||||
public RBMKLoader(Material material) {
|
||||
super(material);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
if(type == Fluids.WATER) return dir == ForgeDirection.UP;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@ -15,6 +15,7 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -221,6 +222,14 @@ public class HazardSystem {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateDroppedItem(EntityItem entity) {
|
||||
|
||||
List<HazardEntry> hazards = getHazardsFromStack(entity.getEntityItem());
|
||||
for(HazardEntry entry : hazards) {
|
||||
entry.type.updateEntity(entity, HazardModifier.evalAllModifiers(entity.getEntityItem(), null, entry.baseLevel, entry.mods));
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static void addFullTooltip(ItemStack stack, EntityPlayer player, List list) {
|
||||
|
||||
@ -12,7 +12,7 @@ public abstract class HazardModifier {
|
||||
/**
|
||||
* Returns the level after applying all modifiers to it, in order.
|
||||
* @param stack
|
||||
* @param entity
|
||||
* @param entity nullable
|
||||
* @param level
|
||||
* @param mods
|
||||
* @return
|
||||
|
||||
@ -24,10 +24,13 @@ public class HazardTypeCoal extends HazardTypeBase {
|
||||
if(RadiationConfig.disableCoal)
|
||||
return;
|
||||
|
||||
if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_COARSE))
|
||||
HbmLivingProps.incrementBlackLung(target, (int) Math.min(level, 10));
|
||||
else
|
||||
ArmorUtil.damageGasMaskFilter(target, (int) level);
|
||||
if(!ArmorRegistry.hasProtection(target, 3, HazardClass.PARTICLE_COARSE)) {
|
||||
HbmLivingProps.incrementBlackLung(target, (int) Math.min(level * stack.stackSize, 10));
|
||||
} else {
|
||||
if(target.getRNG().nextInt(Math.max(65 - stack.stackSize, 1)) == 0) {
|
||||
ArmorUtil.damageGasMaskFilter(target, (int) level);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -20,7 +20,7 @@ public class HazardTypeExplosive extends HazardTypeBase {
|
||||
if(RadiationConfig.disableExplosive)
|
||||
return;
|
||||
|
||||
if(!target.worldObj.isRemote && target.isBurning()) {
|
||||
if(!target.worldObj.isRemote && target.isBurning() && stack.stackSize > 0) {
|
||||
stack.stackSize = 0;
|
||||
target.worldObj.newExplosion(null, target.posX, target.posY + target.getEyeHeight() - target.getYOffset(), target.posZ, level, false, true);
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ public class HazardTypeHydroactive extends HazardTypeBase {
|
||||
if(RadiationConfig.disableHydro)
|
||||
return;
|
||||
|
||||
if(target.isWet()) {
|
||||
if(target.isWet() && stack.stackSize > 0) {
|
||||
stack.stackSize = 0;
|
||||
target.worldObj.newExplosion(null, target.posX, target.posY + target.getEyeHeight() - target.getYOffset(), target.posZ, level, false, true);
|
||||
}
|
||||
|
||||
@ -32,7 +32,9 @@ import com.hbm.handler.ArmorModHandler;
|
||||
import com.hbm.handler.BobmazonOfferFactory;
|
||||
import com.hbm.handler.BossSpawnHandler;
|
||||
import com.hbm.handler.EntityEffectHandler;
|
||||
import com.hbm.hazard.HazardEntry;
|
||||
import com.hbm.hazard.HazardSystem;
|
||||
import com.hbm.hazard.modifier.HazardModifier;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.handler.HTTPHandler;
|
||||
import com.hbm.handler.SiegeOrchestrator;
|
||||
@ -661,6 +663,11 @@ public class ModEventHandler {
|
||||
((EntityPlayer)entity).triggerAchievement(MainRegistry.achRadPoison);
|
||||
}
|
||||
}
|
||||
|
||||
if(e instanceof EntityItem) {
|
||||
EntityItem item = (EntityItem) e;
|
||||
HazardSystem.updateDroppedItem(item);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* REMOVE THIS ^ ^ ^
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user