Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.twixtor.twixrpg.handlers;
- import com.twixtor.twixrpg.Base;
- import net.minecraft.client.Minecraft;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.SharedMonsterAttributes;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.world.World;
- import net.minecraftforge.client.event.RenderGameOverlayEvent;
- import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
- import net.minecraftforge.common.IExtendedEntityProperties;
- import net.minecraftforge.event.entity.EntityEvent.EntityConstructing;
- import net.minecraftforge.event.entity.EntityJoinWorldEvent;
- import net.minecraftforge.event.entity.living.LivingDeathEvent;
- import cpw.mods.fml.common.eventhandler.EventPriority;
- import cpw.mods.fml.common.eventhandler.SubscribeEvent;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- @SideOnly(Side.CLIENT)
- public class LevelTickHandler implements IExtendedEntityProperties {
- public final static String EXT_PROP_NAME = "ExtendedPlayer";
- public static int rewardXp = 0;
- public static int currentXp;
- public static int currentLevel;
- public static int armor;
- public LevelTickHandler() {
- }
- @Override
- public void loadNBTData(NBTTagCompound compound) {
- System.out.println("[EXT PROPS] Loading extended properties from NBT.");
- NBTTagCompound nbt = (NBTTagCompound) compound.getTag(EXT_PROP_NAME);
- currentXp = nbt.getInteger("Experience");
- System.out.println("[TUT PROPS] Data from NBT: " + currentXp);
- }
- @SubscribeEvent
- public void onFirstJoinWorld(EntityJoinWorldEvent event) {
- if (event.entity instanceof EntityPlayer) {
- EntityPlayer player = (EntityPlayer) event.entity;
- setLevel(getLevel(currentXp), player);
- }
- }
- @SubscribeEvent(priority = EventPriority.NORMAL)
- public void onRenderExperienceBar(RenderGameOverlayEvent event) {
- if (event.type == ElementType.HEALTH) {
- event.setCanceled(true);
- }
- if (event.type == ElementType.FOOD) {
- event.setCanceled(true);
- }
- if (event.type == ElementType.AIR) {
- event.setCanceled(true);
- }
- if (event.type == ElementType.ARMOR) {
- event.setCanceled(true);
- }
- if (event.type == ElementType.EXPERIENCE) {
- event.setCanceled(true);
- }
- }
- @SubscribeEvent
- public void onLivingDeathDrop(LivingDeathEvent event) {
- if (event.source.getEntity() instanceof EntityPlayer) {
- EntityPlayer player = Minecraft.getMinecraft().thePlayer;
- if (MobList.mcEasy(event.entity)) {
- System.out.println("Low XP");
- rewardXp = 5;
- currentXp += rewardXp;
- player.getEntityData().setInteger("Experience", currentXp);
- }
- else if (MobList.mcMedium(event.entity)) {
- System.out.println("Medium XP");
- rewardXp = 10;
- currentXp += rewardXp;
- player.getEntityData().setInteger("Experience", currentXp);
- setLevel(getLevel(currentLevel), player);
- }
- else if (MobList.mcHard(event.entity)) {
- System.out.println("High XP");
- rewardXp = 80;
- currentXp += rewardXp;
- player.getEntityData().setInteger("Experience", currentXp);
- setLevel(getLevel(currentLevel), player);
- }
- else {
- System.out.println("Unknown Entity Killed (Adding Low XP");
- rewardXp = 2;
- currentXp += rewardXp;
- System.out.println("Current XP: " + Base.xp);
- }
- setLevel(getLevel(currentXp), player);
- System.out.println("Level: " + currentLevel + "XP: " + currentXp);
- }
- }
- public static int getLevel(int currentXp) {
- if (currentXp <=10) {
- currentLevel = 0;
- }
- else if (currentXp > 10 && currentXp <= 30) {
- currentLevel = 1;
- }
- else if (currentXp > 30 && currentXp <= 60) {
- currentLevel = 2;
- }
- else if (currentXp > 60 && currentXp <= 80) {
- currentLevel = 3;
- }
- else if (currentXp > 80 && currentXp <= 120) {
- currentLevel = 4;
- }
- else if (currentXp > 120 && currentXp <= 200) {
- currentLevel = 5;
- }
- else if (currentXp > 200 && currentXp <= 280) {
- currentLevel = 6;
- }
- else if (currentXp > 280 && currentXp <= 470) {
- currentLevel = 7;
- }
- else if (currentXp > 470 && currentXp <= 600) {
- currentLevel = 8;
- }
- else if (currentXp > 600 && currentXp <= 720) {
- currentLevel = 9;
- }
- else if (currentXp > 720 && currentXp <= 900) {
- currentLevel = 10;
- }
- else if (currentXp > 900 && currentXp <= 1200) {
- currentLevel = 11;
- }
- else if (currentXp > 1200 && currentXp <= 1800) {
- currentLevel = 12;
- }
- else if (currentXp > 1800 && currentXp <= 2500) {
- currentLevel = 13;
- }
- else if (currentXp > 2500 && currentXp <= 4000) {
- currentLevel = 14;
- }
- else if (currentXp > 4000 && currentXp <= 6500) {
- currentLevel = 15;
- }
- return currentLevel;
- }
- public static void setLevel(int level, EntityPlayer player) {
- if (currentLevel == 0) {
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(6.0D);
- System.out.println("Set Level 0");
- }
- if (level == 1) {
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(7.0D);
- System.out.println("Set Level 1");
- }
- if (level == 2) {
- System.out.println("Set Level 2");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(8.0D);
- }
- if (level == 3) {
- System.out.println("Set Level 3");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(9.0D);
- }
- if (level == 4) {
- System.out.println("Set Level 4");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(10.0D);
- }
- if (level == 5) {
- System.out.println("Set Level 5");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(11.0D);
- }
- if (level == 6) {
- System.out.println("Set Level 6");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(12.0D);
- }
- if (level == 7) {
- System.out.println("Set Level 7");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(13.0D);
- }
- if (level == 8) {
- System.out.println("Set Level 8");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(14.0D);
- }
- if (level == 9) {
- System.out.println("Set Level 9");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(15.0D);
- }
- if (level == 10) {
- System.out.println("Set Level 10");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(16.0D);
- }
- if (level == 11) {
- System.out.println("Set Level 11");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(17.0D);
- }
- if (level == 12) {
- System.out.println("Set Level 12");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(18.0D);
- }
- if (level == 13) {
- System.out.println("Set Level 13");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(19.0D);
- }
- if (level == 14) {
- System.out.println("Set Level 14");
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth)
- .setBaseValue(20.0D);
- }
- }
- public static int getArmor() {
- EntityPlayer player = Minecraft.getMinecraft().thePlayer;
- return armor;
- }
- @Override
- public void saveNBTData(NBTTagCompound compound) {
- System.out.println("[EXT PROPS] Writing extended properties to NBT.");
- NBTTagCompound nbt = new NBTTagCompound();
- nbt.setInteger("Experience", currentXp);
- compound.setTag(EXT_PROP_NAME, nbt);
- }
- @Override
- public void init(Entity entity, World world) {
- System.out.println("[EXT PROPS] Initializing extended properties.");
- }
- @SubscribeEvent
- public void onEntityConstructing(EntityConstructing event) {
- if (event.entity instanceof EntityPlayer) {
- if (event.entity.getExtendedProperties("ExtendedProps") == null) {
- System.out
- .println("[EXT PROPS] Registering extended properties.");
- event.entity.registerExtendedProperties("ExtendedProps",
- new LevelTickHandler());
- if (event.entity.getExtendedProperties("ExtendedProps") != null) {
- System.out
- .println("[EXT PROPS] Extended properties registered successfully.");
- }
- } else {
- System.out
- .println("[EXT PROPS] Extended properties already exist.");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement