honestly quite incredible

This commit is contained in:
Boblet 2026-05-05 16:10:45 +02:00
parent 94a47a6f63
commit 150e953650
109 changed files with 112 additions and 160 deletions

View File

@ -1,67 +1,15 @@
## Changed
* Updated russian and chinese localization
* Oil bubbles are now 3x more common in deserts (biomes with a temperature value of 2 and rainfall of 0)
* Oil bubbles now have a 50% chance of spawning a surface indicator (similar to bedrock oil but still distinct)
* Oil deposits will never drop themselves, they always produce tar when mined
* Any tar type can now be turned into bitumen in a mixer (with worse efficiency compared to a liquefactor)
* RoR levers and indicator lights now have OpenComputers integration
* Alexandrite dropped with fortune is now capped at 2 gems per ore
* Added a config option for decreasing the soot requirement for skeleton guns (or rather, for the calculation, this number is added to the actual soot value, simulating a higher value)
* Radioisotope cells and PT cells are now deprecated, and can no longer be crafted
* Existing cells will continue to work for now
* If two pipe anchors are connected, one having a type set and one still being "none", instead of erroring, the "none" pipe will assume the other one's type
* Self-chargers in battery sockets now produce unreliable power output which constantly fluctuates
* Self-chargers in battery sockets now cause static discharges in regular intervals
* Added more RoR functionality to the boilers, industrial combustion engine, heat exchangers, fluid burners, CCGT and ZIRNOX
* Turrets can now be toggled and configured with RoR
* Artillery turrets can now have targets enqueued with RoR
* The RBMK numeric displays can now be controlled via OpenComputers, and come with built-in settings for shortening numbers and displaying leading zeroes
* The industrial steam turbine now has OpenComputers integration
* The RBMK fuel crane can now report stats for the loaded fuel rod to OpenComputers
* The RBMK console can now detect and send all stored RBMK fuel rods in storage columns via OpenComputers
* Crates now open when right-clicked by default, holding shift is required to place them down
* The automatic buzzsaw can now burn coal tar creosote
* The old cluster type effect used by MPBs and cluster missiles now use the new generic projectile system with actual bomblet models
* Removed the legacy fusion reactor entirely
* Changed neutron reflectors
* Reflectors can no longer be made in the blast furnace
* Rather, they are welded from HSS and tungsten carbide
* Tungsten carbide is made in the pyrolysis oven using syngas and tungsten powder
* Many recipes that used to use neutron reflectors now use alternative materials like HSS plates or weapon steel
* This effectively means that neutron reflectors are post oil 3
* PWR neutron reflectors have an alternate recipe allowing them to be made with weaponsteel
* Removed legacy battery items and selfchargers
* Added more QMAW pages
* Expensive mode plastic sheets now only use rubber instead of rubber or latex
* Updated the texture on the fop thing
* RoR info on tanks now displays the (0-3) value range of the mode setting
* Spike, tesla and microwave damage have now been categorized as physical, energy and energy respectively, making armors resistant against them
* Fau and DNT armor now have explicit physical resistances, making them harder to pierce
* The rubber recipe now yields two rubber per sulfur used
* Foundry scraps now show their material in the name instead of the description
* Bedrock ore minimum tier and bore fluid is no longer fixed at (1/NONE), rather it scales with the quality of the bedrock ore at that spot
* The bedrock ore density scanner will try to predict the required tier and bore fluid at the current spot, and show it as part of the HUD
* This only applies to newly generated bedrock ore patches
* Reduced industrial turbine cost from 3 titanium steam turbine blades to 2
* Motors now have yet another alternate recipe in the arc welder, using steel plates but substituting the coils with a dense red copper wires
* Dense red copper wires can now be welded
* The old factory hull blocks have been deprecated
* The singularity screwdriver, being with no purpose ever since the fwatz got removed, has been removed as well
* Desh motors now use dense golden wires instead of golden ring coils
* Added "desh from cracked oil" recipe
* Default recipe, doesn't need a blueprint
* Uses cracked light oil instead of regular light oil (500mB at 1 PU, or 2.5x more than the standard recipe, plus one compressor)
* Uses 100mB of mercury instead of 200mB
* All standard coils now have alternate recipes, using a steel core instead of an iron one
* Reduced steam demand of the rotary furnace's hotter fuels by a bit
* The acidizer now has a sound loop (chemplant sound at 75% pitch)
* Updated some bomb part recipes, mainly to make use of the new neutron reflectors and some more modern materials (why did ivy mike coolers still use iron?)
* Updated the fat man igniter icon
* The cape items, which haven't actually been used by anyone ever, are now deprecated. Existing capes will still work, but the items are now unobtainable
* Some long deprecated melee weapons have now been properly removed
## Fixed
* Fixed uncrafting of the nickel RTG pellet not respecting item metadata
* Tile entities that use fluids should now force the chunk they are in to be written to disk when unloaded
* This should fix the issue where systems that constantly move fluids around may not properly save to disk
* Fixed dispensed dynamites being considered impact grenades for some reason
* Fixed RBMK flux detection with RoR and OC not working
* Moved the soyuz launcher core component recipe to the assembler, fixing an issue where the component recipe is not available in 528 mode
* Fixed crash caused by using the copy tool on uncolored RBMK control rods
* Fixed turbine blade smelting in the crucible only yielding 2 ingots worth of material
* Fixed cluster missiles never properly splitting before impact
* The final splitting height depends on the trajectory's arc, cluster missiles are therefore not suitable for very long distances
* Fixed an issue where 40mm grenades that impact entities within three ticks of spawning would never detonate
* Fixed broken foundry scrap name and tooltip
* Finally fixed the rotary furnace's steam going into the negatives because 70k was too bald to do it
* Fixed magnet and HUD toggle popups being incorrect half the time
* Fixed crash caused by connecting NONE type pipe anchors
* Fixed color inconsistency with the bedrock ore density scanner

View File

@ -169,11 +169,6 @@ public class ArmorRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss });
//Capes
CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_radiation, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 11), 'D', KEY_YELLOW, 'I', ModItems.nuclear_waste });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_gasmask, 1), new Object[] { "W W", "WIW", "WDW", 'W', new ItemStack(Blocks.wool, 1, 4), 'D', KEY_BLACK, 'I', ModItems.gas_mask });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.cape_schrabidium, 1), new Object[] { "W W", "WIW", "WDW", 'W', SA326.ingot(), 'D', KEY_BLACK, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) });
//Configged
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleArmorRecipes) {
addHelmet( STAR.ingot(), ModItems.starmetal_helmet);

View File

@ -103,7 +103,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
if(this.enableMagnet)
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "Magnet ON", MainRegistry.proxy.ID_MAGNET, 1000), (EntityPlayerMP) player);
else
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "Magnet ON", MainRegistry.proxy.ID_MAGNET, 1000), (EntityPlayerMP) player);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "Magnet OFF", MainRegistry.proxy.ID_MAGNET, 1000), (EntityPlayerMP) player);
}
}
if(key == EnumKeybind.TOGGLE_HEAD) {
@ -114,7 +114,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
if(this.enableHUD)
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD, 1000), (EntityPlayerMP) player);
else
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD, 1000), (EntityPlayerMP) player);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD, 1000), (EntityPlayerMP) player);
}
}

View File

@ -645,11 +645,11 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
// bomb parts
this.register(new GenericRecipe("ass.explosivelenses1").setup(400, 100).outputItems(new ItemStack(ModItems.early_explosive_lenses, 1))
.inputItems(new OreDictStack(AL.plate(), 8), new OreDictStack(GOLD.wireFine(), 16), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4)));
.inputItems(new OreDictStack(AL.plate(), 8), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(BIGMT.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4)));
this.register(new GenericRecipe("ass.explosivelenses2").setup(400, 100).outputItems(new ItemStack(ModItems.explosive_lenses, 1))
.inputItems(new OreDictStack(AL.plate(), 8), new OreDictStack(MINGRADE.wireFine(), 16), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.ball_tatb, 16), new OreDictStack(RUBBER.ingot(), 2)));
.inputItems(new OreDictStack(AL.plate(), 8), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.neutron_reflector, 2), new ComparableStack(ModItems.ball_tatb, 16), new OreDictStack(RUBBER.ingot(), 2)));
this.register(new GenericRecipe("ass.wiring").setup(200, 100).outputItems(new ItemStack(ModItems.gadget_wireing, 1))
.inputItems(new OreDictStack(IRON.plate(), 1), new OreDictStack(GOLD.wireFine(), 12)));
.inputItems(new OreDictStack(GOLD.wireFine(), 24)));
this.register(new GenericRecipe("ass.core1").setup(1_200, 100).outputItems(new ItemStack(ModItems.gadget_core, 1))
.inputItems(new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3)));
this.register(new GenericRecipe("ass.boyshield").setup(200, 100).outputItems(new ItemStack(ModItems.boy_shielding, 1))
@ -663,16 +663,16 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.boyigniter").setup(200, 100).outputItems(new ItemStack(ModItems.boy_igniter, 1))
.inputItems(new OreDictStack(AL.shell(), 3), new OreDictStack(DURA.plateCast(), 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 16)));
this.register(new GenericRecipe("ass.manigniter").setup(200, 100).outputItems(new ItemStack(ModItems.man_igniter, 1))
.inputItems(new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 9)));
.inputItems(new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(GOLD.wireFine(), 24)));
this.register(new GenericRecipe("ass.mancore").setup(1_200, 100).outputItems(new ItemStack(ModItems.man_core, 1))
.inputItems(new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2)));
this.register(new GenericRecipe("ass.mikecore").setup(1_200, 100).outputItems(new ItemStack(ModItems.mike_core, 1))
.inputItems(new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6)));
.inputItems(new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.plate(), 6)));
this.register(new GenericRecipe("ass.mikedeut").setup(600, 100).outputItems(new ItemStack(ModItems.mike_deut, 1))
.inputItems(new OreDictStack(IRON.plate(), 12), new OreDictStack(STEEL.plate(), 16))
.inputItems(new OreDictStack(WEAPONSTEEL.plate(), 16), new OreDictStack(TI.plate(), 16))
.inputFluids(new FluidStack(Fluids.DEUTERIUM, 10_000)));
this.register(new GenericRecipe("ass.mikecooler").setup(300, 100).outputItems(new ItemStack(ModItems.mike_cooling_unit, 1))
.inputItems(new OreDictStack(IRON.plate(), 8), new ComparableStack(ModItems.coil_copper, 5), new ComparableStack(ModItems.coil_tungsten, 5), new ComparableStack(ModItems.motor, 2)));
.inputItems(new OreDictStack(DURA.plate(), 8), new ComparableStack(ModItems.coil_copper, 5), new ComparableStack(ModItems.coil_tungsten, 5), new ComparableStack(ModItems.motor, 2)));
this.register(new GenericRecipe("ass.fleijaigniter").setup(200, 100).outputItems(new ItemStack(ModItems.fleija_igniter, 1))
.inputItems(new OreDictStack(TI.plate(), 6), new OreDictStack(SA326.wireFine(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal())));
this.register(new GenericRecipe("ass.fleijacore").setup(600, 100).outputItems(new ItemStack(ModItems.fleija_core, 1))

View File

@ -1844,11 +1844,6 @@ public class ModItems {
public static Item wrench_flipped;
public static Item memespoon;
public static Item saw;
public static Item bat;
public static Item bat_nail;
public static Item golf_club;
public static Item pipe_rusty;
public static Item pipe_lead;
public static Item reer_graar;
public static Item stopsign;
@ -1960,10 +1955,10 @@ public class ModItems {
public static Item rod_of_discord;
public static Item cape_radiation;
public static Item cape_gasmask;
public static Item cape_schrabidium;
public static Item cape_hidden;
@Deprecated public static Item cape_radiation;
@Deprecated public static Item cape_gasmask;
@Deprecated public static Item cape_schrabidium;
@Deprecated public static Item cape_hidden;
public static Item nuke_starter_kit;
public static Item nuke_advanced_kit;
@ -3708,7 +3703,7 @@ public class ModItems {
battery_spark = new Item().setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_spark");
battery_trixite = new Item().setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":battery_trixite");
battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_generic_new");
battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_creative_new");
battery_creative = new ItemBatteryCreative().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new");
cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power");
@ -4319,10 +4314,10 @@ public class ModItems {
wings_murk = new WingsMurk().setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk");
wings_limp = new WingsMurk().setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp");
cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation");
cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask");
cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium");
cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_hidden").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown");
cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation");
cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask");
cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium");
cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_hidden").setCreativeTab(null).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown");
schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer");
shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original");
@ -4345,11 +4340,6 @@ public class ModItems {
.addAbility(IWeaponAbility.VAMPIRE, 4)
.addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("mese_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mese_gavel");
saw = new ModSword(MainRegistry.enumToolMaterialSaw).setUnlocalizedName("weapon_saw").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":saw");
bat = new ModSword(MainRegistry.enumToolMaterialBat).setUnlocalizedName("weapon_bat").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat");
bat_nail = new ModSword(MainRegistry.enumToolMaterialBatNail).setUnlocalizedName("weapon_bat_nail").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat_nail");
golf_club = new ModSword(MainRegistry.enumToolMaterialGolfClub).setUnlocalizedName("weapon_golf_club").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":golf_club");
pipe_rusty = new ModSword(MainRegistry.enumToolMaterialPipeRusty).setUnlocalizedName("weapon_pipe_rusty").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":pipe_rusty");
pipe_lead = new ModSword(MainRegistry.enumToolMaterialPipeLead).setUnlocalizedName("weapon_pipe_lead").setFull3D().setTextureName(RefStrings.MODID + ":pipe_lead");
reer_graar = new ModSword(MainRegistry.tMatTitan).setUnlocalizedName("reer_graar").setFull3D().setTextureName(RefStrings.MODID + ":reer_graar_hd");
stopsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("stopsign").setTextureName(RefStrings.MODID + ":stopsign");
@ -4986,7 +4976,6 @@ public class ModItems {
GameRegistry.registerItem(plant_item, plant_item.getUnlocalizedName());
//Teleporter Parts
//GameRegistry.registerItem(telepad, telepad.getUnlocalizedName());
GameRegistry.registerItem(entanglement_kit, entanglement_kit.getUnlocalizedName());
//Bomb Parts
@ -5955,11 +5944,6 @@ public class ModItems {
GameRegistry.registerItem(wrench_archineer, wrench_archineer.getUnlocalizedName());
GameRegistry.registerItem(wrench_flipped, wrench_flipped.getUnlocalizedName());
GameRegistry.registerItem(memespoon, memespoon.getUnlocalizedName());
GameRegistry.registerItem(saw, saw.getUnlocalizedName());
GameRegistry.registerItem(bat, bat.getUnlocalizedName());
GameRegistry.registerItem(bat_nail, bat_nail.getUnlocalizedName());
GameRegistry.registerItem(golf_club, golf_club.getUnlocalizedName());
GameRegistry.registerItem(pipe_rusty, pipe_rusty.getUnlocalizedName());
GameRegistry.registerItem(pipe_lead, pipe_lead.getUnlocalizedName());
GameRegistry.registerItem(reer_graar, reer_graar.getUnlocalizedName());
GameRegistry.registerItem(stopsign, stopsign.getUnlocalizedName());

View File

@ -1,6 +1,5 @@
package com.hbm.items.armor;
import java.util.List;
import java.util.stream.IntStream;
import org.lwjgl.opengl.GL11;
@ -90,8 +89,7 @@ public class ArmorModel extends ItemArmor {
@SideOnly(Side.CLIENT)
public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) {
if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey)
return;
if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) return;
if(gogglesBlurs == null) gogglesBlurs = IntStream.range(0, 6)
.mapToObj(i -> new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_goggles_" + i + ".png"))
@ -123,11 +121,4 @@ public class ArmorModel extends ItemArmor {
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_BLEND);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(this == ModItems.cape_radiation) list.add("Avalible for everyone");
if(this == ModItems.cape_gasmask) list.add("Avalible for everyone");
if(this == ModItems.cape_schrabidium) list.add("Avalible for everyone");
}
}

View File

@ -94,7 +94,7 @@ public class ItemScraps extends ItemAutogen {
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) {
return I18nUtil.resolveKey(matName);
} else {
return ("" + StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", matName)).trim();
return ("" + StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", StatCollector.translateToLocal(matName))).trim();
}
}
@ -110,7 +110,6 @@ public class ItemScraps extends ItemAutogen {
list.add(Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)));
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) {
list.add(Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)));
if(contents.material.smeltable == contents.material.smeltable.ADDITIVE) list.add(EnumChatFormatting.DARK_RED + "Additive, not castable!");
}
}

View File

@ -41,12 +41,11 @@ public class ItemOreDensityScanner extends Item {
int tier = BedrockOre.getTier(totalLevel);
FluidStack boreFluid = BedrockOre.getBoreFluid(totalLevel);
ChatBuilder builder = ChatBuilder.start("Tier " + tier);
ChatBuilder builder = ChatBuilder.start("Tier " + tier).color(EnumChatFormatting.YELLOW);
if(boreFluid != null) {
builder.next(" - " + boreFluid.fill + "mB ")
.nextTranslation(boreFluid.type.getUnlocalizedName());
}
builder.color(EnumChatFormatting.YELLOW);
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(builder.flush(), 777 + BedrockOreType.values().length, 4000), player);
}

View File

@ -10,26 +10,15 @@ import net.minecraft.item.ItemSword;
public class ModSword extends ItemSword {
public ModSword(ToolMaterial p_i45356_1_) {
super(p_i45356_1_);
public ModSword(ToolMaterial mat) {
super(mat);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
{
if(this == ModItems.saw)
list.add("Prepare for your examination!");
if(this == ModItems.bat)
list.add("Do you like hurting other people?");
if(this == ModItems.bat_nail)
list.add("Or is it a classic?");
if(this == ModItems.golf_club)
list.add("Property of Miami Beach Golf Club.");
if(this == ModItems.pipe_rusty)
list.add("Ouch! Ouch! Ouch!");
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(this == ModItems.pipe_lead)
list.add("Manually override anything by smashing it with this pipe.");
//list.add("I'm going to attempt a manual override on this wall.");
list.add("I'm going to attempt a manual override on this wall.");
if(this == ModItems.reer_graar) {
list.add("Call now!");
list.add("555-10-3728-ZX7-INFINITE");

View File

@ -72,7 +72,7 @@ public class XFactory40mm {
Lego.standardExplode(bullet, mop, 5F); bullet.setDead();
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead();
if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) {
EntityLivingBase living = (EntityLivingBase) mop.entityHit;
@ -82,7 +82,7 @@ public class XFactory40mm {
}
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower());
vnt.setBlockAllocator(new BlockAllocatorStandard());
vnt.setBlockProcessor(new BlockProcessorStandard());
@ -100,7 +100,7 @@ public class XFactory40mm {
};
public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) {
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return;
World world = bullet.worldObj;
Lego.standardExplode(bullet, mop, 3F);
EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL);

View File

@ -115,11 +115,6 @@ public class MainRegistry {
public static ToolMaterial tMatDesh = EnumHelper.addToolMaterial("HBM_DESH", 2, 0, 7.5F, 2.0F, 10);
public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 60);
public static ToolMaterial enumToolMaterialSaw = EnumHelper.addToolMaterial("SAW", 2, 750, 2.0F, 3.5F, 25);
public static ToolMaterial enumToolMaterialBat = EnumHelper.addToolMaterial("BAT", 0, 500, 1.5F, 3F, 25);
public static ToolMaterial enumToolMaterialBatNail = EnumHelper.addToolMaterial("BATNAIL", 0, 450, 1.0F, 4F, 25);
public static ToolMaterial enumToolMaterialGolfClub = EnumHelper.addToolMaterial("GOLFCLUB", 1, 1000, 2.0F, 5F, 25);
public static ToolMaterial enumToolMaterialPipeRusty = EnumHelper.addToolMaterial("PIPERUSTY", 1, 350, 1.5F, 4.5F, 25);
public static ToolMaterial enumToolMaterialPipeLead = EnumHelper.addToolMaterial("PIPELEAD", 1, 250, 1.5F, 3F, 25);
public static ToolMaterial enumToolMaterialBottleOpener = EnumHelper.addToolMaterial("OPENER", 1, 250, 1.5F, 0.5F, 200);
@ -1605,6 +1600,11 @@ public class MainRegistry {
ignoreMappings.add("hbm:item.battery_sc_lead");
ignoreMappings.add("hbm:item.battery_sc_americium");
ignoreMappings.add("hbm:item.overfuse");
ignoreMappings.add("hbm:item.weapon_saw");
ignoreMappings.add("hbm:item.weapon_bat");
ignoreMappings.add("hbm:item.weapon_bat_nail");
ignoreMappings.add("hbm:item.weapon_golf_club");
ignoreMappings.add("hbm:item.weapon_pipe_rusty");
/// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -139,7 +139,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem
frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord);
}
if(this.didProcess && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) {
if(this.didProcess && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 30) {
if(audio == null) {
audio = createAudioLoop();
audio.startSound();

View File

@ -16,6 +16,8 @@ import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.main.NTMSounds;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.*;
import com.hbm.util.BobMathUtil;
import com.hbm.util.fauxpointtwelve.DirPos;
@ -47,6 +49,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
public float angle;
public float prevAngle;
private AudioWrapper audio;
public FluidTank tank;
@ -113,6 +116,29 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
if(worldObj.rand.nextInt(20) == 0 && MainRegistry.proxy.me().getDistance(xCoord + 0.5, yCoord + 6, zCoord + 0.5) < 50) {
worldObj.spawnParticle("cloud", xCoord + worldObj.rand.nextDouble(), yCoord + 6.5D, zCoord + worldObj.rand.nextDouble(), 0.0, 0.1, 0.0);
}
if(MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 25) {
if(audio == null) {
audio = createAudioLoop();
audio.startSound();
} else if(!audio.isPlaying()) {
audio = rebootAudio(audio);
}
audio.keepAlive();
audio.updateVolume(this.getVolume(1F));
audio.updatePitch(0.75F);
} else {
if(audio != null) {
audio.stopSound();
audio = null;
}
}
} else {
if(audio != null) {
audio.stopSound();
audio = null;
}
}
}
@ -134,6 +160,19 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
}
}
@Override public AudioWrapper createAudioLoop() {
return MainRegistry.proxy.getLoopedSound(NTMSounds.CHEMPLANT_LOOP, xCoord, yCoord, zCoord, 1F, 15F, 0.75F, 15);
}
@Override public void onChunkUnload() {
if(audio != null) { audio.stopSound(); audio = null; }
}
@Override public void invalidate() {
super.invalidate();
if(audio != null) { audio.stopSound(); audio = null; }
}
protected DirPos[] getConPos() {
return new DirPos[] {

View File

@ -28,7 +28,7 @@ import com.hbm.util.CrucibleUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.fluid.IFluidStandardTransceiver;
import api.hbm.fluidmk2.IFluidStandardTransceiverMK2;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -43,7 +43,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IGUIProvider, IFluidCopiable, IConditionalInvAccess, IConfigurableMachine {
public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting implements IFluidStandardTransceiverMK2, IGUIProvider, IFluidCopiable, IConditionalInvAccess, IConfigurableMachine {
public FluidTank[] tanks;
public boolean isProgressing;
@ -95,13 +95,13 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
for(DirPos pos : getSteamPos()) {
this.trySubscribe(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
if(tanks[2].getFill() > 0) this.tryProvide(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}
if(tanks[0].getTankType() != Fluids.NONE) for(DirPos pos : getFluidPos()) {
this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
}
if(smoke.getFill() > 0) this.sendFluid(smoke, worldObj, xCoord + rot.offsetX, yCoord + 5, zCoord + rot.offsetZ, Library.POS_Y);
if(smoke.getFill() > 0) this.tryProvide(smoke, worldObj, xCoord + rot.offsetX, yCoord + 5, zCoord + rot.offsetZ, Library.POS_Y);
if(this.output != null) {
@ -137,13 +137,14 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
this.markChanged();
}
if(this.canProcess(recipe)) {
float speed = Math.max((float) burnHeat, 1);
this.progress += speed / recipe.duration;
float processSpeed = Math.max((float) burnHeat, 1);
float steamUseMult = (float)(10 * Math.log10(processSpeed) + 1);
if(this.canProcess(recipe, steamUseMult)) {
this.progress += processSpeed / recipe.duration;
speed = (float)(13 * Math.log10(speed) + 1);
tanks[1].setFill((int) (tanks[1].getFill() - recipe.steam * speed));
steamUsed += recipe.steam * speed;
tanks[1].setFill((int) (tanks[1].getFill() - recipe.steam * steamUseMult));
steamUsed += recipe.steam * steamUseMult;
this.isProgressing = true;
if(this.progress >= 1F) {
@ -301,7 +302,7 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
};
}
public boolean canProcess(RotaryFurnaceRecipe recipe) {
public boolean canProcess(RotaryFurnaceRecipe recipe, float steamUseMult) {
if(this.burnTime <= 0) return false;
@ -310,10 +311,8 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
if(this.tanks[0].getFill() < recipe.fluid.fill) return false;
}
float speed = Math.max((float) burnHeat, 1);
if(tanks[1].getFill() < recipe.steam * speed) return false;
if(tanks[2].getMaxFill() - tanks[2].getFill() < recipe.steam * speed / 100) return false;
if(tanks[1].getFill() < recipe.steam * steamUseMult) return false;
if(tanks[2].getMaxFill() - tanks[2].getFill() < recipe.steam * steamUseMult / 100) return false;
if(this.steamUsed > 100) return false;
if(this.output != null) {

View File

@ -39,9 +39,18 @@ public abstract class TileEntityPipelineBase extends TileEntityPipeBaseNT {
connected.add(new int[] {x, y, z});
FluidNode node = (FluidNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, this.type.getNetworkProvider());
node.recentlyChanged = true;
node.addConnection(new DirPos(x, y, z, ForgeDirection.UNKNOWN));
if(this.node == null || this.node.expired) {
if(this.shouldCreateNode()) {
this.node = (FluidNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, type.getNetworkProvider());
if(this.node == null || this.node.expired) {
this.node = this.createNode(type);
UniNodespace.createNode(worldObj, this.node);
}
}
}
this.node.recentlyChanged = true;
this.node.addConnection(new DirPos(x, y, z, ForgeDirection.UNKNOWN));
this.markDirty();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

Some files were not shown because too many files have changed in this diff Show More