resent-1.8/src/main/java/net/minecraft/tileentity/TileEntityEnchantmentTable.java
ThisIsALegitUsername 98a62293f2 decompile eaglercraft
2022-12-27 18:59:46 +00:00

164 lines
5.0 KiB
Java

package net.minecraft.tileentity;
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ContainerEnchantment;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.ITickable;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IInteractionObject;
/**+
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
*
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
*
* EaglercraftX 1.8 patch files are (c) 2022 LAX1DUDE. All Rights Reserved.
*
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
*
* NOT FOR COMMERCIAL OR MALICIOUS USE
*
* (please read the 'LICENSE' file this repo's root directory for more info)
*
*/
public class TileEntityEnchantmentTable extends TileEntity implements ITickable, IInteractionObject {
public int tickCount;
public float pageFlip;
public float pageFlipPrev;
public float field_145932_k;
public float field_145929_l;
public float bookSpread;
public float bookSpreadPrev;
public float bookRotation;
public float bookRotationPrev;
public float field_145924_q;
private static EaglercraftRandom rand = new EaglercraftRandom();
private String customName;
public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound);
if (this.hasCustomName()) {
nbttagcompound.setString("CustomName", this.customName);
}
}
public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound);
if (nbttagcompound.hasKey("CustomName", 8)) {
this.customName = nbttagcompound.getString("CustomName");
}
}
/**+
* Like the old updateEntity(), except more generic.
*/
public void update() {
this.bookSpreadPrev = this.bookSpread;
this.bookRotationPrev = this.bookRotation;
EntityPlayer entityplayer = this.worldObj.getClosestPlayer((double) ((float) this.pos.getX() + 0.5F),
(double) ((float) this.pos.getY() + 0.5F), (double) ((float) this.pos.getZ() + 0.5F), 3.0D);
if (entityplayer != null) {
double d0 = entityplayer.posX - (double) ((float) this.pos.getX() + 0.5F);
double d1 = entityplayer.posZ - (double) ((float) this.pos.getZ() + 0.5F);
this.field_145924_q = (float) MathHelper.func_181159_b(d1, d0);
this.bookSpread += 0.1F;
if (this.bookSpread < 0.5F || rand.nextInt(40) == 0) {
float f1 = this.field_145932_k;
while (true) {
this.field_145932_k += (float) (rand.nextInt(4) - rand.nextInt(4));
if (f1 != this.field_145932_k) {
break;
}
}
}
} else {
this.field_145924_q += 0.02F;
this.bookSpread -= 0.1F;
}
while (this.bookRotation >= 3.1415927F) {
this.bookRotation -= 6.2831855F;
}
while (this.bookRotation < -3.1415927F) {
this.bookRotation += 6.2831855F;
}
while (this.field_145924_q >= 3.1415927F) {
this.field_145924_q -= 6.2831855F;
}
while (this.field_145924_q < -3.1415927F) {
this.field_145924_q += 6.2831855F;
}
float f2;
for (f2 = this.field_145924_q - this.bookRotation; f2 >= 3.1415927F; f2 -= 6.2831855F) {
;
}
while (f2 < -3.1415927F) {
f2 += 6.2831855F;
}
this.bookRotation += f2 * 0.4F;
this.bookSpread = MathHelper.clamp_float(this.bookSpread, 0.0F, 1.0F);
++this.tickCount;
this.pageFlipPrev = this.pageFlip;
float f = (this.field_145932_k - this.pageFlip) * 0.4F;
float f3 = 0.2F;
f = MathHelper.clamp_float(f, -f3, f3);
this.field_145929_l += (f - this.field_145929_l) * 0.9F;
this.pageFlip += this.field_145929_l;
}
/**+
* Gets the name of this command sender (usually username, but
* possibly "Rcon")
*/
public String getName() {
return this.hasCustomName() ? this.customName : "container.enchant";
}
/**+
* Returns true if this thing is named
*/
public boolean hasCustomName() {
return this.customName != null && this.customName.length() > 0;
}
public void setCustomName(String customNameIn) {
this.customName = customNameIn;
}
/**+
* Get the formatted ChatComponent that will be used for the
* sender's username in chat
*/
public IChatComponent getDisplayName() {
return (IChatComponent) (this.hasCustomName() ? new ChatComponentText(this.getName())
: new ChatComponentTranslation(this.getName(), new Object[0]));
}
public Container createContainer(InventoryPlayer inventoryplayer, EntityPlayer var2) {
return new ContainerEnchantment(inventoryplayer, this.worldObj, this.pos);
}
public String getGuiID() {
return "minecraft:enchanting_table";
}
}