MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Nouvelle table d'enchantement

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    18 Messages 4 Publieurs 2.5k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • M Hors-ligne
      mosca421
      dernière édition par

      Salut je remonte un peu mon sujet car je bloque encore sur le probleme de mon gui : http://prntscr.com/aw6ojo

      Je vous montre le code on ne sait jamais :

      
      package fr.Mosca421.Arthania.EnchantementTable;
      
      import java.util.HashMap;
      import java.util.List;
      import java.util.Map;
      import java.util.Random;
      import java.util.UUID;
      
      import fr.Mosca421.Arthania.Arthania;
      import net.minecraft.enchantment.Enchantment;
      import net.minecraft.enchantment.EnchantmentData;
      import net.minecraft.enchantment.EnchantmentHelper;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.entity.player.InventoryPlayer;
      import net.minecraft.entity.player.PlayerCapabilities;
      import net.minecraft.init.Items;
      import net.minecraft.inventory.Container;
      import net.minecraft.inventory.ICrafting;
      import net.minecraft.inventory.IInventory;
      import net.minecraft.inventory.InventoryBasic;
      import net.minecraft.inventory.Slot;
      import net.minecraft.item.ItemEnchantedBook;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      import net.minecraftforge.common.ForgeHooks;
      
      public class ContainerEnchantment extends Container {
      public static final Map <string, integer="">seeds = new HashMap();
      public IInventory tableInventory;
      private World world;
      private Random rand;
      public int enchantmentSeed;
      private int posX;
      private int posY;
      private int posZ;
      public int[] enchantLevels;
      public int[] field_178151_h;
      
      public ContainerEnchantment(InventoryPlayer inventory, World world, int x, int y, int z) {
      this.tableInventory = new InventoryBasic("Enchant", true, 2) {
      public int getInventoryStackLimit() {
      return 64;
      }
      
      public void markDirty() {
      super.markDirty();
      ContainerEnchantment.this.onCraftMatrixChanged(this);
      }
      };
      this.posX = x;
      this.posY = y;
      this.posZ = z;
      this.rand = new Random();
      this.enchantLevels = new int[3];
      this.field_178151_h = new int[] { -1, -1, -1 };
      this.world = world;
      this.enchantmentSeed = getEnchantSeed(inventory.player);
      addSlotToContainer(new Slot(this.tableInventory, 0, 15, 47) {
      public boolean isItemValid(ItemStack stack) {
      return true;
      }
      
      public int getSlotStackLimit() {
      return 1;
      }
      });
      addSlotToContainer(new Slot(this.tableInventory, 1, 35, 47) {
      public boolean isItemValid(ItemStack stack) {
      return (stack.getItem() == Items.dye) && (stack.getItemDamage() == 4);
      }
      });
      for (int var4 = 0; var4 < 3; var4++) {
      for (int var5 = 0; var5 < 9; var5++) {
      addSlotToContainer(new Slot(inventory, var5 + var4 * 9 + 9, 8 + var5 * 18, 84 + var4 * 18));
      }
      }
      for (int var4 = 0; var4 < 9; var4++) {
      addSlotToContainer(new Slot(inventory, var4, 8 + var4 * 18, 142));
      }
      }
      
      private static void setEnchantSeed(EntityPlayer player, int seed) {
      seeds.put(player.getUniqueID().toString(), Integer.valueOf(seed));
      }
      
      private static int getEnchantSeed(EntityPlayer player) {
      Integer seed = (Integer) seeds.get(player.getUniqueID().toString());
      if (seed == null) {
      seed = Integer.valueOf(player.worldObj.rand.nextInt());
      setEnchantSeed(player, seed.intValue());
      }
      return seed.intValue();
      }
      
      private static void chargeForEnchant(EntityPlayer player, Random rand, int amount) {
      player.addExperienceLevel(-amount);
      
      setEnchantSeed(player, rand.nextInt());
      }
      
      public void addCraftingToCrafters(ICrafting p_75132_1_) {
      super.addCraftingToCrafters(p_75132_1_);
      p_75132_1_.sendProgressBarUpdate(this, 0, this.enchantLevels[0]);
      p_75132_1_.sendProgressBarUpdate(this, 1, this.enchantLevels[1]);
      p_75132_1_.sendProgressBarUpdate(this, 2, this.enchantLevels[2]);
      p_75132_1_.sendProgressBarUpdate(this, 3, this.enchantmentSeed & 0xFFFFFFF0);
      p_75132_1_.sendProgressBarUpdate(this, 4, this.field_178151_h[0]);
      p_75132_1_.sendProgressBarUpdate(this, 5, this.field_178151_h[1]);
      p_75132_1_.sendProgressBarUpdate(this, 6, this.field_178151_h[2]);
      }
      
      public void detectAndSendChanges() {
      super.detectAndSendChanges();
      for (int var1 = 0; var1 < this.crafters.size(); var1++) {
      ICrafting var2 = (ICrafting) this.crafters.get(var1);
      var2.sendProgressBarUpdate(this, 0, this.enchantLevels[0]);
      var2.sendProgressBarUpdate(this, 1, this.enchantLevels[1]);
      var2.sendProgressBarUpdate(this, 2, this.enchantLevels[2]);
      var2.sendProgressBarUpdate(this, 3, this.enchantmentSeed & 0xFFFFFFF0);
      var2.sendProgressBarUpdate(this, 4, this.field_178151_h[0]);
      var2.sendProgressBarUpdate(this, 5, this.field_178151_h[1]);
      var2.sendProgressBarUpdate(this, 6, this.field_178151_h[2]);
      }
      }
      
      public void updateProgressBar(int p_75137_1_, int p_75137_2_) {
      if ((p_75137_1_ >= 0) && (p_75137_1_ <= 2)) {
      this.enchantLevels[p_75137_1_] = p_75137_2_;
      } else if (p_75137_1_ == 3) {
      this.enchantmentSeed = p_75137_2_;
      } else if ((p_75137_1_ >= 4) && (p_75137_1_ <= 6)) {
      this.field_178151_h[(p_75137_1_ - 4)] = p_75137_2_;
      } else {
      super.updateProgressBar(p_75137_1_, p_75137_2_);
      }
      }
      
      public void onCraftMatrixChanged(IInventory p_75130_1_) {
      if (p_75130_1_ == this.tableInventory) {
      ItemStack var2 = p_75130_1_.getStackInSlot(0);
      if ((var2 != null) && (var2.isItemEnchantable())) {
      if (!this.world.isRemote) {
      int power = 0;
      for (int j = -1; j <= 1; j++) {
      for (int k = -1; k <= 1; k++) {
      if (((j != 0) || (k != 0))
      && (this.world.isAirBlock(this.posX + k, this.posY, this.posZ + j))
      && (this.world.isAirBlock(this.posX + k, this.posY + 1, this.posZ + j))) {
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k * 2,
      this.posY, this.posZ + j * 2));
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k * 2,
      this.posY + 1, this.posZ + j * 2));
      if ((k != 0) && (j != 0)) {
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k * 2,
      this.posY, this.posZ + j));
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k * 2,
      this.posY + 1, this.posZ + j));
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k,
      this.posY, this.posZ + j * 2));
      power = (int) (power + ForgeHooks.getEnchantPower(this.world, this.posX + k,
      this.posY + 1, this.posZ + j * 2));
      }
      }
      }
      }
      this.rand.setSeed(this.enchantmentSeed);
      for (int j = 0; j < 3; j++) {
      this.enchantLevels[j] = EnchantmentHelper.calcItemStackEnchantability(this.rand, j, power,
      var2);
      this.field_178151_h[j] = -1;
      if (this.enchantLevels[j] < j + 1) {
      this.enchantLevels[j] = 0;
      }
      }
      for (int j = 0; j < 3; j++) {
      if (this.enchantLevels[j] > 0) {
      List <enchantmentdata>var7 = func_178148_a(var2, j, this.enchantLevels[j]);
      if ((var7 != null) && (!var7.isEmpty())) {
      EnchantmentData var6 = (EnchantmentData) var7.get(this.rand.nextInt(var7.size()));
      this.field_178151_h[j] = (var6.enchantmentobj.effectId | var6.enchantmentLevel << 8);
      }
      }
      }
      detectAndSendChanges();
      }
      } else {
      for (int power = 0; power < 3; power++) {
      this.enchantLevels[power] = 0;
      this.field_178151_h[power] = -1;
      }
      }
      }
      }
      
      public boolean enchantItem(EntityPlayer player, int id) {
      ItemStack var3 = this.tableInventory.getStackInSlot(0);
      ItemStack var4 = this.tableInventory.getStackInSlot(1);
      int var5 = id + 1;
      if (((var4 == null) || (var4.stackSize < var5)) && (!player.capabilities.isCreativeMode)) {
      return false;
      }
      if ((this.enchantLevels[id] > 0) && (var3 != null)
      && (((player.experienceLevel >= var5) && (player.experienceLevel >= this.enchantLevels[id]))
      || (player.capabilities.isCreativeMode))) {
      if (!this.world.isRemote) {
      List <enchantmentdata>var6 = func_178148_a(var3, id, this.enchantLevels[id]);
      boolean var7 = var3.getItem() == Items.book;
      if (var6 != null) {
      chargeForEnchant(player, this.rand, var5);
      if (var7) {
      var3.func_150996_a(Items.enchanted_book);
      }
      for (int var8 = 0; var8 < var6.size(); var8++) {
      EnchantmentData var9 = (EnchantmentData) var6.get(var8);
      if (var7) {
      Items.enchanted_book.addEnchantment(var3, var9);
      } else {
      var3.addEnchantment(var9.enchantmentobj, var9.enchantmentLevel);
      }
      }
      if (!player.capabilities.isCreativeMode) {
      var4.stackSize -= var5;
      if (var4.stackSize <= 0) {
      this.tableInventory.setInventorySlotContents(1, (ItemStack) null);
      }
      }
      this.tableInventory.markDirty();
      this.enchantmentSeed = this.rand.nextInt();
      onCraftMatrixChanged(this.tableInventory);
      }
      }
      return true;
      }
      return false;
      }
      
      private List <enchantmentdata>func_178148_a(ItemStack stack, int seed, int level) {
      this.rand.setSeed(this.enchantmentSeed + seed);
      List <enchantmentdata>list = EnchantmentHelper.buildEnchantmentList(this.rand, stack, level);
      if ((stack.getItem() == Items.book) && (list != null) && (list.size() > 1)) {
      list.remove(this.rand.nextInt(list.size()));
      }
      return list;
      }
      
      public int func_178147_e() {
      ItemStack var1 = this.tableInventory.getStackInSlot(1);
      return var1 == null ? 0 : var1.stackSize;
      }
      
      public void onContainerClosed(EntityPlayer player) {
      super.onContainerClosed(player);
      if (!this.world.isRemote) {
      for (int i = 0; i < this.tableInventory.getSizeInventory(); i++) {
      ItemStack stack = this.tableInventory.getStackInSlotOnClosing(i);
      if (stack != null) {
      player.dropPlayerItemWithRandomChoice(stack, false);
      }
      }
      }
      }
      
      public boolean canInteractWith(EntityPlayer player) {
      return this.world.getBlock(this.posX, this.posY, this.posZ) == Arthania.enchantment_table;
      }
      
      public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
      ItemStack var3 = null;
      Slot var4 = (Slot) this.inventorySlots.get(index);
      if ((var4 != null) && (var4.getHasStack())) {
      ItemStack var5 = var4.getStack();
      var3 = var5.copy();
      if (index == 0) {
      if (!mergeItemStack(var5, 2, 38, true)) {
      return null;
      }
      } else if (index == 1) {
      if (!mergeItemStack(var5, 2, 38, true)) {
      return null;
      }
      } else if ((var5.getItem() == Items.dye) && (var5.getItemDamage() == 4)) {
      if (!mergeItemStack(var5, 1, 2, true)) {
      return null;
      }
      } else {
      if ((((Slot) this.inventorySlots.get(0)).getHasStack())
      || (!((Slot) this.inventorySlots.get(0)).isItemValid(var5))) {
      return null;
      }
      if ((var5.hasTagCompound()) && (var5.stackSize == 1)) {
      ((Slot) this.inventorySlots.get(0)).putStack(var5.copy());
      var5.stackSize = 0;
      } else if (var5.stackSize >= 1) {
      ((Slot) this.inventorySlots.get(0))
      .putStack(new ItemStack(var5.getItem(), 1, var5.getItemDamage()));
      var5.stackSize -= 1;
      }
      }
      if (var5.stackSize == 0) {
      var4.putStack((ItemStack) null);
      } else {
      var4.onSlotChanged();
      }
      if (var5.stackSize == var3.stackSize) {
      return null;
      }
      var4.onPickupFromSlot(playerIn, var5);
      }
      return var3;
      }
      }
      
      
      
      package fr.Mosca421.Arthania.EnchantementTable;
      
      import com.google.common.collect.Lists;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import java.util.ArrayList;
      import java.util.Random;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.entity.EntityClientPlayerMP;
      import net.minecraft.client.gui.FontRenderer;
      import net.minecraft.client.gui.ScaledResolution;
      import net.minecraft.client.gui.inventory.GuiContainer;
      import net.minecraft.client.model.ModelBook;
      import net.minecraft.client.multiplayer.PlayerControllerMP;
      import net.minecraft.client.renderer.RenderHelper;
      import net.minecraft.client.renderer.texture.TextureManager;
      import net.minecraft.client.resources.I18n;
      import net.minecraft.enchantment.Enchantment;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.player.InventoryPlayer;
      import net.minecraft.entity.player.PlayerCapabilities;
      import net.minecraft.inventory.Container;
      import net.minecraft.inventory.Slot;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.EnchantmentNameParts;
      import net.minecraft.util.EnumChatFormatting;
      import net.minecraft.util.MathHelper;
      import net.minecraft.util.ResourceLocation;
      import net.minecraft.world.World;
      import org.lwjgl.util.glu.Project;
      
      @SideOnly(Side.CLIENT)
      public class GuiEnchantment extends GuiContainer {
      private static final ResourceLocation field_147078_C = new ResourceLocation(
      "Arthania:textures/gui/container/enchanting_table.png");
      private static final ResourceLocation field_147070_D = new ResourceLocation(
      "textures/entity/enchanting_table_book.png");
      private static final ModelBook field_147072_E = new ModelBook();
      private final InventoryPlayer field_175379_F;
      private final Random field_147074_F = new Random();
      private final ContainerEnchantment field_147075_G;
      public int field_147073_u;
      public float field_147071_v;
      public float field_147069_w;
      public float field_147082_x;
      public float field_147081_y;
      public float field_147080_z;
      public float field_147076_A;
      ItemStack field_147077_B;
      private final String field_175380_I;
      
      public GuiEnchantment(InventoryPlayer inventory, World world, String p_i45502_3_) {
      super(new ContainerEnchantment(inventory, world, 0,0,0));
      this.field_175379_F = inventory;
      this.field_147075_G = ((ContainerEnchantment) this.inventorySlots);
      this.field_175380_I = p_i45502_3_;
      }
      
      protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
      this.fontRendererObj.drawString(
      this.field_175380_I == null ? I18n.format("container.enchant", new Object[0]) : this.field_175380_I, 12,
      5, 4210752);
      this.fontRendererObj.drawString(I18n.format(this.field_175379_F.getInventoryName(), new Object[0]), 8,
      this.ySize - 96 + 2, 4210752);
      }
      
      public void updateScreen() {
      super.updateScreen();
      func_147068_g();
      }
      
      protected void mouseClicked(int mouseX, int mouseY, int mouseButton) {
      super.mouseClicked(mouseX, mouseY, mouseButton);
      int var4 = (this.width - this.xSize) / 2;
      int var5 = (this.height - this.ySize) / 2;
      for (int var6 = 0; var6 < 3; var6++) {
      int var7 = mouseX - (var4 + 60);
      int var8 = mouseY - (var5 + 14 + 19 * var6);
      if ((var7 >= 0) && (var8 >= 0) && (var7 < 108) && (var8 < 19)
      && (this.field_147075_G.enchantItem(this.mc.thePlayer, var6))) {
      this.mc.playerController.sendEnchantPacket(this.field_147075_G.windowId, var6);
      }
      }
      }
      
      protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
      OpenGLHelper.colour(1.0F, 1.0F, 1.0F);
      this.mc.getTextureManager().bindTexture(field_147078_C);
      int k = (this.width - this.xSize) / 2;
      int l = (this.height - this.ySize) / 2;
      drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
      OpenGLHelper.pushMatrix();
      OpenGLHelper.matrixMode(5889);
      OpenGLHelper.pushMatrix();
      OpenGLHelper.loadIdentity();
      ScaledResolution var6 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
      OpenGLHelper.viewport((var6.getScaledWidth() - 320) / 2 * var6.getScaleFactor(),
      (var6.getScaledHeight() - 240) / 2 * var6.getScaleFactor(), 320 * var6.getScaleFactor(),
      240 * var6.getScaleFactor());
      OpenGLHelper.translate(-0.34F, 0.23F, 0.0F);
      Project.gluPerspective(90.0F, 1.3333334F, 9.0F, 80.0F);
      float var7 = 1.0F;
      OpenGLHelper.matrixMode(5888);
      OpenGLHelper.loadIdentity();
      RenderHelper.enableStandardItemLighting();
      OpenGLHelper.translate(0.0F, 3.3F, -16.0F);
      OpenGLHelper.scale(var7, var7, var7);
      float var8 = 5.0F;
      OpenGLHelper.scale(var8, var8, var8);
      OpenGLHelper.rotate(180.0F, 0.0F, 0.0F, 1.0F);
      this.mc.getTextureManager().bindTexture(field_147070_D);
      OpenGLHelper.rotate(20.0F, 1.0F, 0.0F, 0.0F);
      float var9 = this.field_147076_A + (this.field_147080_z - this.field_147076_A) * partialTicks;
      OpenGLHelper.translate((1.0F - var9) * 0.2F, (1.0F - var9) * 0.1F, (1.0F - var9) * 0.25F);
      OpenGLHelper.rotate(-(1.0F - var9) * 90.0F - 90.0F, 0.0F, 1.0F, 0.0F);
      OpenGLHelper.rotate(180.0F, 1.0F, 0.0F, 0.0F);
      float var10 = this.field_147069_w + (this.field_147071_v - this.field_147069_w) * partialTicks + 0.25F;
      float var11 = this.field_147069_w + (this.field_147071_v - this.field_147069_w) * partialTicks + 0.75F;
      var10 = (var10 - MathHelper.truncateDoubleToInt(var10)) * 1.6F - 0.3F;
      var11 = (var11 - MathHelper.truncateDoubleToInt(var11)) * 1.6F - 0.3F;
      if (var10 < 0.0F) {
      var10 = 0.0F;
      }
      if (var11 < 0.0F) {
      var11 = 0.0F;
      }
      if (var10 > 1.0F) {
      var10 = 1.0F;
      }
      if (var11 > 1.0F) {
      var11 = 1.0F;
      }
      OpenGLHelper.enableRescaleNormal();
      field_147072_E.render((Entity) null, 0.0F, var10, var11, var9, 0.0F, 0.0625F);
      OpenGLHelper.disableRescaleNormal();
      RenderHelper.disableStandardItemLighting();
      OpenGLHelper.matrixMode(5889);
      OpenGLHelper.viewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
      OpenGLHelper.popMatrix();
      OpenGLHelper.matrixMode(5888);
      OpenGLHelper.popMatrix();
      RenderHelper.disableStandardItemLighting();
      OpenGLHelper.colour(1.0F, 1.0F, 1.0F);
      EnchantmentNameParts.instance.reseedRandomGenerator(this.field_147075_G.enchantmentSeed);
      int var12 = this.field_147075_G.func_178147_e();
      for (int i1 = 0; i1 < 3; i1++) {
      int var14 = k + 60;
      int var15 = var14 + 20;
      byte var16 = 86;
      String s = EnchantmentNameParts.instance.generateNewRandomName();
      this.zLevel = 0.0F;
      this.mc.getTextureManager().bindTexture(field_147078_C);
      int j1 = this.field_147075_G.enchantLevels[i1];
      OpenGLHelper.colour(1.0F, 1.0F, 1.0F);
      if (j1 == 0) {
      drawTexturedModalRect(var14, l + 14 + 19 * i1, 0, 185, 108, 19);
      } else {
      String s1 = "" + j1;
      FontRenderer fontrenderer = this.mc.standardGalacticFontRenderer;
      int k1 = 6839882;
      if (((var12 < i1 + 1) || (this.mc.thePlayer.experienceLevel < j1))
      && (!this.mc.thePlayer.capabilities.isCreativeMode)) {
      drawTexturedModalRect(var14, l + 14 + 19 * i1, 0, 185, 108, 19);
      drawTexturedModalRect(var14 + 1, l + 15 + 19 * i1, 16 * i1, 239, 16, 16);
      fontrenderer.drawSplitString(s, var15, l + 16 + 19 * i1, var16, (k1 & 0xFEFEFE) >> 1);
      k1 = 4226832;
      } else {
      int l1 = mouseX - (k + 60);
      int i2 = mouseY - (l + 14 + 19 * i1);
      if ((l1 >= 0) && (i2 >= 0) && (l1 < 108) && (i2 < 19)) {
      drawTexturedModalRect(var14, l + 14 + 19 * i1, 0, 204, 108, 19);
      k1 = 16777088;
      } else {
      drawTexturedModalRect(var14, l + 14 + 19 * i1, 0, 166, 108, 19);
      }
      drawTexturedModalRect(var14 + 1, l + 15 + 19 * i1, 16 * i1, 223, 16, 16);
      fontrenderer.drawSplitString(s, var15, l + 16 + 19 * i1, var16, k1);
      k1 = 8453920;
      }
      fontrenderer = this.mc.fontRenderer;
      fontrenderer.drawStringWithShadow(s1, var15 + 86 - fontrenderer.getStringWidth(s1),
      l + 16 + 19 * i1 + 7, k1);
      OpenGLHelper.colour(1.0F, 1.0F, 1.0F);
      }
      }
      }
      
      public void drawScreen(int mouseX, int mouseY, float partialTicks) {
      super.drawScreen(mouseX, mouseY, partialTicks);
      boolean var4 = this.mc.thePlayer.capabilities.isCreativeMode;
      int var5 = this.field_147075_G.func_178147_e();
      for (int var6 = 0; var6 < 3; var6++) {
      int var7 = this.field_147075_G.enchantLevels[var6];
      int var8 = this.field_147075_G.field_178151_h[var6];
      int var9 = var6 + 1;
      if ((func_146978_c(60, 14 + 19 * var6, 108, 17, mouseX, mouseY)) && (var7 > 0) && (var8 >= 0)) {
      ArrayList <object>var10 = Lists.newArrayList();
      if ((var8 >= 0) && (Enchantment.enchantmentsList[(var8 & 0xFF)] != null)) {
      String var11 = Enchantment.enchantmentsList[(var8 & 0xFF)].getTranslatedName((var8 & 0xFF00) >> 8);
      var10.add(EnumChatFormatting.WHITE.toString() + EnumChatFormatting.ITALIC.toString()
      + I18n.format("container.enchant.clue", new Object[] { var11 }));
      }
      if (!var4) {
      if (var8 >= 0) {
      var10.add("");
      }
      if (this.mc.thePlayer.experienceLevel < var7) {
      var10.add(EnumChatFormatting.RED.toString() + "Level Requirement: "
      + this.field_147075_G.enchantLevels[var6]);
      } else {
      String var11 = "";
      if (var9 == 1) {
      var11 = I18n.format("container.enchant.lapis.one", new Object[0]);
      } else {
      var11 = I18n.format("container.enchant.lapis.many", new Object[] { Integer.valueOf(var9) });
      }
      if (var5 >= var9) {
      var10.add(EnumChatFormatting.GRAY.toString() + "" + var11);
      } else {
      var10.add(EnumChatFormatting.RED.toString() + "" + var11);
      }
      if (var9 == 1) {
      var11 = I18n.format("container.enchant.level.one", new Object[0]);
      } else {
      var11 = I18n.format("container.enchant.level.many", new Object[] { Integer.valueOf(var9) });
      }
      var10.add(EnumChatFormatting.GRAY.toString() + "" + var11);
      }
      }
      drawHoveringText(var10, mouseX, mouseY, this.fontRendererObj);
      break;
      }
      }
      }
      
      public void func_147068_g() {
      ItemStack var1 = this.inventorySlots.getSlot(0).getStack();
      if (!ItemStack.areItemStacksEqual(var1, this.field_147077_B)) {
      this.field_147077_B = var1;
      do {
      this.field_147082_x += this.field_147074_F.nextInt(4) - this.field_147074_F.nextInt(4);
      } while ((this.field_147071_v <= this.field_147082_x + 1.0F)
      && (this.field_147071_v >= this.field_147082_x - 1.0F));
      }
      this.field_147073_u += 1;
      this.field_147069_w = this.field_147071_v;
      this.field_147076_A = this.field_147080_z;
      boolean var2 = false;
      for (int var3 = 0; var3 < 3; var3++) {
      if (this.field_147075_G.enchantLevels[var3] != 0) {
      var2 = true;
      }
      }
      if (var2) {
      this.field_147080_z += 0.2F;
      } else {
      this.field_147080_z -= 0.2F;
      }
      this.field_147080_z = MathHelper.clamp_float(this.field_147080_z, 0.0F, 1.0F);
      float var5 = (this.field_147082_x - this.field_147071_v) * 0.4F;
      float var4 = 0.2F;
      var5 = MathHelper.clamp_float(var5, -var4, var4);
      this.field_147081_y += (var5 - this.field_147081_y) * 0.9F;
      this.field_147071_v += this.field_147081_y;
      }
      }
      
      
      
      package fr.Mosca421.Arthania.EnchantementTable;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import fr.Mosca421.Arthania.Arthania;
      
      import java.util.Random;
      import net.minecraft.block.BlockEnchantmentTable;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.Item;
      import net.minecraft.world.World;
      
      public class NewEnchantmentTable extends BlockEnchantmentTable
      
      {
      public NewEnchantmentTable() {
      setHardness(5.0F);
      setCreativeTab(CreativeTabs.tabDecorations);
      setResistance(2000.0F);
      setBlockTextureName("enchanting_table");
      setBlockName(("Arthania:enchantment_table"));
      }
      
      public Item getItemDropped(int meta, Random rand, int fortune) {
      return Item.getItemFromBlock(Blocks.enchanting_table);
      }
      
      @SideOnly(Side.CLIENT)
      public Item getItem(World world, int x, int y, int z) {
      return Item.getItemFromBlock(Blocks.enchanting_table);
      }
      
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX,
      float hitY, float hitZ) {
      if (world.isRemote) {
      return true;
      }
      player.openGui(Arthania.instance, 0, world, x, y, z);
      return true;
      }
      
      }
      
      
      
      package fr.Mosca421.Arthania.EnchantementTable;
      
      import cpw.mods.fml.common.network.IGuiHandler;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.world.World;
      
      public class GuiHandlerTable implements IGuiHandler {
      
      @Override
      public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
         switch (ID)
         {
         case 0:
      return new ContainerEnchantment(player.inventory, world, x, y, z);
         }
          return null;
      }
      
      @Override
      public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
      
         switch (ID)
         {
         case 0:
      return new GuiEnchantment(player.inventory, world, null);
         }
         return null;
      }
      
      }
      
      
      
      //classe principal dans init et preinit
      NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerTable());
      
      ```</object></enchantmentdata></enchantmentdata></enchantmentdata></enchantmentdata></string,>
      1 réponse Dernière réponse Répondre Citer 0
      • SCAREXS Hors-ligne
        SCAREX
        dernière édition par

        private static final ResourceLocation field_147078_C = new ResourceLocation(
        "Arthania:textures/gui/container/enchanting_table.png");
        

        Le modid doit être en minuscules, ça doit être marqué dans les logs

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • M Hors-ligne
          mosca421
          dernière édition par

          rien a voir je veux dir que je n’ai pas de slot n’y rien pardon oublier de préciser
          Avec texture : http://prntscr.com/aw6vmp
          Meme l’inventaire est a la dèche

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREXS Hors-ligne
            SCAREX
            dernière édition par

            Etrange, regarde si les fonctions addSlotToContainer sont appelées

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • M Hors-ligne
              mosca421
              dernière édition par

              Y’en a dans le container et le container est appler ici das le gui

              public GuiEnchantment(InventoryPlayer inventory, World world, String p_i45502_3_) {
              super(new ContainerEnchantment(inventory, world, 0,0,0));
              this.field_175379_F = inventory;
              this.field_147075_G = ((ContainerEnchantment) this.inventorySlots);
              this.field_175380_I = p_i45502_3_;
              }

              1 réponse Dernière réponse Répondre Citer 0
              • SCAREXS Hors-ligne
                SCAREX
                dernière édition par

                Oui mais rajoute “System.out.println(“quelque chose”)” lorsque tu ajoutes le slot pour voir si la fonction est bien appelée

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • M Hors-ligne
                  mosca421
                  dernière édition par

                  [15:40:25] [Client thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.ContainerEnchantment:<init>:76]: slot
                  [15:40:25] [Client thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.ContainerEnchantment:<init>:76]: slot
                  [15:40:25] [Client thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.ContainerEnchantment:<init>:76]: slot
                  [15:40:25] [Client thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.ContainerEnchantment:<init>:76]: slot
                  [15:40:25] [Client thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.GuiEnchantment:<init>:57]: GUI
                  Il y a encore des slots avant

                  public GuiEnchantment(InventoryPlayer inventory, World world, String p_i45502_3_) {
                  super(new ContainerEnchantment(inventory, world, 0,0,0));
                  this.field_175379_F = inventory;
                  this.field_147075_G = ((ContainerEnchantment) this.inventorySlots);
                  this.field_175380_I = p_i45502_3_;
                  System.out.println(“GUI”);
                  }

                  for (int var4 = 0; var4 < 3; var4++) {
                  for (int var5 = 0; var5 < 9; var5++) {
                  addSlotToContainer(new Slot(inventory, var5 + var4 * 9 + 9, 8 + var5 * 18, 84 + var4 * 18));
                  System.out.println(“slot”);
                  }
                  }</init></init></init></init></init>

                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREXS Hors-ligne
                    SCAREX
                    dernière édition par

                    Ce qui est étrange c’est que le code n’est pas appelé côté serveur, rajoute un System.out.println dans la fonction getServerGuiElement pour voir si le code est appelé.

                    PS : pense à respecter la convention java.
                    PS 2 : il y a un GuiHandler par mod et non par block

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    1 réponse Dernière réponse Répondre Citer 0
                    • M Hors-ligne
                      mosca421
                      dernière édition par

                      switch (ID)
                         {
                         case 0:
                      System.out.println(“pris”);
                      return new ContainerEnchantment(player.inventory, world, x, y, z);
                         }

                      [15:52:14] [Server thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.GuiHandlerTable:getServerGuiElement:14]: pris
                      [15:52:14] [Server thread/INFO] [STDOUT]: [fr.Mosca421.Arthania.EnchantementTable.ContainerEnchantment:<init>:76]: slot
                      Merci pour le GuiHandler
                      Convention je suis franglais xD</init>

                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREXS Hors-ligne
                        SCAREX
                        dernière édition par

                        Aucune idée alors

                        PS : pour la convention, je parlais pas du franglais, parce que à la limite même si c’est pas de l’anglais correct c’est bon, mais il faut tout mettre en minuscule pour les noms de package

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

                        1 réponse Dernière réponse Répondre Citer 0
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          @‘SCAREX’:

                          Ce qui est étrange c’est que le code n’est pas appelé côté serveur, rajoute un System.out.println dans la fonction getServerGuiElement pour voir si le code est appelé.

                          PS : pense à respecter la convention java.
                          PS 2 : il y a un GuiHandler par mod et non par block

                          Je pense que si, il a dit dans son message “Il y a encore des slots avant”, c’est un autre problème… Mais comme je te l’ai dis en mp, essaye de faire un gui tout simple, sans système d’enchant avec juste l’inventaire du joueur, après rajoutes-y tes 2 slots puis le système d’enchant complet.

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1 / 1
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB