mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
217 lines
9.3 KiB
Java
217 lines
9.3 KiB
Java
package com.hbm.main;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import com.hbm.entity.mob.EntityHunterChopper;
|
|
import com.hbm.entity.projectile.EntityChopperMine;
|
|
import com.hbm.handler.BulletConfigSyncingUtil;
|
|
import com.hbm.handler.BulletConfiguration;
|
|
import com.hbm.handler.GunConfiguration;
|
|
import com.hbm.interfaces.IHoldableWeapon;
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.items.tool.ItemGeigerCounter;
|
|
import com.hbm.items.weapon.ItemGunBase;
|
|
import com.hbm.lib.Library;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.packet.GunButtonPacket;
|
|
import com.hbm.packet.PacketDispatcher;
|
|
import com.hbm.render.misc.RenderAccessoryUtility;
|
|
import com.hbm.render.misc.RenderScreenOverlay;
|
|
import com.hbm.render.misc.RenderScreenOverlay.Crosshair;
|
|
import com.hbm.render.model.ModelCloak;
|
|
import com.hbm.saveddata.RadEntitySavedData;
|
|
import com.hbm.saveddata.RadiationSavedData;
|
|
import com.hbm.sound.MovingSoundChopper;
|
|
import com.hbm.sound.MovingSoundChopperMine;
|
|
import com.hbm.sound.MovingSoundCrashing;
|
|
import com.hbm.sound.MovingSoundPlayerLoop;
|
|
import com.hbm.sound.MovingSoundXVL1456;
|
|
import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
|
|
import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound;
|
|
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.entity.AbstractClientPlayer;
|
|
import net.minecraft.client.multiplayer.WorldClient;
|
|
import net.minecraft.client.renderer.EntityRenderer;
|
|
import net.minecraft.client.renderer.entity.RenderPlayer;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.util.ChunkCoordinates;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.world.chunk.Chunk;
|
|
import net.minecraftforge.client.event.MouseEvent;
|
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
|
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
|
|
import net.minecraftforge.client.event.RenderPlayerEvent;
|
|
import net.minecraftforge.client.event.sound.PlaySoundEvent17;
|
|
|
|
public class ModEventHandlerClient {
|
|
|
|
@SubscribeEvent
|
|
public void onOverlayRender(RenderGameOverlayEvent.Pre event) {
|
|
|
|
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
|
|
|
if(player.getUniqueID().toString().equals("c874fd4e-5841-42e4-8f77-70efd5881bc1"))
|
|
if(player.ticksExisted > 5 * 60 * 20)
|
|
Minecraft.getMinecraft().entityRenderer.debugViewDirection = 5;
|
|
|
|
if(event.type == ElementType.HOTBAR && player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBase) {
|
|
|
|
ItemGunBase gun = ((ItemGunBase)player.getHeldItem().getItem());
|
|
GunConfiguration gcfg = gun.mainConfig;
|
|
BulletConfiguration bcfg = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(ItemGunBase.getMagType(player.getHeldItem())));
|
|
|
|
Item ammo = bcfg.ammo;
|
|
int count = ItemGunBase.getMag(player.getHeldItem());
|
|
int max = gcfg.ammoCap;
|
|
|
|
if(gcfg.reloadType == gcfg.RELOAD_NONE) {
|
|
ammo = ItemGunBase.getBeltType(player, player.getHeldItem());
|
|
count = ItemGunBase.getBeltSize(player, ammo);
|
|
max = -1;
|
|
}
|
|
|
|
int dura = ItemGunBase.getItemWear(player.getHeldItem()) * 50 / gcfg.durability;
|
|
|
|
RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo, count, max, dura);
|
|
//RenderScreenOverlay.renderRadCounter(event.resolution, 0, Minecraft.getMinecraft().ingameGUI);
|
|
}
|
|
|
|
if(event.type == ElementType.HOTBAR) {
|
|
|
|
if(player.inventory.hasItem(ModItems.geiger_counter)) {
|
|
|
|
float rads = 0;
|
|
float abs = 0;
|
|
|
|
RadEntitySavedData data = RadEntitySavedData.getData(player.worldObj);
|
|
rads = data.getRadFromEntity(player);
|
|
|
|
RenderScreenOverlay.renderRadCounter(event.resolution, rads, Minecraft.getMinecraft().ingameGUI);
|
|
}
|
|
}
|
|
|
|
if(event.type == ElementType.CROSSHAIRS && player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) {
|
|
event.setCanceled(true);
|
|
|
|
if(!(player.getHeldItem().getItem() instanceof ItemGunBase && ((ItemGunBase)player.getHeldItem().getItem()).mainConfig.hasSights && player.isSneaking()))
|
|
RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, ((IHoldableWeapon)player.getHeldItem().getItem()).getCrosshair());
|
|
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void preRenderEvent(RenderPlayerEvent.Pre event) {
|
|
|
|
//event.setCanceled(true);
|
|
|
|
RenderPlayer renderer = event.renderer;
|
|
AbstractClientPlayer player = (AbstractClientPlayer)event.entityPlayer;
|
|
|
|
ResourceLocation cloak = RenderAccessoryUtility.getCloakFromPlayer(player);
|
|
|
|
//GL11.glRotated(180, 1, 0, 0);
|
|
|
|
if(cloak != null)
|
|
player.func_152121_a(Type.CAPE, cloak);
|
|
|
|
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IHoldableWeapon) {
|
|
renderer.modelBipedMain.aimedBow = true;
|
|
renderer.modelArmor.aimedBow = true;
|
|
renderer.modelArmorChestplate.aimedBow = true;
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void clickHandler(MouseEvent event) {
|
|
|
|
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
|
|
|
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBase) {
|
|
|
|
if(event.button == 0)
|
|
event.setCanceled(true);
|
|
|
|
ItemGunBase item = (ItemGunBase)player.getHeldItem().getItem();
|
|
|
|
if(event.button == 0 && !item.m1 && !item.m2) {
|
|
item.m1 = true;
|
|
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0));
|
|
item.startActionClient(player.getHeldItem(), player.worldObj, player, true);
|
|
}
|
|
else if(event.button == 1 && !item.m2 && !item.m1) {
|
|
item.m2 = true;
|
|
PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1));
|
|
item.startActionClient(player.getHeldItem(), player.worldObj, player, false);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void onPlaySound(PlaySoundEvent17 e) {
|
|
ResourceLocation r = e.sound.getPositionedSoundLocation();
|
|
|
|
WorldClient wc = Minecraft.getMinecraft().theWorld;
|
|
|
|
//Alright, alright, I give the fuck up, you've wasted my time enough with this bullshit. You win.
|
|
//A winner is you.
|
|
//Conglaturations.
|
|
//Fuck you.
|
|
|
|
if(r.toString().equals("hbm:misc.nullTau") && Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null)
|
|
{
|
|
EntityPlayer ent = Library.getClosestPlayerForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2);
|
|
|
|
if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop) == null) {
|
|
MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundXVL1456(new ResourceLocation("hbm:weapon.tauChargeLoop2"), ent, EnumHbmSound.soundTauLoop));
|
|
MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(0.5F);
|
|
} else {
|
|
if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() < 1.5F)
|
|
MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).setPitch(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundTauLoop).getPitch() + 0.01F);
|
|
}
|
|
}
|
|
|
|
if(r.toString().equals("hbm:misc.nullChopper") && Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null)
|
|
{
|
|
EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2);
|
|
|
|
if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundChopperLoop) == null) {
|
|
MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundChopper(new ResourceLocation("hbm:entity.chopperFlyingLoop"), ent, EnumHbmSound.soundChopperLoop));
|
|
MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundChopperLoop).setVolume(10.0F);
|
|
}
|
|
}
|
|
|
|
if(r.toString().equals("hbm:misc.nullCrashing") && Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null)
|
|
{
|
|
EntityHunterChopper ent = Library.getClosestChopperForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2);
|
|
|
|
if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundCrashingLoop) == null) {
|
|
MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundCrashing(new ResourceLocation("hbm:entity.chopperCrashingLoop"), ent, EnumHbmSound.soundCrashingLoop));
|
|
MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundCrashingLoop).setVolume(10.0F);
|
|
}
|
|
}
|
|
|
|
if(r.toString().equals("hbm:misc.nullMine") && Library.getClosestMineForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2) != null)
|
|
{
|
|
EntityChopperMine ent = Library.getClosestMineForSound(wc, e.sound.getXPosF(), e.sound.getYPosF(), e.sound.getZPosF(), 2);
|
|
|
|
if(MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundMineLoop) == null) {
|
|
MovingSoundPlayerLoop.globalSoundList.add(new MovingSoundChopperMine(new ResourceLocation("hbm:entity.chopperMineLoop"), ent, EnumHbmSound.soundMineLoop));
|
|
MovingSoundPlayerLoop.getSoundByPlayer(ent, EnumHbmSound.soundMineLoop).setVolume(10.0F);
|
|
}
|
|
}
|
|
|
|
for(MovingSoundPlayerLoop sounds : MovingSoundPlayerLoop.globalSoundList)
|
|
{
|
|
if(!sounds.init || sounds.isDonePlaying()) {
|
|
sounds.init = true;
|
|
sounds.setDone(false);
|
|
Minecraft.getMinecraft().getSoundHandler().playSound(sounds);
|
|
}
|
|
}
|
|
}
|
|
}
|