From 6bfca4e1fea6aab66169a02189af231d369dd57e Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 10 Jun 2025 15:32:47 +0200 Subject: [PATCH] :b:alls --- changelog | 88 ++---------------- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 9 -- .../com/hbm/blocks/machine/BlockCMFlux.java | 9 +- .../com/hbm/blocks/machine/BlockCMHeat.java | 9 +- .../blocks/machine/MachineChemicalPlant.java | 2 + .../blocks/machine/MachineTransformer.java | 21 +---- .../hbm/entity/item/EntityDeliveryDrone.java | 8 +- .../logic/EntityExplosionChunkloading.java | 1 + .../com/hbm/entity/logic/EntityPlaneBase.java | 6 +- .../missile/EntityMissileAntiBallistic.java | 6 +- .../entity/missile/EntityMissileBaseNT.java | 8 +- .../projectile/EntityArtilleryRocket.java | 6 +- .../projectile/EntityArtilleryShell.java | 8 +- .../projectile/EntityBulletBaseMK4CL.java | 7 +- .../ExplosionNukeRayParallelized.java | 8 +- .../java/com/hbm/handler/HbmKeybinds.java | 24 ++++- .../recipes/ChemicalPlantRecipes.java | 1 + .../java/com/hbm/items/IKeybindReceiver.java | 1 + .../com/hbm/items/armor/JetpackBreak.java | 3 +- .../com/hbm/items/tool/ItemToolAbility.java | 71 +++++++------- .../sedna/mags/MagazineSingleTypeBase.java | 6 ++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 6 +- src/main/java/com/hbm/main/MainRegistry.java | 3 + .../hbm/packet/toserver/KeybindPacket.java | 1 - .../java/com/hbm/tileentity/TileMappings.java | 1 - .../tileentity/machine/TileEntityHadron.java | 33 +------ .../machine/TileEntityMachineTransformer.java | 6 -- .../world/gen/component/BunkerComponents.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 13 +-- src/main/resources/assets/hbm/lang/en_US.lang | 11 +-- .../hbm/textures/blocks/hadron_cooler.png | Bin 284 -> 0 bytes .../hbm/textures/blocks/hadron_cooler_mk2.png | Bin 331 -> 0 bytes .../blocks/machine_funnel_ore_bottom.png | Bin 319 -> 0 bytes .../blocks/machine_funnel_ore_side.png | Bin 307 -> 0 bytes .../blocks/machine_funnel_ore_top.png | Bin 325 -> 0 bytes 37 files changed, 162 insertions(+), 220 deletions(-) delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png diff --git a/changelog b/changelog index de14d2348..52000176e 100644 --- a/changelog +++ b/changelog @@ -1,81 +1,13 @@ -## Added -* Two new anti-material rifle variants - * .50 BMG demolisher rounds are finally usable - * Added a special ammo type exclusive to one of the variants -* Starmetal .50 BMG now returns - * Overall better armor piercing stats than DU - * Not compatible with the M2, only usable in amat rifles -* Reworked chemical plant - * No longer needs template items for everything, comes with a convenient recipe selector GUI - * Three item and three fluids for in and outputs - * Slots are locked to the ingredients they accept, allowing for better performance and shift click support - * Item IO now works like most other machines instead of using chutes - * If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at - * Now has a more convenient 3x3 footprint - * Features 12 access ports, more than enough for full coverage of the entire machine's IO - * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) (doesn't work yet since we don't have secret recipe :P) - * Ports are now standardized, no longer are fluids connected to ports that look like copper contacts - * Can't use upgrades just yet - ## Changed -* Added Ukrainian localization -* The RBMK console's grid can now be rotated using a screwdriver -* Tool abilities have changed - * Right-clicking while holding ALT now opens a configuration window - * The configuration window allows creation of tool presets - * Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch - * Clicking on the same ability allows switching between levels -* Updated textures for the armor and gun modification tables -* Ported the fire extinguisher to the SEDNA gun system, eliminating the final remaining ItemGunBase gun -* Water extinguishers can now wash away foam blocks -* Obliterated Fabsol's vodka -* Tier 4 heart piece is now called "heart of darkness" -* Thermal sights now render dead mobs in black -* Guns now have unique scope overlays instead of reusing the .44 scope for everything -* The new chemplant has slightly altered recipes - * Very basic mixing recipes (e.g. coolant) have been removed, it's now required to use the mixer - * Water to hydrogen peroxide is now 1,000 : 1,000 (instead of 1,000 : 800) - * Sulfuric acid's peroxide requirement has been adjusted accordingly - * Nitric acid has an alternate recipe using air and water, however it takes 4x as long and has a base consumption of 2kHE/t - * Desh now only takes 5 seconds to produce instead of 15 - * Laminate now only takes 50mB of either fluid per recipe and processes much quicker - * Ducrete now uses U238 in the form of ferrouranium, decreasing U238 needed, and no longer requires gravel at all - * All recipes for nuclear fuel production now have a higher base consumption - * Base consumption in general has been tweaked for many later-game recipes. Many recipes however still use the old 100HE/t rate - * Cordite now uses sawdust instead of wood planks and sugar - * Kevlar is now made from aromatics, nitric acid and chlorine (or phosgene in 528 mode) - * Electrolysis using the chemplant has been removed. Hydrogen can be made using water and coal (or coke), and oxygen can be distilled from intake air - * Solid nuclear waste can also be vitrified now - * Thorium salt reprocessing now only has a 50% chance to produce a U233 nugget and a 25% chance to produce nuclear waste, making it less absurdly powerful and easier to deal with the waste - * Glyphid meat processing is now less autistic - * Making rusty steel now only takes 2 seconds per recipe - * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) - * Recipe changes are still subject to balancing -* Removed niter to nitric acid liquefaction recipe -* Updated N2 model - * Glow in the dark paint not included (yet) -* Wooden scaffolds now have a slightly smaller hitbox and are climbable -* Hanging chains and vines can now be climbed by holding space -* Hopefully fixed the strand caster being weird for good -* Removed angry metal drop from meteorites (use the assembler recipe) -* The automatic buzzsaw can now handle crops -* The automatic buzzsaw will no longer clip through walls when extending -* The automatic buzzsaw can be turned off using a screwdriver -* Template folders now support page turning via scrolling -* Named crates will now show their names in the GUI as well as as a tooltip -* Vanilla anvils no longer increase experience costs when renaming an item -* Fans now have diminishing force, old behavior can be restored with the hand drill +* Opening the tool ability configuration menu is now its own keybind instead of using the copy tool's alt keybind + right click +* Cycling though tool abilities is now a custom keybind (still right click by default) +* Removed legacy hardron cooler +* Removed 20hz transformers +* High-octane diesel is now called high-cetane diesel ## Fixed -* Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts -* Fixed strand caster fluid gauges going out of bounds -* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers -* Fixed non-standard template folder recipes not using the correct icon -* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed -* Fixed missing energy damage category localization -* Fixed server crash caused by tool abilities -* Fixed chunkloading entities not releasing their loading tickets properly -* Potentially fixed a dupe issue related to tool abilities -* Fixed certain sky features not being as bright as they should be -* Fixed detailed hitboxes behaving weird -* Fixed issue where empty crates would retain irrelevant NBT data, rendering them unstackable with freshly crafted crates +* Fixed new chemical plant ports not initializing their proxies properly +* Fixed chunkloading entities immediately throwing away their loader ticket +* Fixed builder jetpack not resetting flight time properly +* Fixed new chemplant's ferric schrabidate recipe +* Fixed single reload guns reloading multiple rounds at once when having multiple valid ammo stacks \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e276ed3a5..17c61bd4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5356 +mod_build_number=5357 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b3e81b36b..143c33fa0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -734,7 +734,6 @@ public class ModBlocks { public static Block hadron_analysis_glass; public static Block hadron_access; public static Block hadron_core; - public static Block hadron_cooler; public static Block pa_source; public static Block pa_beamline; @@ -854,9 +853,7 @@ public class ModBlocks { public static Block barrel_antimatter; public static Block machine_transformer; - public static Block machine_transformer_20; public static Block machine_transformer_dnt; - public static Block machine_transformer_dnt_20; public static Block machine_solar_boiler; public static Block solar_mirror; @@ -1855,7 +1852,6 @@ public class ModBlocks { hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); - hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); pa_source = new BlockPASource().setStepSound(Block.soundTypeMetal).setBlockName("pa_source").setHardness(5.0F).setResistance(10.0F); pa_beamline = new BlockPABeamline().setStepSound(Block.soundTypeMetal).setBlockName("pa_beamline").setHardness(5.0F).setResistance(10.0F); @@ -1985,8 +1981,6 @@ public class ModBlocks { machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); - machine_transformer_20 = new MachineTransformer(Material.iron, 10000L, 20).setBlockName("machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); - machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side"); machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side"); @@ -3137,7 +3131,6 @@ public class ModBlocks { GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName()); GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName()); GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); - register(hadron_cooler); register(pa_source); register(pa_beamline); @@ -3261,9 +3254,7 @@ public class ModBlocks { register(capacitor_tantalium); register(capacitor_schrabidate); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_dnt_20, machine_transformer_dnt_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java index 85f0d4725..6773ec560 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java @@ -2,8 +2,9 @@ package com.hbm.blocks.machine; import net.minecraft.block.material.Material; -public class BlockCMFlux extends BlockPillar{ - public BlockCMFlux(Material mat, String top) { - super(mat, top); - } +public class BlockCMFlux extends BlockPillar { + + public BlockCMFlux(Material mat, String top) { + super(mat, top); + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java index f339fbb48..a43b35be2 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java @@ -2,8 +2,9 @@ package com.hbm.blocks.machine; import net.minecraft.block.material.Material; -public class BlockCMHeat extends BlockPillar{ - public BlockCMHeat(Material mat, String top) { - super(mat, top); - } +public class BlockCMHeat extends BlockPillar { + + public BlockCMHeat(Material mat, String top) { + super(mat, top); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java index b68a698da..cf94cca5e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; import net.minecraft.block.material.Material; @@ -18,6 +19,7 @@ public class MachineChemicalPlant extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineChemicalPlant(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java index 1369765fb..60751e333 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java @@ -2,39 +2,31 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineTransformer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.world.World; -public class MachineTransformer extends BlockContainer { - - long buffer; - int delay; +public class MachineTransformer extends Block { @SideOnly(Side.CLIENT) private IIcon iconTop; public MachineTransformer(Material p_i45394_1_, long b, int d) { super(p_i45394_1_); - buffer = b; - delay = d; } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - if(this == ModBlocks.machine_transformer || this == ModBlocks.machine_transformer_20) { + if(this == ModBlocks.machine_transformer) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top_iron"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_iron"); } - if(this == ModBlocks.machine_transformer_dnt || this == ModBlocks.machine_transformer_dnt_20) { + if(this == ModBlocks.machine_transformer_dnt) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer"); } @@ -45,9 +37,4 @@ public class MachineTransformer extends BlockContainer { public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineTransformer(); - } } diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index ac480e2e3..db9e90da3 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -1,5 +1,6 @@ package com.hbm.entity.item; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; @@ -193,7 +194,11 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, @Override protected void loadNeighboringChunks() { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + // This is the lowest padding that worked with my drone waypoint path. if they stop getting loaded crank up paddingSize for (ChunkCoordIntPair chunk : ChunkShapeHelper.getChunksAlongLineSegment((int) this.posX, (int) this.posZ, (int) (this.posX + this.motionX), (int) (this.posZ + this.motionZ), 4)){ ForgeChunkManager.forceChunk(loaderTicket, chunk); @@ -210,6 +215,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java index 6d5611950..91b4e4eb9 100644 --- a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java +++ b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java @@ -46,6 +46,7 @@ public abstract class EntityExplosionChunkloading extends Entity implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java index 1a9910df7..550a86160 100644 --- a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -3,6 +3,7 @@ package com.hbm.entity.logic; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -188,12 +189,15 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader { public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b4e296fe0..0dea01b99 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -3,6 +3,7 @@ package com.hbm.entity.missile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; @@ -202,7 +203,9 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j)); @@ -222,6 +225,7 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 610341732..c35497bce 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -3,6 +3,7 @@ package com.hbm.entity.missile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; @@ -327,8 +328,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -349,6 +352,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index 9167c33a7..47d0fbd65 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.rocketbehavior.IRocketSteeringBehavior; import com.hbm.entity.projectile.rocketbehavior.IRocketTargetingBehavior; @@ -159,7 +160,9 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -179,6 +182,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index 9258e5a7d..c4d6443d2 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.items.weapon.ItemAmmoArty; import com.hbm.items.weapon.ItemAmmoArty.ArtilleryShell; @@ -193,8 +194,10 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -214,6 +217,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java index 9e551c8e6..84f4c35c5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.main.MainRegistry; @@ -61,13 +62,17 @@ public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunk public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } - clearChunkLoader(); loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 08c322adf..1e0aa6991 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -335,14 +335,14 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { adder.add(damageAmount); } - public float getDamage(int bitIndex) { + /*public float getDamage(int bitIndex) { DoubleAdder adder = damageMap.get(bitIndex); return adder == null ? 0f : (float) adder.sum(); - } + }*/ - public void clearDamage(int bitIndex) { + /*public void clearDamage(int bitIndex) { damageMap.remove(bitIndex); - } + }*/ public Set> entrySet() { return damageMap.entrySet(); diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index d924a7e34..9cfcd65fb 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -1,6 +1,7 @@ package com.hbm.handler; import com.hbm.inventory.gui.GUICalculator; +import com.hbm.items.IKeybindReceiver; import cpw.mods.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; @@ -14,8 +15,9 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; -import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; public class HbmKeybinds { @@ -28,6 +30,8 @@ public class HbmKeybinds { public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); + public static KeyBinding abilityCycle = new KeyBinding(category + ".ability", -99, category); + public static KeyBinding abilityAlt = new KeyBinding(category + ".abilityAlt", Keyboard.KEY_LMENU, category); public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category); public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category); @@ -60,6 +64,7 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(craneLeftKey); ClientRegistry.registerKeyBinding(craneRightKey); ClientRegistry.registerKeyBinding(craneLoadKey); + ClientRegistry.registerKeyBinding(abilityAlt); ClientRegistry.registerKeyBinding(copyToolAlt); ClientRegistry.registerKeyBinding(copyToolCtrl); } @@ -81,12 +86,13 @@ public class HbmKeybinds { @SubscribeEvent public void keyEvent(KeyInputEvent event) { + EntityPlayer player = MainRegistry.proxy.me(); if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only - Minecraft.getMinecraft().thePlayer.closeScreen(); + player.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); } - HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + HbmPlayerProps props = HbmPlayerProps.getData(player); for(EnumKeybind key : EnumKeybind.values()) { boolean last = props.getKeyPressed(key); @@ -95,9 +101,19 @@ public class HbmKeybinds { if(last != current) { PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); props.setKeyPressed(key, current); + onPressedClient(player, key, current); } } } + + public static void onPressedClient(EntityPlayer player, EnumKeybind key, boolean state) { + // ITEM HANDLING + ItemStack held = player.getHeldItem(); + if(held != null && held.getItem() instanceof IKeybindReceiver) { + IKeybindReceiver rec = (IKeybindReceiver) held.getItem(); + if(rec.canHandleKeybind(player, held, key)) rec.handleKeybindClient(player, held, key, state); + } + } public static enum EnumKeybind { JETPACK, @@ -111,6 +127,8 @@ public class HbmKeybinds { CRANE_LEFT, CRANE_RIGHT, CRANE_LOAD, + ABILITY_CYCLE, + ABILITY_ALT, TOOL_ALT, TOOL_CTRL, GUN_PRIMARY, diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index 44cbd5ad4..ca4bcc193 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -217,6 +217,7 @@ public class ChemicalPlantRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000))); this.register(new GenericRecipe("chem.schrabidate").setup(150, 5_000) + .inputItems(new OreDictStack(IRON.dust())) .inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250)) .outputItems(new ItemStack(ModItems.powder_schrabidate))); diff --git a/src/main/java/com/hbm/items/IKeybindReceiver.java b/src/main/java/com/hbm/items/IKeybindReceiver.java index 5a44b4cce..7a6204a51 100644 --- a/src/main/java/com/hbm/items/IKeybindReceiver.java +++ b/src/main/java/com/hbm/items/IKeybindReceiver.java @@ -9,4 +9,5 @@ public interface IKeybindReceiver { public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind); public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state); + public default void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 029b00486..e5c4128f9 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -71,8 +71,9 @@ public class JetpackBreak extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F); this.useUpFuel(player, stack, 10); - ArmorUtil.resetFlightTime(player); } + + ArmorUtil.resetFlightTime(player); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index aa8ce2268..06e20e6f7 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -13,9 +13,9 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.inventory.gui.GUIScreenToolAbility; import com.hbm.items.IItemControlReceiver; -import com.hbm.handler.HbmKeybinds; +import com.hbm.items.IKeybindReceiver; +import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.blocks.ModBlocks; -import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ability.AvailableAbilities; import com.hbm.handler.ability.IBaseAbility; import com.hbm.handler.ability.IToolAreaAbility; @@ -54,7 +54,7 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; -public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver { +public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver, IKeybindReceiver { protected boolean isShears = false; protected EnumToolType toolType; @@ -251,37 +251,6 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro } } - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(!canOperate(stack)) - return super.onItemRightClick(stack, world, player); - - if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { - if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); - return stack; - } - - Configuration config = getConfiguration(stack); - - if(config.presets.size() < 2 || world.isRemote) - return super.onItemRightClick(stack, world, player); - - - if(player.isSneaking()) { - config.currentPreset = 0; - } else { - config.currentPreset = (config.currentPreset + 1) % config.presets.size(); - } - - setConfiguration(stack, config); - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); - - world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); - - return stack; - } - public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { if(world.isAirBlock(x, y, z)) @@ -521,4 +490,38 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenToolAbility(this.availableAbilities); } + + @Override + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) { + if(player.worldObj.isRemote) return keybind == EnumKeybind.ABILITY_ALT; + return keybind == EnumKeybind.ABILITY_CYCLE; + } + + @Override + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { + + if(keybind == EnumKeybind.ABILITY_CYCLE && state) { + + World world = player.worldObj; + if(!canOperate(stack)) return; + + Configuration config = getConfiguration(stack); + if(config.presets.size() < 2 || world.isRemote) return; + + if(player.isSneaking()) { + config.currentPreset = 0; + } else { + config.currentPreset = (config.currentPreset + 1) % config.presets.size(); + } + + setConfiguration(stack, config); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); + } + } + + @Override + public void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { + if(state) player.openGui(MainRegistry.instance, 0, player.worldObj, 0, 0, 0); + } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java index 8b68e610e..74df8d102 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java @@ -98,6 +98,8 @@ public abstract class MagazineSingleTypeBase implements IMagazine for(int i = 0; i < inventory.getSizeInventory(); i++) { ItemStack slot = inventory.getStackInSlot(i); + if(loadLimit <= 0) return; + if(slot != null) { //mag is empty, assume next best type @@ -110,6 +112,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit); this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity)); inventory.decrStackSize(i, toLoad); + loadLimit -= toLoad; break; } } @@ -124,6 +127,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit); this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity)); inventory.decrStackSize(i, toLoad); + loadLimit -= toLoad; } } @@ -146,6 +150,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit); this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity)); if(!infBag) bag.decrStackSize(j, toLoad); + loadLimit -= toLoad; break; } } @@ -160,6 +165,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit); this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity)); if(!infBag) bag.decrStackSize(j, toLoad); + loadLimit -= toLoad; } } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 9a96ec0ac..27fe4f45d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5356)"; + public static final String VERSION = "1.0.27 BETA (5357)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 294781953..5c157900b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -2081,8 +2081,10 @@ public class ClientProxy extends ServerProxy { case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed(); case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed(); case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed(); - case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); - case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); + case ABILITY_CYCLE: return HbmKeybinds.abilityCycle.getIsKeyPressed(); + case ABILITY_ALT: return HbmKeybinds.abilityAlt.getIsKeyPressed(); + case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); + case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed(); case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed(); case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed(); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1a455e86b..ab9f2f995 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1690,6 +1690,9 @@ public class MainRegistry { ignoreMappings.add("hbm:item.test_nuke_tier2_bullet"); ignoreMappings.add("hbm:item.test_nuke_tier1_target"); ignoreMappings.add("hbm:item.test_nuke_tier2_target"); + ignoreMappings.add("hbm:tile.hadron_cooler"); + ignoreMappings.add("hbm:tile.machine_transformer_20"); + ignoreMappings.add("hbm:tile.machine_transformer_dnt_20"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/toserver/KeybindPacket.java b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java index 945d21e69..94aac041d 100644 --- a/src/main/java/com/hbm/packet/toserver/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java @@ -40,7 +40,6 @@ public class KeybindPacket implements IMessage { EntityPlayer p = ctx.getServerHandler().playerEntity; HbmKeybindsServer.onPressedServer(p, EnumKeybind.values()[m.key], m.pressed); - return null; } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 9a125268a..f8252b5af 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -112,7 +112,6 @@ public class TileMappings { put(TileEntityMachineSiren.class, "tileentity_siren"); put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); - put(TileEntityMachineTransformer.class, "tileentity_transformer"); put(TileEntityMachineRadarNT.class, "tileentity_radar"); put(TileEntityMachineRadarLarge.class, "tileentity_radar_large"); put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index fdfc5e861..48e9b5535 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -400,8 +400,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe int charge; int analysis; boolean isCheckExempt = false; - int cl0 = 0; - int cl1 = 0; boolean expired = false; boolean cloned = false; @@ -436,8 +434,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe p.charge = charge; p.analysis = analysis; p.isCheckExempt = isCheckExempt; - p.cl0 = cl0; - p.cl1 = cl1; p.expired = expired; p.plugs = new ArrayList(plugs); p.cloned = true; @@ -476,27 +472,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe if(charge < 0) expire(this, EnumHadronState.ERROR_NO_CHARGE); - - if(cl0 > 0) cl0--; - if(cl1 > 0) cl1--; } public void incrementCharge(int coilVal) { - //not the best code ever made but it works, dammit - if(cl1 > 0) { - - double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D; - mult = Math.max(mult, 0.1D); - coilVal *= mult; - - } else if(cl0 > 0) { - if(cl0 > 10) { - coilVal *= 0.75; - } else { - coilVal *= 1.10; - } - } - this.momentum += coilVal; } @@ -618,11 +596,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe } else { p.charge -= coilVal; totalValue += coilVal; - - if(block == ModBlocks.hadron_cooler) { - if(meta == 0) p.cl0 += 10; - if(meta == 1) p.cl1 += 5; - } } continue; @@ -842,9 +815,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe public boolean isValidCoil(Block b) { if(coilValue(b) > 0) return true; - - if(b == ModBlocks.hadron_cooler) return true; - return false; } @@ -862,8 +832,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe b instanceof BlockHadronCoil || b == ModBlocks.hadron_plating_glass || b == ModBlocks.hadron_analysis_glass || - b == ModBlocks.hadron_access || - b == ModBlocks.hadron_cooler; + b == ModBlocks.hadron_access; } public boolean isAnalysis(Block b) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java deleted file mode 100644 index f6b42b9f2..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.hbm.tileentity.machine; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityMachineTransformer extends TileEntity { -} diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index ee12ac748..356164a26 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -882,7 +882,7 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 5, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); fillWithBlocks(world, box, 1, 1, 6, 1, 3, 6, ModBlocks.concrete_pillar); fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); - placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer_20, 0, 1, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 1, 2, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c39ae14cb..819c38039 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -707,6 +707,8 @@ hazard.particleFine=Feinstaub hazard.sand=Augenreizstoffe hbm.key=NTM Hotkeys +hbm.key.ability=Werkzeug umschalten +hbm.key.abilityAlt=Werkzeug konfigurieren hbm.key.calculator=Taschenrechner hbm.key.copyToolAlt=Kopierwerkzeug: Einfügen umschalten hbm.key.copyToolCtrl=Kopierwerkzeug: Auf Rohre einfügen @@ -721,6 +723,7 @@ hbm.key.gunSecondary=Sekundärfeuer hbm.key.gunTertitary=Zielvisier hbm.key.toggleBack=Jetpack umschalten hbm.key.toggleHUD=HUD umschalten +hbm.key.toggleMagnet=Magnet umschalten hbm.key.trainInv=Zug-Inventar hbm.key.reload=Nachladen @@ -756,8 +759,8 @@ hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Crackdiesel -hbmfluid.diesel_crack_reform=Hochoktan-Diesel -hbmfluid.diesel_reform=Hochoktan-Crackdiesel +hbmfluid.diesel_crack_reform=Hochcetan-Diesel +hbmfluid.diesel_reform=Hochcetan-Crackdiesel hbmfluid.egg=Gelöstes Ei hbmfluid.estradiol=Estradiollösung hbmfluid.ethanol=Ethanol @@ -4161,8 +4164,8 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator -tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Klicken Sie mit der rechten Maustaste mit der Handbohrmaschine um den Modus zu wechseln -tile.fan.falloffOn=Die Lüfterleistung nimmt mit der Entfernung ab +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Rechtsclick mit Handbohrmaschine um den Modus zu wechseln +tile.fan.falloffOn=Die Ventilatorleistung nimmt mit Entfernung ab tile.fan.falloffOff=Konstante Lüfterleistung tile.fence_metal.name=Maschendrahtzaun tile.fence_metal_post.name=Maschendrahtzaun-Pfahl @@ -4262,8 +4265,6 @@ tile.hadron_coil_neodymium.name=Dichte Neodymspule tile.hadron_coil_schrabidate.name=Dichte Schrabidatspule tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule -tile.hadron_cooler.name=Teilchenbeschleuniger-Kühlungseinheit -tile.hadron_cooler_mk2.nameTeilchenbeschleuniger-Kühlungseinheit - Das Palindrome-Spezial tile.hadron_core.name=Teilchenbeschleuniger-Kernkomponente tile.hadron_diode.name=Schottky-Partikeldiode tile.hadron_plating.name=Teilchenbeschleuniger-Außenwand diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4c8168952..d690efe90 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1414,6 +1414,8 @@ hazard.particleFine=Particulates hazard.sand=Eye Irritants hbm.key=NTM Hotkeys +hbm.key.ability=Cycle Tool Abilities +hbm.key.abilityAlt=Configure Tool Abilities hbm.key.calculator=Calculator hbm.key.copyToolAlt=Copy Tool: Switch Paste hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes @@ -1428,6 +1430,7 @@ hbm.key.gunSecondary=Secondary Fire hbm.key.gunTertitary=Gun Sights hbm.key.toggleBack=Toggle Jetpack hbm.key.toggleHUD=Toggle HUD +hbm.key.toggleMagnet=Toggle Magnet hbm.key.trainInv=Train Inventory hbm.key.reload=Reload @@ -1465,8 +1468,8 @@ hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Cracked Diesel -hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel -hbmfluid.diesel_reform=High-Octane Diesel +hbmfluid.diesel_crack_reform=High-Cetane Cracked Diesel +hbmfluid.diesel_reform=High-Cetane Diesel hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol @@ -5387,10 +5390,6 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil tile.hadron_coil_starmetal.name=Dense Starmetal Coil -tile.hadron_cooler.name=Particle Accelerator Cooling Unit -tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% -tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special -tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png deleted file mode 100644 index 04e26493292b22c1008c60d71b6f3366c2b0ffd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmV+%0ptFOP)ST5Jex77ho0&YD#2US{6#pCLl!RHYEi@>|i4{2&wEi z*q{uME6>mW-<^IkFUvus2BiSd#?aJt3}H|T0q~rruZMl#>H3~ZO4qw$gx|2Wt}B(4 zlttm3(liYi;3ELAWf`w=4A!_~oPah4ya#};?*ZH@F-F+&H)Dd&m6T{>D2swYsel0x zgHpl4th2w$xo0bRwCw>nm$R7mT${QM7@;F$#d=pvVuR#g+)iU58>ASM%*%3Ig(S~& iC-4u_4?()CJLV0|AlW>Lj}`O)0000xDEoC-=>p+(3p#@Tjj-09suVUY0(DzD`j9Umv#z zFNT*lR?C7ckF9r%QDeiXxZjfHF|%kx80{vVp3fZy*arYSUuhQWcV~?$#s;*yWU)Sk zSIYvxuHs{qIsVh*r}J@^$F#a+7H#P3)L{TrU#HH6naSf-etTA3l}J}5B10oxmB`J- zi5Rb|5_x@?+sDVKR`33C80|xiHzmUarby!(H#^(#pCb8~K!!$+mE`*F%m)0qNM`bX dDAJUsm~Y}8?L&b$H30ws002ovPDHLkV1kwFjF12T diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png deleted file mode 100644 index e1062efc4f145a66dd7cae35f4785f81162e92fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)o793`Ac$Ippy)2`Do!E-T4LceV1{*Z0q_F@{$lA~ePr#&HC|dr#l@*|)BxdW;ckE%Q9{t{Zw#lfCx` za*Pq+PoQ)zH>i;Tn&g&-rfH&f6A@t;20{q5ZTl3^j>Z_)bv+eu&h6w7!c(Bk53p@p z_TP0KKt|qgptEY+Z&&WOYgS9-6d^m}nMe&;1btPF%g5)TRz_$5thJOvDRa#^6G&uh zEh2(*?vyMdhb^)QF~b~n3`Sp~YzQfEiq6f{C5Om~a{;abNXTz%qWLi16FD zjx`ZsJI}K}6u^Do9LMoc;=O;=`V|z`q-_|ztpThSp2h0*?zYwySgA7wwO00h?~vvI zHhZvJ)D*U_Z*%Lc!8Tey%dM~ASGJ9fB0@@O+AJcE+!q*({B+GLZs!01002ovPDHLk FV1iwUg8={l diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png deleted file mode 100644 index 6b0e57915406c8676ec82e1a4477ffdfa9e8cf6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)F>b^l5Jg{Bn+jP0iku-8MY=S;fIHun-e+*X7f1m_XsQ%R z5n+SZ&aU=LNa)Y}uRkzPZ|@&JN+}+Jh;UX)F^(euAq1?o&AsLdpL3?`I;LsjTo=6e z030O}5del^AmU6&*s!M zr4%Wp)nFUB2yStUK^^H{XswSE+=FI>@+FVp1kiO|Lq5N}UN!D