i hereby name thee "sexy"

This commit is contained in:
Bob 2025-06-22 16:11:06 +02:00
parent c2354adbc3
commit 3e3b651d11
8 changed files with 5128 additions and 7 deletions

View File

@ -12,7 +12,7 @@
* NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases
* NTM Extended Edition (Alcater): https://github.com/Alcatergit/Hbm-s-Nuclear-Tech-GIT/releases
* NTM Community Edition (WarFactory): https://codeberg.org/MrNorwood/Hbm-s-Nuclear-Tech-CE
* NTM Community Edition (WarFactory): https://github.com/MisterNorwood/Hbm-s-Nuclear-Tech-CE
For 1.18, try Martin's remake: https://codeberg.org/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases

View File

@ -76,7 +76,7 @@ public class GunFactoryClient {
MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex));
MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex));
MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderShredder(ResourceManager.sexy_tex));
MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderSexy());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex));
MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex));

View File

@ -373,10 +373,11 @@ public class XFactory12ga {
.setupStandardConfiguration()
.anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER)
).setUnlocalizedName("gun_autoshotgun_shredder");
ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
.dura(5_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
.rec(new Receiver(0)
.dmg(64F).delay(1).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
.dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
.mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus))
.offset(0.75, -0.125, -0.25)
.setupStandardFire().recoil(LAMBDA_RECOIL_SEXY))

View File

@ -884,6 +884,7 @@ public class ResourceManager {
public static final IModelCustom amat = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/amat.obj")).asVBO();
public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO();
public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/shredder.obj")).asVBO();
public static final IModelCustom sexy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/sexy.obj")).asVBO();
public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")).asVBO();
public static final IModelCustom mike_hawk = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mike_hawk.obj")).asVBO();
public static final IModelCustom minigun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/minigun.obj")).asVBO();
@ -1007,7 +1008,7 @@ public class ResourceManager {
public static final ResourceLocation amat_penance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat_penance.png");
public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png");
public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png");
public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy.png");
public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy_real_no_fake.png");
public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png");
public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png");
public static final ResourceLocation minigun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun.png");

View File

@ -0,0 +1,178 @@
package com.hbm.render.item.weapon.sedna;
import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
import com.hbm.util.BobMathUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
public class ItemRenderSexy extends ItemRenderWeaponBase {
@Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }
@Override
public float getViewFOV(ItemStack stack, float fov) {
float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp;
return fov * (1 - aimingProgress * 0.66F);
}
@Override
public void setupFirstPerson(ItemStack stack) {
GL11.glTranslated(0, 0, 0.875);
float offset = 0.8F;
/*standardAimingTransform(stack,
-1.25F * offset, -0.75F * offset, 3.25F * offset,
0, -5.25 / 8D, 1);*/
standardAimingTransform(stack,
-1F * offset, -0.75F * offset, 3F * offset,
-0.5F, -0.5F, 2F);
}
@Override
public void renderFirstPerson(ItemStack stack) {
ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem();
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex);
double scale = 0.375D;
GL11.glScaled(scale, scale, scale);
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP");
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
GL11.glTranslated(0, -1, -8);
GL11.glRotated(equip[0], 1, 0, 0);
GL11.glTranslated(0, 1, 8);
GL11.glTranslated(0, 0, recoil[2]);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.sexy.renderPart("Gun");
GL11.glPushMatrix();
//GL11.glTranslated(0, 0, -1);
ResourceManager.sexy.renderPart("Barrel");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0, 0.375);
//GL11.glScaled(1, 1, 0.75);
GL11.glTranslated(0, 0, -0.375);
ResourceManager.sexy.renderPart("RecoilSpring");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0.4375, -2.875);
//GL11.glRotated(60, 1, 0, 0);
GL11.glTranslated(0, -0.4375, 2.875);
ResourceManager.sexy.renderPart("Hood");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0.46875, -6.875);
//GL11.glRotated(60, 1, 0, 0);
GL11.glTranslated(0, -0.46875, 6.875);
ResourceManager.sexy.renderPart("Lever");
GL11.glPopMatrix();
GL11.glPushMatrix();
GL11.glTranslated(0, 0, -6.75);
//GL11.glScaled(1, 1, 0.75);
GL11.glTranslated(0, 0, 6.75);
ResourceManager.sexy.renderPart("LockSpring");
GL11.glPopMatrix();
ResourceManager.sexy.renderPart("Magazine");
/*renderShell(0, -0.375, 90, false);
renderShell(0.3125, -0.0625, 30, false);
renderShell(0.75, -0.125, -30, false);
renderShell(1.0625, -0.4375, -60, false);
renderShell(1.0625, -0.875, -90, false);
renderShell(1.0625, -1.3125, -90, false);*/
double p = 0.0625D;
renderShell(p * 0, p * -6, 90, true);
renderShell(p * 5, p * 1, 30, true);
renderShell(p * 12, p * -1, -30, true);
renderShell(p * 17, p * -6, -60, true);
renderShell(p * 17, p * -13, -90, true);
renderShell(p * 17, p * -20, -90, true);
GL11.glShadeModel(GL11.GL_FLAT);
}
@Override
public void setupThirdPerson(ItemStack stack) {
super.setupThirdPerson(stack);
double scale = 1.25D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(0, 0, 4);
}
@Override
public void setupInv(ItemStack stack) {
super.setupInv(stack);
double scale = 1.375D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(25, 1, 0, 0);
GL11.glRotated(45, 0, 1, 0);
GL11.glTranslated(0, 0.5, 0.25);
}
@Override
public void setupModTable(ItemStack stack) {
double scale = -9.5D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(90, 0, 1, 0);
GL11.glTranslated(0, 0, 0);
}
@Override
public void renderOther(ItemStack stack, ItemRenderType type) {
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex);
ResourceManager.sexy.renderPart("Gun");
ResourceManager.sexy.renderPart("Barrel");
ResourceManager.sexy.renderPart("RecoilSpring");
ResourceManager.sexy.renderPart("Hood");
ResourceManager.sexy.renderPart("Lever");
ResourceManager.sexy.renderPart("LockSpring");
ResourceManager.sexy.renderPart("Magazine");
double p = 0.0625D;
renderShell(p * 0, p * -6, 90, true);
renderShell(p * 5, p * 1, 30, true);
renderShell(p * 12, p * -1, -30, true);
renderShell(p * 17, p * -6, -60, true);
renderShell(p * 17, p * -13, -90, true);
renderShell(p * 17, p * -20, -90, true);
GL11.glShadeModel(GL11.GL_FLAT);
}
public static void renderShell(double x0, double x1, double y0, double y1, double rot0, double rot1, boolean shell, double interp) {
renderShell(BobMathUtil.interp(x0, x1, interp), BobMathUtil.interp(y0, y1, interp), BobMathUtil.interp(rot0, rot1, interp), shell);
}
public static void renderShell(double x, double y, double rot, boolean shell) {
GL11.glPushMatrix();
GL11.glTranslated(x, 0.375 + y, 0);
GL11.glRotated(rot, 0, 0, 1);
GL11.glTranslated(0, -0.375, 0);
ResourceManager.sexy.renderPart("Belt");
if(shell) ResourceManager.sexy.renderPart("Shell");
GL11.glPopMatrix();
}
}

View File

@ -76,9 +76,8 @@ public class BobMathUtil {
);
}
public static double interp(double x, double y, float interp) {
return x + (y - x) * interp;
}
public static double interp(double x, double y, float interp) { return x + (y - x) * interp; }
public static double interp(double x, double y, double interp) { return x + (y - x) * interp; }
public static double getAngleFrom2DVecs(double x1, double z1, double x2, double z2) {

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB