fixes, flixes and foxes

This commit is contained in:
Boblet 2024-02-19 15:55:48 +01:00
parent 8d86ebb857
commit 79d57071b7
13 changed files with 61 additions and 139 deletions

124
changelog
View File

@ -1,116 +1,14 @@
## Added
* More custom machine parts
* Custom machines now have a neutron acceptor which allows them to use flux from the breeding reactor in recipes
* There is now a heat acceptor which can accept heat from things like fireboxes or electric heaters
* Also added a config option to create pollution
* Hydrotreater
* Tier 3 oil machine (on the same level as vacuum oil and reforming)
* Can de-sulfurize oil, which allows extraction of sour gas directly from crude oil
* Using desulfurized oil skips the (rather destructive) desulfurization process of the standard refinery, yielding higher-quality oils
* Hydrotreating also allows cracked diesel variants to turn into their normal counterparts
* Can convert coal oil directly into coal gasoline
* For people afraid that this means yet another oil expansion that they need to progress through, I can assure you that this machine is entirely optional
* Rural house
* A new structure of an old brick house
* Industrial lighting
* Three new lamps that project out a beam of light for more coverage
* Cage lamps are made from tungsten filaments and project light by 2 additional blocks
* Fluorescent lights are made from mercury and project light 8 blocks, they also connect with each other to form light strips
* Halogen floodlights are made with bromine and cast a light beam 32 blocks long
* Lights are on by default and can be toggled with redstone
* Tritium lamps have also been retrofitted with longer range lighting, casting beams in all cardinal directions for 8 blocks
* Launch pad
* The standard launch pad is now a 9x9 platform that changes depending on what missile is loaded
* Missiles now have to be fueled like they would need to be on custom missile launchers
* The old launch pad has been renamed to silo launch pad and has kept the same rough shape
* Launch pads can still receive missiles from hoppers, however they now have a loading delay, making missiles no longer spammable from a single launch pad
* Large launch pads have to physically lift and place the rocket onto the pad, while the silo launch pad has a refueling delay
* Custom missiles are not yet usable on the new launch pad, for now they still require the dedicated custom missile launch pads
* Large silo hatch
* Because the new nuclear missile model is too fat, there's now a larger silo hatch
* Has a 7x7 footprint and a 5x5 opening
* Bedrock ores for neodymium and rare earth chunks
## Changed
* Deco bocks now drop all of the time, but they drop themselves instead of ingots
* To get the ingots, deco blocks now have to be deconstructed in the anvil, yielding an ingot 25% of the time
* If I see one more person complaining about the chances I'm reducing it down to 10%
* Catalytic reformers now have a tooltip informing about the need for a catalytic converter
* Several guns now have reload animations including most .357 revolvers and Samuel
* Updated stealth missile texture
* Some of the larger oil machines now render using display lists which should make them somewhat more performant
* Glyphid diggers can no longer yeet multiblocks or blocks with a tile entity
* Parasite-infested glyphids now explode into gore when the parasites pop out
* Missiles now have a top acceleration twice as much as the previous acceleration, but instead of being static, the acceleration goes up from 0 to max within 3 seconds
* This makes missiles reach top speed faster while also making the launches themselves slower and more pleasant
* Strange stone can no longer be destroyed via AoE, making it easier to find without accidentally mining it
* Launch pads now spawn launch smoke just like custom missile compact launchers
* Remodeled all tier 0 missiles
* Tier 0 missiles now have a much thinner contrail to match their size better
* Covneyor ejectors can now eject sulfur out of the side ports of refineries
* Refineries and vacuum refineries now have fluid ID slots for changing the recipe
* Removed the remaining old oil separation recipes from the chemical plant
* To help people coping with this terrible, terrible loss, fraction towers are now twice as fast
* This is a reminder that the chemical plant is a chemical reactor first and foremost, recipes like mixing and fractioning only existed because at the time there was no dedicated machine for it
* Fractional distilling is not a chemical process but a purely physical one, I don't know who needs to know this but I feel like some people might be unaware of the fact
* More large models have been converted into display lists which should improve performance somewhat
* Corroded barrels now crumble after a while
* PWRs on the edge of unloaded chunks now additionally reset their internal heat value to further reduce the time until they can potentially melt down
* Removed the assembly recipe for the radial engine since it will be retired soon
* Removed the endo and exothermal missiles
* Doomsday missiles are no longer laggy cluster missiles, instead they are now near-identical to thermonuclear missiles but with an added fallout radius of 100#
* Fallout rain now uses the same variable length code that the MK5 uses for optimal tick utilization, making it a lot faster
* Lighter sellafite variants should no longer replace darker ones in overlapping craters, making bombed-out landscapes look more natural
* Fallout's range-based effects now have a more natural gradient instead of creating smooth rings
* Fallout has been made significantly darker and less saturated to blend in with the crater more
* Except for solid fueled missiles, all missiles are now fueled in the launch pad and no longer need to be crafted with fuel
* Missile fuel types have been adjusted
* Tier 0: Solid Fuel
* Tier 1: Ethanol + Peroxide
* Tier 2: Kerosene + Peroxide
* Tier 3: Kerosene + LOXY
* Tier 4: Jet Fuel + LOXY
* The micro EMP has been made cheaper, while the schrabidium missile has been made more expensive
* Oxyhydrogen can now be made by mixing air (i.e. nothing) with hydrogen
* The oxygen + hydrogen recipe remains in order to give an option to void oxygen without needing to resort to flare stacks
* Removed some of the lower tier items fomr the red room loot pool, making the average red room better
* Retextured the fallout effect, fallout no longer has large snowflakes and the color now matches the crater better
* High-yield mini nukes no longer create chunk radiation, since they use the MK5 which already has AoE radiation, this prevents dead grass from spawning that makes the crater look uglier
* Balefire spread is now limited to prevent densely vegetated biomes from lagging to hell
* The bricked furnace now makes charcoal twice as fast
* Combination ovens no longer need two welded copper plates and instead only cast plates, therefore no longer being post-arc welder. This should make it more affordable and useful in the initial earlygame where things like automatic wood farms are most important.
* Any water-like extinguishing fluid shot from the chemical thrower can now wash away fallout layers
* Overhauled the Mk.III life extender
* The assembler recipe has been replaced with a simpler but more expensive workbench recipe
* Instead of taking up the chestplate slot, it's now an armor mod worn in the insert slot
* The armor no longer gives absorption, instead it adds 25 points to the shield count
* The +25 bypasses the shield limit of 100, meaning that with enough shield infusions, the total maximum is now 125
* The likelihood of uranium ore turning into schrabidium from full-sized nukes is now 10% instead of 1%. Conversion rates for small dirty explosions such as radioactive barrels remain unchanged.
* Fallout layers will no longer affect players in creative mode
* Rare earth chunks are now centrifugable, yielding larger quantities of the elements that are most needed earlier in the game
* Tier 3 missilles no longer need large fuel tanks and thrusters, instead they use two medium fuel tanks and four medium thrusters
* Tier 4s now need three thrusters
* Tier 0 missiles now come pre-fueled with solid fuel as part of their recipe
* Updated the ABM recipe to use the act welder, being made of a tier 0 missile assembly with extra thrusters and loaded with TNT/TATB
* The super shotgun now has improved animations, and is centered like it is in the original DOOM games
*
* Due to the HTR-01 being incompatible with the new launch pad, it is no longer craftable and is being retired
* Any remaining rockets can be crafted into a Soyuz
* All Soyuz launcher components now have double the yield in crafting recipes, making the launcher half as expensive
* There is now a config for disabling fluid container oredict (i.e. anything with the "container" prefix) which also disables TrainCraft diesel compatibility
* Silo structures now spawn with launch pads again
* This is strictly speaking a progression skip since silo launch pads are post vacuum oil, the structure will be overhauled soon
## Fixed
* Fixed dupe caused by shift-clicking ashes out of the bricked furnace
* Fixed missiles jerkingly rotating when launching, they should now smoothly transition from being part of the launch pad to being an entity
* Fixed missile control and launch smoke shifting around when the player is moving
* Fixed fast-moving missiles spawning too few particles, causing holes in the contrail
* Fixed coker units creating soot when not processing anything
* Foundry molds can no longer be removed from basins when there's still material in them, fixing a bug where doing so would void the material
* Fixed molds not saving when cooling off, allowing to dupe metal when leaving and rejoining
* Fixed normal drones loading chunks
* Fixed chunk-loading drones not loading chunks
* Fixed several chemistry templates missing names
* Fixed rampant mode random scout spawns being able to appear inside blocks
* Fixed turret rotation sometimes desyncing when out of range, this is especially noticeable with slow-moving arty
* Fixed research reactor OC integration allowing the control rods to be set out of bounds
* Fixed fallout falling faster and overlaying if multiple fallout areas intersect
* Fixed template folder 3D models rendering with weird shading
* HUD elements like jetpack charge and the shield bar should now still render even if Tinker's Construct replaces the health bar renderer
* Fixed players glitching into blocks with larger bounding box when standing on top of them and relogging
* Fixed a rare crash caused by doors on chunk borders
* Fixed missile loading process being skipped when a new missile is inserted in the same tick as the launch pad is triggered
* Fixed super shotgun's centered model causing it to permanently have the ironsights accuracy bonus
* The shield bar now renders as part of the armor HUD (but still below it), which should fix the issue of the bar not rendering with Tinker's Construct installed for good
* Fixed launch pad redstone interaction breaking after the first time the redstone state changes
* Fallout layers now use the sand material, fixing an issue where grass blocks with fallout on top look snowy

View File

@ -1753,7 +1753,7 @@ public class ModBlocks {
frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F);
frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F);
frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks");
fallout = new BlockFallout(Material.snow).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash");
fallout = new BlockFallout(Material.sand).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash");
foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam");
sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron");
leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves");

View File

@ -31,6 +31,7 @@ public class GeneralConfig {
public static boolean enableImpactWorldProvider = true;
public static boolean enableStatReRegistering = true;
public static boolean enableKeybindOverlap = true;
public static boolean enableFluidContainerCompat = true;
public static int hintPos = 0;
public static boolean enableExpensiveMode = false;
@ -92,6 +93,7 @@ public class GeneralConfig {
enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true);
enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true);
enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true);
enableFluidContainerCompat = config.get(CATEGORY_GENERAL, "1.35_enableFluidContainerCompat", true, "If enabled, fluid containers will be oredicted and interchangable in recipes with other mods' containers, as well as TrainCraft's diesel being considered a valid diesel canister.").getBoolean(true);
enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false);

View File

@ -91,7 +91,7 @@ public class FluidContainerRegistry {
allContainers.add(con);
OreDictionary.registerOre(con.type.getDict(con.content), con.fullContainer);
if (!containerMap.containsKey(con.type))
if(!containerMap.containsKey(con.type))
containerMap.put(con.type, new ArrayList<FluidContainer>());
List<FluidContainer> items = containerMap.get(con.type);

View File

@ -8,6 +8,7 @@ import java.util.Map.Entry;
import org.lwjgl.input.Keyboard;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.*;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.*;
@ -150,7 +151,8 @@ public class FluidType {
return this.localizedOverride != null ? this.localizedOverride : this.unlocalized;
}
public String getDict(int quantity) {
return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US);
String prefix = GeneralConfig.enableFluidContainerCompat ? "container" : "ntmcontainer";
return prefix + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US);
}
public boolean isHot() {

View File

@ -179,7 +179,6 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200);
makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200);
makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 2), new OreDictStack(TI.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.rocket_fuel, 8), new ComparableStack(ModItems.circuit_targeting_tier1, 1), }, 200);
makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800);
makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100);
makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150);
makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200);

View File

@ -3955,7 +3955,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_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier");
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");
missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom");

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.hbm.entity.effect.EntityNukeTorex;
import com.hbm.lib.Library;
import com.hbm.world.dungeon.Silo;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -70,13 +71,15 @@ public class ItemWandD extends Item {
tom.destructionRange = 600;
world.spawnEntityInWorld(tom);*/
List<EntityNukeTorex> del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50));
/*List<EntityNukeTorex> del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50));
if(!del.isEmpty()) {
for(EntityNukeTorex torex : del) torex.setDead();
} else {
EntityNukeTorex.statFac(world, pos.blockX, pos.blockY + 1, pos.blockZ, 150);
}
}*/
new Silo().generate(world, world.rand, pos.blockX, pos.blockY + 1, pos.blockZ);
/*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker();
IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c");

View File

@ -765,9 +765,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK });
addRecipeAuto(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', STEEL.plate(), 'C', ModBlocks.steel_scaffold });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 4), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete });
addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 4), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable });
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher, 8), new Object[] { "PPP", "SDS", "CCC", 'P', STEEL.plate(), 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ANY_CONCRETE.any() });
addRecipeAuto(new ItemStack(ModBlocks.struct_scaffold, 8), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', new ItemStack(ModBlocks.fluid_duct_neo, 1, OreDictionary.WILDCARD_VALUE), 'C', ModBlocks.red_cable });
addRecipeAuto(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', AL.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam });
addRecipeAuto(new ItemStack(ModItems.seg_15, 1), new Object[] { "PP", "SS", "BB", 'P', TI.plate(), 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam });
@ -1188,6 +1187,8 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium);
addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core);
addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot());
addShapelessAuto(new ItemStack(ModItems.missile_soyuz), new ItemStack(ModItems.missile_carrier));
}
public static void crumple() {

View File

@ -365,23 +365,30 @@ public class ModEventHandlerClient {
}
@SubscribeEvent(receiveCanceled = true)
public void onOverlayRender(RenderGameOverlayEvent.Post event) {
public void onHUDRenderShield(RenderGameOverlayEvent.Pre event) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if(event.type == event.type.ARMOR) {
HbmPlayerProps props = HbmPlayerProps.getData(player);
if(props.getEffectiveMaxShield() > 0) {
RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI);
}
}
}
@SubscribeEvent(receiveCanceled = true, priority = EventPriority.LOW)
public void onHUDRenderBar(RenderGameOverlayEvent.Post event) {
/// HANDLE ELECTRIC FSB HUD ///
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
Tessellator tess = Tessellator.instance;
if(!event.isCanceled() && event.type == event.type.HEALTH) {
HbmPlayerProps props = HbmPlayerProps.getData(player);
if(props.getEffectiveMaxShield() > 0) {
RenderScreenOverlay.renderShieldBar(event.resolution, Minecraft.getMinecraft().ingameGUI);
}
}
if(!event.isCanceled() && event.type == event.type.ARMOR) {
if(event.type == event.type.ARMOR) {
if(ForgeHooks.getTotalArmorValue(player) == 0/* && GuiIngameForge.left_height == 59*/) {
if(ForgeHooks.getTotalArmorValue(player) == 0) {
GuiIngameForge.left_height -= 10;
}
@ -398,7 +405,7 @@ public class ModEventHandlerClient {
for(int i = 0; i < (noHelmet ? 3 : 4); i++) {
int top = height - GuiIngameForge.left_height + 6;
int top = height - GuiIngameForge.left_height + 7;
ItemStack stack = player.inventory.armorInventory[i];
@ -452,7 +459,6 @@ public class ModEventHandlerClient {
GL11.glEnable(GL11.GL_TEXTURE_2D);
}
}
}

View File

@ -168,7 +168,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
}
}
if(this.redstonePower > 0 && this.prevRedstonePower == 0) {
if(this.redstonePower > 0 && this.prevRedstonePower <= 0) {
this.launchFromDesignator();
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import com.hbm.config.GeneralConfig;
import com.hbm.handler.HazmatRegistry;
import com.hbm.hazard.HazardRegistry;
import com.hbm.inventory.FluidContainer;
@ -163,7 +164,7 @@ public class Compat {
public static void registerCompatFluidContainers() {
if(Compat.isModLoaded(Compat.MOD_TC)) {
if(Compat.isModLoaded(Compat.MOD_TC) && GeneralConfig.enableFluidContainerCompat) {
Item canister = Compat.tryLoadItem(Compat.MOD_TC, "emptyCanister");
Item diesel = Compat.tryLoadItem(Compat.MOD_TC, "diesel");
if(diesel != null && canister != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(diesel), new ItemStack(canister), Fluids.DIESEL, 1000));

View File

@ -4,7 +4,9 @@ package com.hbm.world.dungeon;
import java.util.Random;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.bomb.LaunchPad;
import com.hbm.config.GeneralConfig;
import com.hbm.lib.HbmChestContents;
import com.hbm.lib.Library;
@ -15,6 +17,7 @@ import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.common.util.ForgeDirection;
public class Silo extends WorldGenerator
{
@ -374,8 +377,6 @@ public class Silo extends WorldGenerator
world.setBlock(x + 6, y + -20, z + 10, Blocks.air, 0, 3);
world.setBlock(x + 7, y + -20, z + 10, Blocks.air, 0, 3);
world.setBlock(x + 8, y + -20, z + 10, Blocks.air, 0, 3);
world.setBlock(x + 9, y + -20, z + 10, Block2, 0, 3);
world.setBlock(x + 10, y + -20, z + 10, Blocks.unpowered_repeater, 3, 3);
world.setBlock(x + 11, y + -20, z + 10, Blocks.redstone_wire, 0, 3);
world.setBlock(x + 12, y + -20, z + 10, Blocks.redstone_wire, 0, 3);
world.setBlock(x + 13, y + -20, z + 10, Blocks.iron_bars, 0, 3);
@ -2474,6 +2475,14 @@ public class Silo extends WorldGenerator
world.setBlock(x + 8, y + 1, z + 13, Block6, 0, 3);
world.setBlock(x + 9, y + 1, z + 13, Block6, 0, 3);
world.setBlock(x + 10, y + 1, z + 13, Block6, 0, 3);
BlockDummyable.safeRem = true;
world.setBlock(x + 9, y + -20, z + 10, ModBlocks.launch_pad, 12, 3);
((LaunchPad) ModBlocks.launch_pad).fillSpace(world, x + 9, y + -20, z + 10, ForgeDirection.NORTH, 0);
BlockDummyable.safeRem = false;
//world.setBlock(x + 9, y + -20, z + 10, ModBlocks.stone_biome, 1, 3);
generate_r03_last(world, rand, x, y, z);
return true;
@ -2520,6 +2529,7 @@ public class Silo extends WorldGenerator
world.setBlock(x + 9, y + -1, z + 2, Blocks.ladder, 3, 3);
world.setBlock(x + 9, y + 0, z + 2, Blocks.ladder, 3, 3);
world.setBlock(x + 9, y + 1, z + 2, Blocks.ladder, 3, 3);
if(GeneralConfig.enableDebugMode)
System.out.print("[Debug] Successfully spawned missile silo at " + x + " " + y +" " + z + "\n");
return true;