MineLittlePony/src/main/java/com/minelittlepony/hdskins/gui/GuiSkinsMineLP.java

103 lines
3.3 KiB
Java
Raw Normal View History

2016-11-16 23:45:04 -05:00
package com.minelittlepony.hdskins.gui;
2015-08-01 18:36:33 -04:00
2016-11-24 23:40:19 -05:00
import com.minelittlepony.MineLittlePony;
2016-11-16 23:45:04 -05:00
import com.minelittlepony.PonyManager;
import com.minelittlepony.gui.Button;
import com.minelittlepony.gui.IconicButton;
2015-08-01 18:36:33 -04:00
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
2015-08-01 18:36:33 -04:00
import com.voxelmodpack.hdskins.gui.EntityPlayerModel;
import com.voxelmodpack.hdskins.gui.GuiSkins;
import com.voxelmodpack.hdskins.skins.SkinServer;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.init.Items;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
2015-08-01 18:36:33 -04:00
import java.util.List;
/**
* Skin uploading GUI. Usually displayed over the main menu.
*/
public class GuiSkinsMineLP extends GuiSkins {
2015-08-01 18:36:33 -04:00
2018-06-10 18:54:50 +02:00
private PonyManager ponyManager = MineLittlePony.getInstance().getManager();
private Button btnModeWet;
private Button btnModeDry;
private boolean isWet = false;
private static final String[] panoramas = new String[] {
"minelp:textures/cubemap/sugarcubecorner_%d.png",
"minelp:textures/cubemap/quillsandsofas_%d.png"
};
public GuiSkinsMineLP(List<SkinServer> servers) {
super(servers);
}
2015-08-01 18:36:33 -04:00
@Override
protected EntityPlayerModel getModel(GameProfile profile) {
return new EntityPonyModel(profile);
2015-08-01 18:36:33 -04:00
}
@Override
public void initGui() {
super.initGui();
addButton(btnModeWet = new IconicButton(width - 25, 137, sender -> {
setWet(true);
}).setIcon(new ItemStack(Items.WATER_BUCKET))).setEnabled(!isWet).setTooltip("minelp.mode.wet").setTooltipOffset(0, 10);
addButton(btnModeDry = new IconicButton(width - 25, 118, sender -> {
setWet(false);
}).setIcon(new ItemStack(Items.BUCKET))).setEnabled(isWet).setTooltip("minelp.mode.dry").setTooltipOffset(0, 10);
}
@Override
protected void initPanorama() {
int i = (int)Math.floor(Math.random() * panoramas.length);
panorama.setSource(panoramas[i]);
}
protected void setWet(boolean wet) {
if (wet == isWet) {
return;
}
mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.BLOCK_BREWING_STAND_BREW, 1));
isWet = wet;
localPlayer.releaseTextures();
btnModeDry.enabled = isWet;
btnModeWet.enabled = !isWet;
((EntityPonyModel)localPlayer).setWet(isWet);
((EntityPonyModel)remotePlayer).setWet(isWet);
}
2015-08-01 18:36:33 -04:00
@Override
public void onSetLocalSkin(Type type) {
super.onSetLocalSkin(type);
2016-11-24 23:40:19 -05:00
MineLittlePony.logger.debug("Invalidating old local skin, checking updated local skin");
2018-08-22 16:35:03 +02:00
if (ponyManager != null && type == Type.SKIN) {
ponyManager.removePony(localPlayer.getLocal(Type.SKIN).getTexture());
2017-06-16 01:41:36 -04:00
}
2015-08-01 18:36:33 -04:00
}
@Override
public void onSetRemoteSkin(Type type, ResourceLocation location, MinecraftProfileTexture profileTexture) {
super.onSetRemoteSkin(type, location, profileTexture);
2016-12-21 01:20:02 -05:00
MineLittlePony.logger.debug("Invalidating old remote skin, checking updated remote skin");
2018-08-22 16:35:03 +02:00
if (ponyManager != null && type == Type.SKIN) {
ponyManager.removePony(location);
2017-06-16 01:41:36 -04:00
}
2015-08-01 18:36:33 -04:00
}
}