This commit is contained in:
HbmMods 2026-05-25 17:46:01 +02:00
parent c99d1da3bf
commit 3b00c69440
14 changed files with 1649 additions and 1381 deletions

View File

@ -16,6 +16,7 @@
* Successor to the BAT9k
* Larger footprint, way more storage space
* Needs to be placed on a proper foundation or else it'll sink into the ground
* Legacy BAT9ks can be recycled in a tier 3 anvil
* AUTOCAL Automatic Calculator
* Highly advanced programmable RoR device
* Can send and receive signals and do calculations with the same system as NTM's calculator

View File

@ -2,7 +2,6 @@ package com.hbm.inventory.gui;
import java.awt.Desktop;
import java.io.File;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
@ -71,10 +70,7 @@ public class GUIScreenRadioAUTOCAL extends GuiScreen {
if(!uploadFolder.exists()) uploadFolder.mkdir();
if(!script.exists()) script.createNewFile();
script.setExecutable(false);
Class oclass = Class.forName("java.awt.Desktop");
Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object) null, new Object[0]);
oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, new Object[] { script.toURI() });
//oclass.getMethod("edit", File.class).invoke(object, new Object[] { script });
Desktop.getDesktop().browse(script.toURI());
} catch(Throwable ex) { MainRegistry.logger.error("Couldn't open link", ex); }
}

View File

@ -631,10 +631,8 @@ public class AnvilRecipes extends SerializableRecipe {
public static void registerConstructionSirens() {
for(int i = 1; i < 21; i++) {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModItems.siren_track, 1, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModItems.siren_track, 1, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
}
}
public static void registerConstructionUpgrades() { }
@ -738,12 +736,10 @@ public class AnvilRecipes extends SerializableRecipe {
}
).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.barrel_tcalloy),
new ComparableStack(ModBlocks.machine_bat9000, 1, 1),
new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.ingot_titanium, 2)),
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 4)),
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.50F),
new AnvilOutput(new ItemStack(ModItems.ingot_tcalloy, 1), 0.25F)
new AnvilOutput(new ItemStack(ModItems.plate_welded, 4, Mats.MAT_TCALLOY.id)),
new AnvilOutput(new ItemStack(ModItems.plate_steel, 16))
}
).setTier(3));

View File

@ -945,6 +945,16 @@ public class Orchestras {
if(timer == 60) ctx.config.getReceivers(stack)[0].getMagazine(stack).reloadAction(stack, ctx.inventory);
}
if(type == GunAnimation.INSPECT) {
int yeetHorizontal = 750;
int untilImpact = yeetHorizontal * 9 / 15;
int delay = 250;
for(int i = 0; i < 3; i++) {
if(timer == (untilImpact + delay * i) / 50) entity.worldObj.playSoundAtEntity(entity, NTMSounds.GUN_IMPACT, 0.5F, 1.5F);
}
}
};
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_CHEMTHROWER = (stack, ctx) -> {

View File

@ -260,7 +260,24 @@ public class XFactory40mm {
case JAMMED: return new BusAnimation()
.addBus("LID", new BusAnimationSequence().hold(250).addPos(45, 0, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_UP))
.addBus("LIFT", new BusAnimationSequence().hold(1000).addPos(1, 0, 0, 100, IType.SIN_UP).addPos(0, 0, 0, 150, IType.SIN_FULL));
case INSPECT: return new BusAnimation();
case INSPECT:
int yeetHorizontal = 750;
int untilImpact = yeetHorizontal * 9 / 15;
int delay = 250;
int height = 6;
int arcUp = untilImpact * 5 / 8;
int arcDown = untilImpact * 3 / 8;
return new BusAnimation()
.addBus("LIFT", new BusAnimationSequence().hold(untilImpact).addPos(1, 0, 0, 50, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_FULL).hold(delay - 150).addPos(1, 0, 0, 50, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_FULL).hold(delay - 150).addPos(1, 0, 0, 50, IType.SIN_UP).addPos(0, 0, 0, 100, IType.SIN_FULL))
.addBus("GRENH1", new BusAnimationSequence().setPos(9, 0, 0).addPos(-6, 0, 0, yeetHorizontal))
.addBus("GRENV1", new BusAnimationSequence().setPos(0, -2, 0).addPos(0, height, 0, arcUp, IType.SIN_DOWN).addPos(0, 2, 0, arcDown, IType.SIN_UP).addPos(0, 3, 0, yeetHorizontal - untilImpact, IType.SIN_DOWN))
.addBus("GRENS1", new BusAnimationSequence().addPos(360 * 2, 0, 0, untilImpact).setPos(0, 0, 0).addPos(360 * 1, 0, 0, yeetHorizontal - untilImpact))
.addBus("GRENH2", new BusAnimationSequence().setPos(9, 0, 0).hold(delay).addPos(-6, 0, 0, yeetHorizontal))
.addBus("GRENV2", new BusAnimationSequence().setPos(0, -2, 0).hold(delay).addPos(0, height, 0, arcUp, IType.SIN_DOWN).addPos(0, 2, 0, arcDown, IType.SIN_UP).addPos(0, 3, 0, yeetHorizontal - untilImpact, IType.SIN_DOWN))
.addBus("GRENS2", new BusAnimationSequence().hold(delay).addPos(360 * 2, 0, 0, untilImpact).setPos(0, 0, 0).addPos(360 * 1, 0, 0, yeetHorizontal - untilImpact))
.addBus("GRENH3", new BusAnimationSequence().setPos(9, 0, 0).hold(delay * 2).addPos(-6, 0, 0, yeetHorizontal))
.addBus("GRENV3", new BusAnimationSequence().setPos(0, -2, 0).hold(delay * 2).addPos(0, height, 0, arcUp, IType.SIN_DOWN).addPos(0, 2, 0, arcDown, IType.SIN_UP).addPos(0, 3, 0, yeetHorizontal - untilImpact, IType.SIN_DOWN))
.addBus("GRENS3", new BusAnimationSequence().hold(delay * 2).addPos(360 * 2, 0, 0, untilImpact).setPos(0, 0, 0).addPos(360 * 1, 0, 0, yeetHorizontal - untilImpact));
}
return null;
};

View File

@ -93,7 +93,6 @@ public class XWeaponModManager {
Item[] wsteelGuns = new Item[] {
ModItems.gun_star_f, ModItems.gun_star_f_akimbo,
ModItems.gun_g3, ModItems.gun_g3_zebra,
ModItems.gun_stinger,
ModItems.gun_mk108,
ModItems.gun_chemthrower };
Item[] ferroGuns = new Item[] {

View File

@ -235,6 +235,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_reader, 4), new Object[] { " G ", "IRI", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_controller, 4), new Object[] { " G ", "IRI", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) });
addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
addRecipeAuto(new ItemStack(ModBlocks.radio_autocal, 1), new Object[] { "TAR", "PAP", "PAP", 'T', ModBlocks.radio_torch_sender, 'R', ModBlocks.radio_torch_receiver, 'A', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'P', CU.plateCast() });
addRecipeAuto(DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() });
addRecipeAuto(DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() });

View File

@ -41,6 +41,7 @@ public class ItemRenderMK108 extends ItemRenderWeaponBase {
double scale = 0.375D;
GL11.glScaled(scale, scale, scale);
boolean doesYeet = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("GRENH1") != null;
boolean doesCycle = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("CYCLE") != null;
boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("BELT") != null;
boolean useShellCount = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("SHELLS") != null;
@ -56,6 +57,36 @@ public class ItemRenderMK108 extends ItemRenderWeaponBase {
GL11.glShadeModel(GL11.GL_SMOOTH);
if(doesYeet) {
double[][] horizontal = new double[][] {
HbmAnimations.getRelevantTransformation("GRENH1"),
HbmAnimations.getRelevantTransformation("GRENH2"),
HbmAnimations.getRelevantTransformation("GRENH3"),
};
double[][] vertical = new double[][] {
HbmAnimations.getRelevantTransformation("GRENV1"),
HbmAnimations.getRelevantTransformation("GRENV2"),
HbmAnimations.getRelevantTransformation("GRENV3"),
};
double[][] spin = new double[][] {
HbmAnimations.getRelevantTransformation("GRENS1"),
HbmAnimations.getRelevantTransformation("GRENS2"),
HbmAnimations.getRelevantTransformation("GRENS3"),
};
for(int i = 0; i < 3; i++) {
if(horizontal[i][0] <= -4) continue;
GL11.glPushMatrix();
GL11.glTranslated(horizontal[i][0], vertical[i][1], 0);
GL11.glTranslated(0, 0, -2.3125);
GL11.glRotated(-90, 1, 0, 0);
GL11.glRotated(-spin[i][0], 0, 1, 0);
GL11.glTranslated(0, 0, 2.3125);
ResourceManager.mk108.renderPart("Grenade");
GL11.glPopMatrix();
}
}
GL11.glTranslated(0, -1, -8);
GL11.glRotated(equip[0], 1, 0, 0);
GL11.glTranslated(0, 1, 8);

View File

@ -65,6 +65,7 @@ public class RenderThresher extends TileEntitySpecialRenderer implements IItemRe
GL11.glTranslated(0, 0.5, -9);
GL11.glRotated(angle, 1, 0, 0);
GL11.glTranslated(0, -0.5, 9);
GL11.glTranslated(0.01, 0, 0);
ResourceManager.thresher.renderPart("Front");
GL11.glTranslated(0, 0.5, -11);

View File

@ -4409,7 +4409,7 @@ tile.machine_autocrafter.name=Automatische Werkbank
tile.machine_autosaw.name=Automatische Kreissäge
tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl$-Kohleteer-Kreosot
tile.machine_autosaw.suspended=Angehalten
tile.machine_bat9000.name=Big-Ass Tank 9000
tile.machine_bat9000.name=Big-Ass Tank 9000 (LEGACY)
tile.machine_battery.name=Energiespeicherblock (LEGACY)
tile.machine_battery_potato.name=Kartoffelbatterieblock (LEGACY)
tile.machine_battery_redd.name=FEnSU

View File

@ -5657,7 +5657,7 @@ tile.machine_autocrafter.name=Automatic Crafting Table
tile.machine_autosaw.name=Automatic Buzz Saw
tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil$-Coal Tar Creosote
tile.machine_autosaw.suspended=Suspended
tile.machine_bat9000.name=Big-Ass Tank 9000
tile.machine_bat9000.name=Big-Ass Tank 9000 (LEGACY)
tile.machine_battery.name=Energy Storage Block (LEGACY)
tile.machine_battery_potato.name=Potato Battery Block (LEGACY)
tile.machine_battery_redd.name=FEnSU

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,216 @@
# Blender v2.79 (sub 0) OBJ File: 'vending_machine.blend'
# www.blender.org
o Obamna
v -0.500000 0.000000 0.500000
v 0.500000 0.000000 0.500000
v -0.500000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 2.000000 0.500000
v 0.500000 2.000000 0.500000
v -0.500000 2.000000 -0.500000
v 0.500000 2.000000 -0.500000
v 0.500000 0.500000 0.312500
v 0.500000 0.250000 0.312500
v 0.500000 0.500000 -0.187500
v 0.500000 0.250000 -0.187500
v 0.375000 0.500000 -0.187500
v 0.375000 0.500000 0.312500
v 0.375000 0.250000 0.312500
v 0.375000 0.250000 -0.187500
v 0.500000 1.750000 0.375000
v 0.500000 0.625000 0.375000
v 0.500000 1.750000 -0.250000
v 0.500000 0.625000 -0.250000
v 0.250000 1.750000 -0.250000
v 0.250000 1.750000 0.375000
v 0.250000 0.625000 0.375000
v 0.250000 0.625000 -0.250000
v 0.500000 1.750000 -0.250000
v 0.500000 1.750000 0.375000
v 0.500000 0.625000 0.375000
v 0.500000 0.625000 -0.250000
vt 0.875000 -0.000000
vt 0.750000 0.216216
vt 0.750000 -0.000000
vt 0.750000 0.648649
vt 0.875000 0.864865
vt 0.750000 0.864865
vt 0.718750 0.648649
vt 0.640625 0.702703
vt 0.640625 0.648649
vt 0.625000 0.216216
vt 0.500000 0.648649
vt 0.500000 0.216216
vt 1.000000 0.216216
vt 0.875000 0.648649
vt 0.875000 0.216216
vt 0.625000 0.648649
vt 0.609375 0.702703
vt 0.640625 0.945946
vt 0.609375 0.945946
vt 0.671875 0.027027
vt 0.734375 0.081081
vt 0.671875 0.081081
vt 0.750000 0.081081
vt 0.734375 0.027027
vt 0.750000 0.027027
vt 0.656250 0.027027
vt 0.656250 0.081081
vt 0.734375 0.000000
vt 0.671875 0.000000
vt 0.671875 0.108108
vt 0.734375 0.108108
vt 0.750000 0.945946
vt 0.718750 0.702703
vt 0.750000 0.702703
vt 0.718750 0.945946
vt 0.843750 0.351351
vt 0.773438 0.324324
vt 0.835938 0.324324
vt 0.640625 1.000000
vt 0.718750 1.000000
vt 0.835938 0.270270
vt 0.773438 0.270270
vt 0.765625 0.351351
vt 0.843750 0.594595
vt 0.765625 0.351351
vt 0.843750 0.594595
vt 0.765625 0.594595
vt 1.000000 0.648649
vt 0.765625 0.594595
vt 0.843750 0.351351
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 0.0000
s off
f 3/1/1 2/2/1 1/3/1
f 6/4/2 7/5/2 5/6/2
f 20/7/2 23/8/2 18/9/2
f 1/10/3 7/11/3 3/12/3
f 3/13/4 8/14/4 4/15/4
f 2/2/5 5/16/5 1/10/5
f 18/17/4 22/18/4 17/19/4
f 15/20/6 13/21/6 14/22/6
f 11/23/5 16/24/5 12/25/5
f 10/26/4 14/22/4 9/27/4
f 12/28/2 15/20/2 10/29/2
f 9/30/1 13/21/1 11/31/1
f 19/32/5 24/33/5 20/34/5
f 23/8/6 21/35/6 22/18/6
f 20/36/6 9/37/6 11/38/6
f 17/39/1 21/35/1 19/40/1
f 12/41/6 2/2/6 4/15/6
f 10/42/6 9/37/6 18/43/6
f 11/38/6 12/41/6 4/15/6
f 6/4/6 19/44/6 8/14/6
f 27/45/6 25/46/6 26/47/6
f 3/1/1 4/15/1 2/2/1
f 6/4/2 8/14/2 7/5/2
f 20/7/2 24/33/2 23/8/2
f 1/10/3 5/16/3 7/11/3
f 3/13/4 7/48/4 8/14/4
f 2/2/5 6/4/5 5/16/5
f 18/17/4 23/8/4 22/18/4
f 15/20/6 16/24/6 13/21/6
f 11/23/5 13/21/5 16/24/5
f 10/26/4 15/20/4 14/22/4
f 12/28/2 16/24/2 15/20/2
f 9/30/1 14/22/1 13/21/1
f 19/32/5 21/35/5 24/33/5
f 23/8/6 24/33/6 21/35/6
f 20/36/6 18/43/6 9/37/6
f 17/39/1 22/18/1 21/35/1
f 12/41/6 10/42/6 2/2/6
f 17/49/6 6/4/6 18/43/6
f 6/4/6 2/2/6 18/43/6
f 2/2/6 10/42/6 18/43/6
f 4/15/6 8/14/6 20/36/6
f 8/14/6 19/44/6 20/36/6
f 20/36/6 11/38/6 4/15/6
f 6/4/6 17/49/6 19/44/6
f 27/45/6 28/50/6 25/46/6
o Soda
v -0.500000 0.000000 0.500000
v 0.500000 0.000000 0.500000
v -0.500000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 2.000000 0.500000
v 0.500000 2.000000 0.500000
v -0.500000 2.000000 -0.500000
v 0.500000 2.000000 -0.500000
v 0.500000 0.500000 0.250000
v 0.500000 0.250000 0.250000
v 0.500000 0.500000 -0.250000
v 0.500000 0.250000 -0.250000
v 0.375000 0.500000 -0.250000
v 0.375000 0.500000 0.250000
v 0.375000 0.250000 0.250000
v 0.375000 0.250000 -0.250000
vt 0.375000 0.000000
vt 0.250000 0.216216
vt 0.250000 0.000000
vt 0.250000 0.648649
vt 0.375000 0.864865
vt 0.250000 0.864865
vt 0.343750 0.324324
vt 0.375000 0.216216
vt 0.375000 0.648649
vt 0.125000 0.216216
vt 0.000000 0.648649
vt 0.000000 0.216216
vt 0.500000 0.216216
vt 0.125000 0.648649
vt 0.343750 0.270270
vt 0.171875 0.027027
vt 0.234375 0.081081
vt 0.171875 0.081081
vt 0.250000 0.081081
vt 0.234375 0.027027
vt 0.250000 0.027027
vt 0.156250 0.027027
vt 0.156250 0.081081
vt 0.234375 0.000000
vt 0.171875 0.000000
vt 0.171875 0.108108
vt 0.234375 0.108108
vt 0.281250 0.324324
vt 0.500000 0.648649
vt 0.281250 0.270270
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
s off
f 31/51/7 30/52/7 29/53/7
f 34/54/8 35/55/8 33/56/8
f 39/57/9 32/58/9 36/59/9
f 29/60/10 35/61/10 31/62/10
f 31/63/11 36/59/11 32/58/11
f 30/52/12 33/64/12 29/60/12
f 40/65/9 30/52/9 32/58/9
f 43/66/9 41/67/9 42/68/9
f 39/69/12 44/70/12 40/71/12
f 38/72/11 42/68/11 37/73/11
f 40/74/8 43/66/8 38/75/8
f 37/76/7 41/67/7 39/77/7
f 37/78/9 36/59/9 34/54/9
f 30/52/9 37/78/9 34/54/9
f 31/51/7 32/58/7 30/52/7
f 34/54/8 36/59/8 35/55/8
f 39/57/9 40/65/9 32/58/9
f 29/60/10 33/64/10 35/61/10
f 31/63/11 35/79/11 36/59/11
f 30/52/12 34/54/12 33/64/12
f 40/65/9 38/80/9 30/52/9
f 43/66/9 44/70/9 41/67/9
f 39/69/12 41/67/12 44/70/12
f 38/72/11 43/66/11 42/68/11
f 40/74/8 44/70/8 43/66/8
f 37/76/7 42/68/7 41/67/7
f 37/78/9 39/57/9 36/59/9
f 30/52/9 38/80/9 37/78/9

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB