Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ocdiary.theoink.handlers;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.gui.FontRenderer;
- import net.minecraft.client.gui.ScaledResolution;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.util.DamageSource;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraftforge.client.event.RenderGameOverlayEvent;
- import net.minecraftforge.event.entity.living.LivingFallEvent;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import net.minecraftforge.fml.common.gameevent.TickEvent;
- import ocdiary.theoink.TheOink;
- import ocdiary.theoink.items.food.OinkUltimatePorkChop;
- import java.awt.Color;
- @Mod.EventBusSubscriber
- public class UltChopEffectsHandler {
- private static int seconds = 2000 / 20;
- @SubscribeEvent
- public static void playerFalling(LivingFallEvent event){
- if(event.getEntity().world.isRemote){
- if(event.getEntity() instanceof EntityPlayer){
- EntityPlayer player = (EntityPlayer)event.getEntity();
- if(player.capabilities.isFlying){
- if(OinkUltimatePorkChop.flightTime == 0){
- if(player.getLastDamageSource() == DamageSource.FALL){
- event.setCanceled(true);
- }
- }
- }
- }
- }
- }
- @SubscribeEvent
- public static void playerFlying(TickEvent.PlayerTickEvent event){
- if(OinkUltimatePorkChop.flightTime >= 0){
- if(OinkUltimatePorkChop.flightTime == 2000){
- seconds = 2000 / 20;
- }
- if(event.player.capabilities.isCreativeMode) return;
- if(!event.player.capabilities.allowFlying)
- event.player.capabilities.allowFlying = true;
- OinkUltimatePorkChop.flightTime--;
- }else{
- event.player.capabilities.allowFlying = false;
- }
- }
- @SubscribeEvent
- public static void drawUPTime(RenderGameOverlayEvent.Post e){
- Minecraft mc = Minecraft.getMinecraft();
- FontRenderer fontRenderer = mc.fontRenderer;
- ScaledResolution scaled = e.getResolution();
- String str1 = "Ultimate Porkchop";
- String str2 = "Flight Time: ";
- int x1 = (mc.displayWidth / 2) - (fontRenderer.getStringWidth(str1) / 2);
- int x2 = (mc.displayWidth / 2) - (fontRenderer.getStringWidth(str2) / 2) - 10;
- int y1 = mc.displayHeight / 4;
- int y2 = y1 + 10;
- int y3 = y2 + 10;
- int ft = OinkUltimatePorkChop.flightTime;
- int thirds = seconds / 3;
- if(ft % 20 == 0){
- seconds--;
- }
- if(e.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE){
- if(seconds > 0) {
- drawText(fontRenderer, setStringToRainbow(str1), x1, y1);
- drawText(fontRenderer, str2, x2, y2);
- if(seconds >= thirds * 2){
- drawText(fontRenderer, TextFormatting.DARK_GREEN.toString() + seconds, x2, y3);
- }else if(seconds <= thirds * 2 && seconds >= thirds) {
- drawText(fontRenderer, TextFormatting.GOLD.toString() + seconds, x2, y3);
- }else if(seconds <= thirds && seconds > 20) {
- drawText(fontRenderer, TextFormatting.RED.toString() + seconds, x2, y3);
- }else if(seconds <= 20 && seconds > 0) {
- drawText(fontRenderer, TextFormatting.DARK_RED.toString() + seconds, x2, y3);
- }
- }
- }
- }
- private static String setStringToRainbow(String toConvert){
- StringBuilder builder = new StringBuilder();
- int j = 0;
- for(int i = 0; i < toConvert.length(); i++){
- if(TextFormatting.fromColorIndex(j) == null) j = 0;
- if(TextFormatting.fromColorIndex(j).equals(TextFormatting.getValueByName("black"))) j++;
- String formattedChar = TextFormatting.fromColorIndex(j).toString() + toConvert.charAt(i);
- builder.append(formattedChar);
- j++;
- }
- return builder.toString();
- }
- private static void drawText(FontRenderer fr, String text, int xPos, int yPos)
- {
- fr.drawStringWithShadow(text, xPos - (fr.getStringWidth(text) / 2), yPos, 0xFFFFFF);
- }
- }
Add Comment
Please, Sign In to add comment