malicious gigglefish from the silly dimension

This commit is contained in:
Bob 2025-11-02 18:43:12 +01:00
parent 036c220317
commit b278d27b9b
12 changed files with 23185 additions and 37 deletions

View File

@ -23,6 +23,8 @@
* Ammo containers are now found in more itempools
* The arc furnace input queue can now be moved into the recipe grid if the lid is at least slightly open instead of requiring a fully opened lid
* This means that in system with slow input, the time window when items can be added to the arc furance is now more forgiving
* Pipe anchors now have a look overlay showing the currently configured fluid type
* Removed ammo duping using nitra, instead, four large piles can now be combined into an ammo container
## Fixed
* Fixed arc furnace only allowing electrodes to be inserted when the lid is down instead of up

View File

@ -1,11 +1,15 @@
package com.hbm.blocks.network;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.lib.Library;
import com.hbm.tileentity.network.TileEntityPipeAnchor;
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@ -16,9 +20,10 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class FluidPipeAnchor extends FluidDuctBase implements ITooltipProvider {
public class FluidPipeAnchor extends FluidDuctBase implements ITooltipProvider, ILookOverlay {
public FluidPipeAnchor() {
super(Material.iron);
@ -98,4 +103,19 @@ public class FluidPipeAnchor extends FluidDuctBase implements ITooltipProvider {
}
}
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(!(te instanceof TileEntityPipeBaseNT))
return;
TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te;
List<String> text = new ArrayList();
text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName());
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
}

View File

@ -422,6 +422,7 @@ public class MineralRecipes {
GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire });
GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small });
GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 4), new Object[] { "#", '#', ModItems.nitra });
GameRegistry.addRecipe(new ItemStack(ModItems.ammo_container, 1), new Object[] { "##", "##", '#', ModItems.nitra });
GameRegistry.addRecipe(new ItemStack(ModBlocks.glass_polarized, 4), new Object[] { "##", "##", '#', DictFrame.fromOne(ModItems.part_generic, EnumPartType.GLASS_POLARIZED) });
add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny);
add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium);

View File

@ -153,17 +153,6 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.MAGNET.ordinal()), new Object[] { "RGR", "GBG", "RGR", 'R', RUBBER.ingot(), 'G', GOLD.wireDense(), 'B', NB.block() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SIFTER.ordinal()), new Object[] { "IGI", "IGI", 'I', DURA.ingot(), 'G', ModBlocks.steel_grate });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.CANISTERS.ordinal()), new Object[] { " R ", "CCC", "SSS", 'R', RUBBER.pipe(), 'C', ModItems.canister_empty, 'S', STEEL.plate() });
//Nitra!
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M357_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_SP, 12), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P9_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_SP, 32), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.P22_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_SP, 8), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R556_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_SP, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.R762_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_SP, 4), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.BMG50_SP), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE, 3), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE), ModItems.nitra });
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE, 2), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.ROCKET_HE), ModItems.nitra });
//secrets!
CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_secret, EnumAmmoSecret.M44_EQUESTRIAN, 6), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.M44_JHP), DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) });

View File

@ -31,7 +31,7 @@ public class EntityMeteor extends Entity {
this.isImmuneToFire = true;
this.setSize(4F, 4F);
if(worldObj.isRemote)
this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 100F, 0.9F + this.rand.nextFloat() * 0.2F, 0);
this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 200F, 0.9F + this.rand.nextFloat() * 0.2F, 0);
}
public List<BlockPos> getBlocksInRadius(World world, int x, int y, int z, int radius) {
@ -114,7 +114,7 @@ public class EntityMeteor extends Entity {
worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5 + rand.nextFloat(), !safe);
if(WorldConfig.enableMeteorTails) {
ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 25);
ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 15);
ExplosionLarge.spawnParticles(worldObj, posX, posY + 5, posZ, 75);
ExplosionLarge.spawnParticles(worldObj, posX + 5, posY, posZ, 75);
@ -154,7 +154,7 @@ public class EntityMeteor extends Entity {
// Start playing the sound
EntityPlayer player = MainRegistry.proxy.me();
double distance = player.getDistanceSq(this.posX, this.posY, this.posZ);
if(distance < 110 * 110) {
if(distance < 210 * 210) {
this.audioFly.startSound();
}
}

View File

@ -13,19 +13,18 @@ public class RenderMeteor extends Render {
public RenderMeteor() { }
@Override
public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_,
float p_76986_9_) {
public void doRender(Entity meteor, double x, double y, double z, float p_76986_8_, float interp) {
GL11.glPushMatrix();
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
GL11.glTranslated(x, y, z);
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glRotatef(180, 1, 0, 0);
GL11.glRotatef((rocket.ticksExisted % 360) * 10, 1, 1, 1);
GL11.glRotatef((meteor.ticksExisted % 360 + interp) * 10, 1, 1, 1);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glScalef(5.0F, 5.0F, 5.0F);
renderBlock(getEntityTexture(rocket), 0, 0, 0);
renderBlock(getEntityTexture(meteor), 0, 0, 0);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
@ -37,53 +36,40 @@ public class RenderMeteor extends Render {
GL11.glTranslated(x, y, z);
GL11.glRotatef(180, 0F, 0F, 1F);
Tessellator tesseract = Tessellator.instance;
this.bindTexture(loc1);
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 1, 0);
tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 0, 0);
tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 0, 1);
tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 1, 0);
tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 0, 0);
tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 0, 1);
tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 1, 0);
tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 0, 0);
tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 0, 1);
tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 1, 0);
tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 0, 0);
tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 0, 1);
tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 1, 0);
tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 0, 0);
tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 0, 1);
tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.startDrawingQuads();
tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 1, 0);
tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 0, 0);
tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 0, 1);
tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 1, 1);
this.bindTexture(loc1);
tesseract.draw();
tesseract.draw();
GL11.glPopMatrix();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB