Merge branch 'HbmMods:master' into rulang121

This commit is contained in:
Raaaaaaaaaay 2026-05-26 11:17:31 +03:00 committed by GitHub
commit 2889bf9008
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 1658 additions and 1387 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
@ -55,4 +56,4 @@
* Fixed blast furnace NEI handler not cycling through all valid material shapes
* Fixed RoR transmitter sending empty signals when unused mappings apply
* Fixed hopper IO for battery sockets being entirely broken
* Fixed cargo elevators not dropping the correct amount of segments
* Fixed cargo elevators not dropping the correct amount of segments

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

@ -141,16 +141,17 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack(KEY_BROWN, 3)));
// powders
String autoCyclotron = "autoswitch.cyclotron";
this.register(new GenericRecipe("ass.partlith").setup(40, 100).outputItems(new ItemStack(ModItems.part_lithium, 8))
.inputItems(new OreDictStack(LI.dust(), 1)));
.inputItems(new OreDictStack(LI.dust(), 1)).setGroup(autoCyclotron, INSTANCE));
this.register(new GenericRecipe("ass.partberyl").setup(40, 100).outputItems(new ItemStack(ModItems.part_beryllium, 8))
.inputItems(new OreDictStack(BE.dust(), 1)));
.inputItems(new OreDictStack(BE.dust(), 1)).setGroup(autoCyclotron, INSTANCE));
this.register(new GenericRecipe("ass.partcoal").setup(40, 100).outputItems(new ItemStack(ModItems.part_carbon, 8))
.inputItems(new OreDictStack(COAL.dust(), 1)));
.inputItems(new OreDictStack(COAL.dust(), 1)).setGroup(autoCyclotron, INSTANCE));
this.register(new GenericRecipe("ass.partcop").setup(40, 100).outputItems(new ItemStack(ModItems.part_copper, 8))
.inputItems(new OreDictStack(CU.dust(), 1)));
.inputItems(new OreDictStack(CU.dust(), 1)).setGroup(autoCyclotron, INSTANCE));
this.register(new GenericRecipe("ass.partplut").setup(40, 100).outputItems(new ItemStack(ModItems.part_plutonium, 8))
.inputItems(new OreDictStack(PU.dust(), 1)));
.inputItems(new OreDictStack(PU.dust(), 1)).setGroup(autoCyclotron, INSTANCE));
// bunker blocks
this.register(new GenericRecipe("ass.cmbtile").setup(100, 100).outputItems(new ItemStack(ModBlocks.cmb_brick, 8))

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

@ -40,7 +40,8 @@ public class ItemRenderMK108 extends ItemRenderWeaponBase {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mk108_tex);
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

@ -132,6 +132,7 @@ armorMod.type.special=Spezial
ass.nitra=Nitra zu Munition
autoswitch=Teil der Rezeptgruppe "%s"$Rezept ändert sich basierend auf das erste Item
autoswitch.cyclotron=Zyklotron-Pulverkisten
autoswitch.pile=Wiederaufbereitung Chicago-Pile-Brennstoff
autoswitch.plate=Wiederaufbereitung Plattenbrennstoff
autoswitch.plates=Metallplatten
@ -4409,7 +4410,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

@ -187,6 +187,7 @@ armorMod.type.special=Special
ass.nitra=Nitra to Ammunition
autoswitch=Part of auto switch group "%s"$Recipe changes based on first ingredient
autoswitch.cyclotron=Cyclotron Powder Boxes
autoswitch.pile=Reprocessing Chicago Pile Rods
autoswitch.plate=Reprocessing Plate Fuel
autoswitch.plates=Metal Plates
@ -5657,7 +5658,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