mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-08-10 17:55:44 +00:00
yeet
This commit is contained in:
parent
af6f5f0509
commit
fc0418fda8
@ -16,8 +16,12 @@ import net.minecraft.world.WorldServer;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
||||||
|
|
||||||
public static final int DW_GRENADE = 3;
|
public static final int DW_GRENADE = 3;
|
||||||
|
public static final int DW_BOUNCES = 4;
|
||||||
|
|
||||||
|
public double prevSpin;
|
||||||
|
public double spin;
|
||||||
|
|
||||||
public EntityGrenadeUniversal(World world) {
|
public EntityGrenadeUniversal(World world) {
|
||||||
super(world);
|
super(world);
|
||||||
@ -29,21 +33,24 @@ public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
|||||||
copy.stackSize = 1;
|
copy.stackSize = 1;
|
||||||
this.dataWatcher.updateObject(DW_GRENADE, copy);
|
this.dataWatcher.updateObject(DW_GRENADE, copy);
|
||||||
|
|
||||||
this.setPosition(thrower.posX, thrower.posY + thrower.getEyeHeight(), thrower.posZ);
|
Vec3NT offset = new Vec3NT(0.25, -0.25, 0).rotateAroundYDeg(-thrower.rotationYaw + 180);
|
||||||
|
|
||||||
|
this.setPosition(thrower.posX + offset.xCoord, thrower.posY + thrower.getEyeHeight() + offset.yCoord, thrower.posZ + offset.zCoord);
|
||||||
|
|
||||||
Vec3NT yeet = new Vec3NT(thrower.getLookVec()).normalizeSelf().multiply(1D);
|
Vec3NT yeet = new Vec3NT(thrower.getLookVec()).normalizeSelf().multiply(1D);
|
||||||
this.addVelocity(yeet.xCoord, yeet.yCoord, yeet.zCoord);
|
this.addVelocity(yeet.xCoord, yeet.yCoord, yeet.zCoord);
|
||||||
|
this.setThrowableHeading(yeet.xCoord, yeet.yCoord, yeet.zCoord, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void entityInit() {
|
public void entityInit() {
|
||||||
super.entityInit();
|
super.entityInit();
|
||||||
this.dataWatcher.addObjectByDataType(DW_GRENADE, 5);
|
this.dataWatcher.addObjectByDataType(DW_GRENADE, 5);
|
||||||
|
this.dataWatcher.addObject(DW_BOUNCES, new Integer(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack getGrenadeItem() {
|
public ItemStack getGrenadeItem() { return this.dataWatcher.getWatchableObjectItemStack(DW_GRENADE); }
|
||||||
return this.dataWatcher.getWatchableObjectItemStack(DW_GRENADE);
|
public int getBounces() { return this.dataWatcher.getWatchableObjectInt(DW_BOUNCES); }
|
||||||
}
|
|
||||||
|
|
||||||
public EnumGrenadeShell getShell() { return ItemGrenadeUniversal.getShell(getGrenadeItem()); }
|
public EnumGrenadeShell getShell() { return ItemGrenadeUniversal.getShell(getGrenadeItem()); }
|
||||||
public EnumGrenadeFilling getFilling() { return ItemGrenadeUniversal.getFilling(getGrenadeItem()); }
|
public EnumGrenadeFilling getFilling() { return ItemGrenadeUniversal.getFilling(getGrenadeItem()); }
|
||||||
@ -55,6 +62,21 @@ public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
|||||||
|
|
||||||
EnumGrenadeFuze fuze = this.getFuze();
|
EnumGrenadeFuze fuze = this.getFuze();
|
||||||
if(fuze.updateTick != null) fuze.updateTick.accept(this);
|
if(fuze.updateTick != null) fuze.updateTick.accept(this);
|
||||||
|
|
||||||
|
if(worldObj.isRemote) {
|
||||||
|
this.prevSpin = this.spin;
|
||||||
|
|
||||||
|
if(this.getBounces() <= 0) {
|
||||||
|
this.spin += 15;
|
||||||
|
} else {
|
||||||
|
this.spin += Math.min(15, new Vec3NT(lastTickPosX - posX, 0, lastTickPosZ - posZ).lengthVector() * 50);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.spin >= 360) {
|
||||||
|
this.prevSpin -= 360;
|
||||||
|
this.spin -= 360;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -70,13 +92,14 @@ public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
|||||||
this.setPosition(mop.hitVec.xCoord + dir.offsetX * 0.05, mop.hitVec.yCoord + dir.offsetY * 0.05, mop.hitVec.zCoord + dir.offsetZ * 0.05);
|
this.setPosition(mop.hitVec.xCoord + dir.offsetX * 0.05, mop.hitVec.yCoord + dir.offsetY * 0.05, mop.hitVec.zCoord + dir.offsetZ * 0.05);
|
||||||
EnumGrenadeShell shell = this.getShell();
|
EnumGrenadeShell shell = this.getShell();
|
||||||
Vec3NT vec = new Vec3NT(this.motionX, this.motionY, this.motionZ);
|
Vec3NT vec = new Vec3NT(this.motionX, this.motionY, this.motionZ);
|
||||||
if(vec.lengthVector() > 0.5) {
|
if(vec.lengthVector() > 0.2) {
|
||||||
// TODO play bounce sound
|
worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.grenadeBounce", 1F, 1F);
|
||||||
}
|
}
|
||||||
if(dir.offsetX != 0) this.motionX *= -shell.getBounce(); else this.motionX *= 0.8;
|
if(dir.offsetX != 0) this.motionX *= -shell.getBounce(); else this.motionX *= 0.8;
|
||||||
if(dir.offsetY != 0) this.motionY *= -shell.getBounce(); else this.motionY *= 0.8;
|
if(dir.offsetY != 0) this.motionY *= -shell.getBounce(); else this.motionY *= 0.8;
|
||||||
if(dir.offsetZ != 0) this.motionZ *= -shell.getBounce(); else this.motionZ *= 0.8;
|
if(dir.offsetZ != 0) this.motionZ *= -shell.getBounce(); else this.motionZ *= 0.8;
|
||||||
if(worldObj instanceof WorldServer) TrackerUtil.sendTeleport((WorldServer) worldObj, this);
|
if(worldObj instanceof WorldServer) TrackerUtil.sendTeleport((WorldServer) worldObj, this);
|
||||||
|
this.dataWatcher.updateObject(DW_BOUNCES, this.getBounces() + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,10 +30,10 @@ public class ItemGrenadeShell extends ItemEnumMulti {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static enum EnumGrenadeShell {
|
public static enum EnumGrenadeShell {
|
||||||
FRAG(4, 20, 0.25D), // bonus fragmentation
|
FRAG(4, 20, 0.5D), // bonus fragmentation
|
||||||
STICK(4, 20, 0.1D), // thrown father
|
STICK(4, 20, 0.25D), // thrown father
|
||||||
TECH(2, 20, 0.25D), // casing with electronics for EMP/plasma
|
TECH(2, 20, 0.5D), // casing with electronics for EMP/plasma
|
||||||
NUKE(1, 20, 0.05D); // nuka grenade casing for high yield grenades
|
NUKE(1, 20, 0.25D); // nuka grenade casing for high yield grenades
|
||||||
/* ^
|
/* ^
|
||||||
* nice */
|
* nice */
|
||||||
|
|
||||||
|
|||||||
@ -131,18 +131,16 @@ public class ItemGrenadeUniversal extends Item implements IEquipReceiver {
|
|||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
||||||
// some demo crap
|
// some demo crap
|
||||||
/*list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.HE, EnumGrenadeFuze.S3));
|
list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.HE, EnumGrenadeFuze.S3));
|
||||||
list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.HE, EnumGrenadeFuze.IMPACT));
|
list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.HE, EnumGrenadeFuze.IMPACT));
|
||||||
list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.DEMO, EnumGrenadeFuze.S7));
|
list.add(make(EnumGrenadeShell.STICK, EnumGrenadeFilling.DEMO, EnumGrenadeFuze.S7));
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.POWDER, EnumGrenadeFuze.S3));
|
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.POWDER, EnumGrenadeFuze.S3));
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.FRAG, EnumGrenadeFuze.S3));
|
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.FRAG, EnumGrenadeFuze.S3));
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.FRAG, EnumGrenadeFuze.IMPACT));
|
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.FRAG, EnumGrenadeFuze.IMPACT));
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.INC, EnumGrenadeFuze.S7));
|
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.INC, EnumGrenadeFuze.S7));
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.CLUSTER, EnumGrenadeFuze.AIRBURST));
|
|
||||||
list.add(make(EnumGrenadeShell.NUKE, EnumGrenadeFilling.NUCLEAR, EnumGrenadeFuze.S15));*/
|
|
||||||
|
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.FRAG, EnumGrenadeFuze.S3));
|
|
||||||
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.CLUSTER, EnumGrenadeFuze.S3));
|
list.add(make(EnumGrenadeShell.FRAG, EnumGrenadeFilling.CLUSTER, EnumGrenadeFuze.S3));
|
||||||
|
list.add(make(EnumGrenadeShell.TECH, EnumGrenadeFilling.NUCLEAR, EnumGrenadeFuze.S15));
|
||||||
|
list.add(make(EnumGrenadeShell.NUKE, EnumGrenadeFilling.NUCLEAR, EnumGrenadeFuze.S15));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
|||||||
@ -582,6 +582,7 @@ public class ClientProxy extends ServerProxy {
|
|||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_b92, new ItemRenderGunAnim());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_b92, new ItemRenderGunAnim());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_fireext, new ItemRenderFireExt());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser());
|
MinecraftForgeClient.registerItemRenderer(ModItems.detonator_laser, new ItemRenderDetonatorLaser());
|
||||||
|
MinecraftForgeClient.registerItemRenderer(ModItems.grenade_universal, new ItemRenderGrenade());
|
||||||
//blocks
|
//blocks
|
||||||
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_roof), new ItemRenderDecoBlock());
|
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.steel_roof), new ItemRenderDecoBlock());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.conveyor_wand, new ItemRenderBlock(ModBlocks.conveyor, ModBlocks.conveyor_express, ModBlocks.conveyor_double, ModBlocks.conveyor_triple));
|
MinecraftForgeClient.registerItemRenderer(ModItems.conveyor_wand, new ItemRenderBlock(ModBlocks.conveyor, ModBlocks.conveyor_express, ModBlocks.conveyor_double, ModBlocks.conveyor_triple));
|
||||||
@ -678,6 +679,7 @@ public class ClientProxy extends ServerProxy {
|
|||||||
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade());
|
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade());
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade());
|
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade());
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade());
|
RenderingRegistry.registerEntityRenderingHandler(EntityDisperserCanister.class, new RenderGenericGrenade());
|
||||||
|
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeUniversal.class, new RenderGrenadeUniversal());
|
||||||
//missiles
|
//missiles
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom());
|
RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom());
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric());
|
RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric());
|
||||||
|
|||||||
@ -962,6 +962,7 @@ public class ResourceManager {
|
|||||||
|
|
||||||
public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj"));
|
public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj"));
|
||||||
public static final IModelCustom grenade_aschrab = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_aschrab.obj"));
|
public static final IModelCustom grenade_aschrab = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_aschrab.obj"));
|
||||||
|
public static final IModelCustom grenades = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenades.obj"));
|
||||||
|
|
||||||
public static final IModelCustom armor_bj = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/BJ.obj")).asVBO();
|
public static final IModelCustom armor_bj = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/BJ.obj")).asVBO();
|
||||||
public static final IModelCustom armor_hev = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/hev.obj")).asVBO();
|
public static final IModelCustom armor_hev = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/hev.obj")).asVBO();
|
||||||
@ -1103,6 +1104,10 @@ public class ResourceManager {
|
|||||||
|
|
||||||
public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png");
|
public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png");
|
||||||
public static final ResourceLocation grenade_aschrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_aschrab.png");
|
public static final ResourceLocation grenade_aschrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_aschrab.png");
|
||||||
|
public static final ResourceLocation grenade_frag_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/frag.png");
|
||||||
|
public static final ResourceLocation grenade_stick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/stick.png");
|
||||||
|
public static final ResourceLocation grenade_tech_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech.png");
|
||||||
|
public static final ResourceLocation grenade_nuka_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka.png");
|
||||||
|
|
||||||
public static final ResourceLocation bj_eyepatch = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_eyepatch.png");
|
public static final ResourceLocation bj_eyepatch = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_eyepatch.png");
|
||||||
public static final ResourceLocation bj_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_leg.png");
|
public static final ResourceLocation bj_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_leg.png");
|
||||||
|
|||||||
@ -0,0 +1,49 @@
|
|||||||
|
package com.hbm.render.entity.projectile;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
|
import com.hbm.entity.grenade.EntityGrenadeUniversal;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.render.item.ItemRenderGrenade;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.entity.Render;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class RenderGrenadeUniversal extends Render {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doRender(Entity entity, double x, double y, double z, float f0, float interp) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(x, y, z);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||||
|
|
||||||
|
EntityGrenadeUniversal grenade = (EntityGrenadeUniversal) entity;
|
||||||
|
|
||||||
|
double scale = 0.0625D;
|
||||||
|
GL11.glScaled(scale, scale, scale);
|
||||||
|
double yaw = grenade.prevRotationYaw + (grenade.rotationYaw - grenade.prevRotationYaw) * interp;
|
||||||
|
GL11.glRotated(yaw, 0, 1, 0);
|
||||||
|
|
||||||
|
double spin = grenade.prevSpin + (grenade.spin - grenade.prevSpin) * interp;
|
||||||
|
GL11.glRotated(spin, 1, 0, 0);
|
||||||
|
|
||||||
|
if(grenade.getBounces() > 0) {
|
||||||
|
GL11.glRotated(-80, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack stack = grenade.getGrenadeItem();
|
||||||
|
ItemRenderGrenade.renderGrenade(stack, null);
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected ResourceLocation getEntityTexture(Entity entity) {
|
||||||
|
return ResourceManager.grenade_frag_tex;
|
||||||
|
}
|
||||||
|
}
|
||||||
180
src/main/java/com/hbm/render/item/ItemRenderGrenade.java
Normal file
180
src/main/java/com/hbm/render/item/ItemRenderGrenade.java
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
package com.hbm.render.item;
|
||||||
|
|
||||||
|
import com.hbm.items.weapon.grenade.ItemGrenadeShell.EnumGrenadeShell;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.items.weapon.grenade.ItemGrenadeUniversal;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.RenderHelper;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.client.IItemRenderer;
|
||||||
|
|
||||||
|
public class ItemRenderGrenade implements IItemRenderer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||||
|
switch(type) {
|
||||||
|
case EQUIPPED:
|
||||||
|
case EQUIPPED_FIRST_PERSON:
|
||||||
|
case ENTITY:
|
||||||
|
case INVENTORY: return true;
|
||||||
|
default: return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
|
||||||
|
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderItem(ItemRenderType type, ItemStack stack, Object... data) {
|
||||||
|
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
|
|
||||||
|
if(type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
|
||||||
|
renderFirstPerson(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type == ItemRenderType.INVENTORY) {
|
||||||
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
|
GL11.glTranslated(8, 8, 0);
|
||||||
|
GL11.glScaled(-1, -1, -1);
|
||||||
|
GL11.glRotated(45, 0, 0, 1);
|
||||||
|
GL11.glRotated(150, 0, 1, 0);
|
||||||
|
GL11.glRotated(15, 1, 0, 0);
|
||||||
|
renderGrenade(stack, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type == ItemRenderType.EQUIPPED) {
|
||||||
|
GL11.glScaled(0.125, 0.125, 0.125);
|
||||||
|
GL11.glTranslated(3, 1, -0.5);
|
||||||
|
renderGrenade(stack, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type == ItemRenderType.ENTITY) {
|
||||||
|
GL11.glScaled(0.125, 0.125, 0.125);
|
||||||
|
renderGrenade(stack, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void renderFirstPerson(ItemStack stack) {
|
||||||
|
EnumGrenadeShell shell = ItemGrenadeUniversal.getShell(stack);
|
||||||
|
|
||||||
|
GL11.glScaled(0.125, 0.125, 0.125);
|
||||||
|
GL11.glTranslated(3, 1, -3);
|
||||||
|
GL11.glRotated(135, 0, -1, 0);
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.FRAG) {
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_frag_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Frag");
|
||||||
|
ResourceManager.grenades.renderPart("FragSpoon");
|
||||||
|
ResourceManager.grenades.renderPart("FragRing");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.STICK) {
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_stick_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Stick");
|
||||||
|
ResourceManager.grenades.renderPart("StickCap");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.TECH) {
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Tech");
|
||||||
|
ResourceManager.grenades.renderPart("TechRing");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.NUKE) {
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_nuka_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Nuka");
|
||||||
|
ResourceManager.grenades.renderPart("NukaSpoon");
|
||||||
|
ResourceManager.grenades.renderPart("NukaRing");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void renderGrenade(ItemStack stack, ItemRenderType renderType) {
|
||||||
|
EnumGrenadeShell shell = ItemGrenadeUniversal.getShell(stack);
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.FRAG) {
|
||||||
|
if(renderType == ItemRenderType.INVENTORY) {
|
||||||
|
GL11.glScaled(3, 3, 3);
|
||||||
|
GL11.glTranslated(0, -2, 0);
|
||||||
|
}
|
||||||
|
if(renderType == null) {
|
||||||
|
GL11.glTranslated(0, -2, 0);
|
||||||
|
}
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_frag_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Frag");
|
||||||
|
if(renderType != null) {
|
||||||
|
ResourceManager.grenades.renderPart("FragSpoon");
|
||||||
|
ResourceManager.grenades.renderPart("FragRing");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.STICK) {
|
||||||
|
if(renderType == ItemRenderType.INVENTORY) {
|
||||||
|
GL11.glScaled(2, 2, 2);
|
||||||
|
GL11.glTranslated(0, -4.5, 0);
|
||||||
|
}
|
||||||
|
if(renderType == ItemRenderType.EQUIPPED) {
|
||||||
|
GL11.glTranslated(0, -2, 0);
|
||||||
|
}
|
||||||
|
if(renderType == null) {
|
||||||
|
GL11.glTranslated(0, -2, 0);
|
||||||
|
}
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_stick_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Stick");
|
||||||
|
if(renderType != null) {
|
||||||
|
ResourceManager.grenades.renderPart("StickCap");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.TECH) {
|
||||||
|
if(renderType == ItemRenderType.INVENTORY) {
|
||||||
|
GL11.glScaled(3.5, 3.5, 3.5);
|
||||||
|
GL11.glTranslated(0, -1.75, 0);
|
||||||
|
}
|
||||||
|
if(renderType == ItemRenderType.EQUIPPED) {
|
||||||
|
GL11.glScaled(1.5, 1.5, 1.5);
|
||||||
|
GL11.glTranslated(0.5, -1, 0.5);
|
||||||
|
}
|
||||||
|
if(renderType == null) {
|
||||||
|
GL11.glScaled(1.5, 1.5, 1.5);
|
||||||
|
GL11.glTranslated(0, -1, 0);
|
||||||
|
}
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Tech");
|
||||||
|
if(renderType != null) {
|
||||||
|
ResourceManager.grenades.renderPart("TechRing");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(shell == EnumGrenadeShell.NUKE) {
|
||||||
|
if(renderType == ItemRenderType.INVENTORY) {
|
||||||
|
GL11.glScaled(2.5, 2.5, 2.5);
|
||||||
|
GL11.glTranslated(0, -2.75, 0);
|
||||||
|
}
|
||||||
|
if(renderType == ItemRenderType.EQUIPPED) {
|
||||||
|
GL11.glScaled(1.5, 1.5, 1.5);
|
||||||
|
GL11.glTranslated(0.5, -3, 0.5);
|
||||||
|
}
|
||||||
|
if(renderType == null) {
|
||||||
|
GL11.glScaled(1.5, 1.5, 1.5);
|
||||||
|
GL11.glTranslated(0, -3, 0);
|
||||||
|
}
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_nuka_tex);
|
||||||
|
ResourceManager.grenades.renderPart("Nuka");
|
||||||
|
if(renderType != null) {
|
||||||
|
ResourceManager.grenades.renderPart("NukaSpoon");
|
||||||
|
ResourceManager.grenades.renderPart("NukaRing");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
4625
src/main/resources/assets/hbm/models/weapons/grenades.obj
Normal file
4625
src/main/resources/assets/hbm/models/weapons/grenades.obj
Normal file
File diff suppressed because it is too large
Load Diff
@ -226,6 +226,7 @@
|
|||||||
"weapon.explosionSmallFar": {"category": "block", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]},
|
"weapon.explosionSmallFar": {"category": "block", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]},
|
||||||
"weapon.explosionTiny": {"category": "block", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]},
|
"weapon.explosionTiny": {"category": "block", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]},
|
||||||
"weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]},
|
"weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]},
|
||||||
|
"weapon.grenadeBounce": {"category": "block", "sounds": ["weapon/grenadeBounce1", "weapon/grenadeBounce2", "weapon/grenadeBounce3"]},
|
||||||
|
|
||||||
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},
|
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},
|
||||||
|
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounce1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounce1.ogg
Normal file
Binary file not shown.
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounce3.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounce3.ogg
Normal file
Binary file not shown.
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounnce2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/grenadeBounnce2.ogg
Normal file
Binary file not shown.
BIN
src/main/resources/assets/hbm/textures/models/grenades/frag.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/grenades/frag.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 819 B |
BIN
src/main/resources/assets/hbm/textures/models/grenades/nuka.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/grenades/nuka.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 968 B |
BIN
src/main/resources/assets/hbm/textures/models/grenades/stick.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/grenades/stick.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 669 B |
BIN
src/main/resources/assets/hbm/textures/models/grenades/tech.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/grenades/tech.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 796 B |
Loading…
x
Reference in New Issue
Block a user