Jump to content

FelipeMunhoz

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by FelipeMunhoz

  1. There is a gui that displays the current cosmo package com.pegasusgamer.saintseiyamod.gui.overlays; import com.pegasusgamer.saintseiyamod.capabilities.cosmo.CosmoProvider; import com.pegasusgamer.saintseiyamod.capabilities.cosmo.ICosmo; import com.pegasusgamer.saintseiyamod.util.Reference; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class CosmoGUI { public static class GUIRenderEventClass { @SubscribeEvent(priority = EventPriority.NORMAL) public void onRenderGui(RenderGameOverlayEvent event) { if (!event.isCancelable() && event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE) { Minecraft mc = Minecraft.getMinecraft(); mc.renderEngine.bindTexture(new ResourceLocation(Reference.MOD_ID+":textures/gui/cosmo_bar_overlay.png")); EntityPlayer player = mc.player; ICosmo cosmo = player.getCapability(CosmoProvider.COSMO_CAP, null); int posX = event.getResolution().getScaledWidth() / 2 + 10; int posY = event.getResolution().getScaledHeight() - 45; //Retorna caso o player esteja no modo criativo if(player.isCreative()) return; //Desenha a barra de cosmo na tela mc.ingameGUI.drawTexturedModalRect(posX, posY, 0, 0, 81, 5); int barWidht = (int)((cosmo.getCosmo()/cosmo.getLimit())*81); mc.ingameGUI.drawTexturedModalRect(posX, posY, 0, 5, barWidht, 5); //Desenha o texto com quantidade de cosmo atual e maxima int stringSize = ((cosmo.getCosmo()+" / "+cosmo.getLimit()).toString().length()*4); mc.fontRenderer.drawStringWithShadow((int)cosmo.getCosmo()+" / "+(int)cosmo.getLimit(), (posX+41)-(int)(stringSize/2), posY-8, -13421569); } } } }
  2. Sorry package com.pegasusgamer.saintseiyamod.events; import com.pegasusgamer.saintseiyamod.capabilities.cosmo.CosmoProvider; import com.pegasusgamer.saintseiyamod.capabilities.cosmo.ICosmo; import net.minecraft.client.Minecraft; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerPickupXpEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; import net.minecraftforge.fml.common.gameevent.TickEvent.PlayerTickEvent; public class CosmoEventHandler { @SubscribeEvent public void onPlayeTick (PlayerTickEvent event) { if(event.phase == Phase.END) { EntityPlayer player = event.player; //if (!player.world.isRemote) return; ICosmo cosmo = player.getCapability(CosmoProvider.COSMO_CAP, null); //Regeneração padrão do cosmo se o mesmo estiver abaixo do limite if(cosmo.getCosmo() < cosmo.getLimit()) cosmo.increaseCosmo(cosmo.getRegen()/20); //Define o cosmo atual para o cosmo maximo se o mesmo passar do limite if(cosmo.getCosmo() > cosmo.getLimit()) cosmo.setCosmo(cosmo.getLimit()); } } /** * Copy data from dead player to the new player */ @SubscribeEvent public void onPlayerClone(PlayerEvent.Clone event) { EntityPlayer player = event.getEntityPlayer(); ICosmo cosmo = player.getCapability(CosmoProvider.COSMO_CAP, null); ICosmo oldCosmo = event.getOriginal().getCapability(CosmoProvider.COSMO_CAP, null); //Define o cosmo atual para metade do cosmo anterior a morte. cosmo.setCosmo(oldCosmo.getCosmo()/2); //Define o limite de cosmo para o anterior subtraido da quantidade de xp dropada cosmo.setLimit(oldCosmo.getLimit()-Math.min((event.getOriginal().experienceLevel*7), 100)); //Define a regeneração de cosmo para a anterior a morte. cosmo.setRegen(oldCosmo.getRegen()); } @SubscribeEvent public void onPlayerPickupXp(PlayerPickupXpEvent event) { EntityPlayer player = event.getEntityPlayer(); ICosmo cosmo = player.getCapability(CosmoProvider.COSMO_CAP, null); //Aumenta o limite de cosmo ao coletar xp na mesma proporção cosmo.increaseLimit(event.getOrb().getXpValue()); } }
  3. Can someone point me to where I went wrong? I'm trying to add a new ability to the player, everything works fine, but the data is not persisting! Sorry for my english The CosmoStorage class: The CosmoProvider class: The CapabilityHandler class: The CommonProxy class:
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.