package com.hbm.main; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.util.ChatComponentText; import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; public class ModEventHandler { public static boolean showMessage = true; public static int meteorShower = 0; @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { if(showMessage) { event.player.addChatMessage(new ChatComponentText("Loaded world with Hbm's Nuclear Tech Mod " + RefStrings.VERSION + " for Minecraft 1.7.10!")); } showMessage = !showMessage; } @SubscribeEvent public void worldTick(WorldTickEvent event) { if(event.world != null && !event.world.isRemote && event.world.provider.isSurfaceWorld() && MainRegistry.enableMeteorStrikes) { if(event.world.rand.nextInt(meteorShower > 0 ? MainRegistry.meteorShowerChance : MainRegistry.meteorStrikeChance) == 0) { if(!event.world.playerEntities.isEmpty()) { EntityPlayer p = (EntityPlayer)event.world.playerEntities.get(event.world.rand.nextInt(event.world.playerEntities.size())); if(p.dimension == 0) { EntityMeteor meteor = new EntityMeteor(event.world); meteor.posX = p.posX + event.world.rand.nextInt(201) - 100; meteor.posY = 384; meteor.posZ = p.posZ + event.world.rand.nextInt(201) - 100; meteor.motionX = event.world.rand.nextDouble() - 0.5; meteor.motionY = -2.5; meteor.motionZ = event.world.rand.nextDouble() - 0.5; event.world.spawnEntityInWorld(meteor); } } } if(meteorShower > 0) { meteorShower--; if(meteorShower == 0) MainRegistry.logger.info("Ended meteor shower."); } if(event.world.rand.nextInt(MainRegistry.meteorStrikeChance * 100) == 0 && MainRegistry.enableMeteorShowers) { meteorShower = (int)(MainRegistry.meteorShowerDuration * 0.75 + MainRegistry.meteorShowerDuration * 0.25 * event.world.rand.nextFloat()); MainRegistry.logger.info("Started meteor shower! Duration: " + meteorShower); } } } @SubscribeEvent public void enteringChunk(EnteringChunk evt) { if(evt.entity instanceof EntityMissileBaseAdvanced) { ((EntityMissileBaseAdvanced)evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); } } /*@SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { if(e.smelting.getItem().equals(ModItems.ingot_titanium)) { e.player.addStat(MainRegistry.achievementGetTitanium, 1); } }*/ @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { Item item = e.crafting.getItem(); if(item == ModItems.gun_mp40) { e.player.addStat(MainRegistry.achFreytag, 1); } if(item == ModItems.piston_selenium || item == ModItems.gun_b92) { e.player.addStat(MainRegistry.achSelenium, 1); } if(item == ModItems.battery_potatos) { e.player.addStat(MainRegistry.achPotato, 1); } if(item == ModItems.gun_revolver_pip) { e.player.addStat(MainRegistry.achC44, 1); } } /*@SubscribeEvent public void itemCollected(PlayerEvent.ItemPickupEvent e) { if(e.pickedUp.getEntityItem().equals(ModItems.nothing)) { //e.player.addStat(MainRegistry.achievementGetAmblygonite, 1); } }*/ }