MFF

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

    [1.12.2]Ma Barre d'énergie ne veux pas se mettre a jour(ou n est pas syncro)

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    59 Messages 4 Publieurs 2.8k Vues 4 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.
    • HeavenH Hors-ligne
      Heaven
      dernière édition par

      c est a dire qui est censé être initialiser et ou ? car de base c est pas tile.energystorage mais storage qui est public IEnergy storage mais ca marche pas si je met ca (meme avec le code de Thermal) et c est tile qui est null si je dis pas de bêtises

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        L’endroit où la variable est initialisé c’est là où il y a nomVariable = new MonObjet(...)

        1 réponse Dernière réponse Répondre Citer 0
        • HeavenH Hors-ligne
          Heaven
          dernière édition par robin4002

          oui c est public TileentiyMachine() tile;

          voila mon code:

          package com.Nugarium.NuagrMod.machine;
          
          
          import cofh.redstoneflux.api.*;
          import cofh.redstoneflux.impl.EnergyStorage;
          import net.minecraft.util.ResourceLocation;
          
          import java.util.List;
          
          
          
          public class ElementEnergyStored extends ElementBase {
          
          	public static final ResourceLocation DEFAULT_TEXTURE = new ResourceLocation(GuiProps.PATH_ELEMENTS + "energy.png");
          	public static final int DEFAULT_SCALE = 42;
          
          	public EnergyStorage storage;
          	public TileEntityUpgradeArmorMachine tile;
          
          
          
          	// If this is enabled, 1 pixel of energy will always show in the bar as long as it is non-zero.
          	public static boolean alwaysShowMinimum = false;
          
          	public ElementEnergyStored(GuiBase gui, int posX, int posY, EnergyStorage storage) {
          
          
          		super(gui, posX, posY);
          
          		tile = new TileEntityUpgradeArmorMachine();
          		this.storage = storage;
          
          		this.texture = DEFAULT_TEXTURE;
          		this.sizeX = 16;
          		this.sizeY = DEFAULT_SCALE;
          
          		this.texW = 32;
          		this.texH = 64;
          	}
          
          	public ElementEnergyStored setAlwaysShow(boolean show) {
          
          		alwaysShowMinimum = show;
          		return this;
          	}
          
          	@Override
          	public void drawBackground(int mouseX, int mouseY, float gameTicks) {
          
          		int amount = getScaled();
          		RenderHelper.bindTexture(texture);
          		drawTexturedModalRect(posX, posY, 0, 0, sizeX, sizeY);
          		drawTexturedModalRect(posX, posY + DEFAULT_SCALE - amount, 16, DEFAULT_SCALE - amount, sizeX, amount);
          	}
          
          	@Override
          	public void drawForeground(int mouseX, int mouseY) {
          
          	}
          
          	@Override
          	public void addTooltip(List<String> list) {
          
          		if (tile.energyStorage.getMaxEnergyStored() < 0) {
          			list.add("Infinite RF");
          		} else {
          			list.add(StringHelper.formatNumber(tile.energyStorage.getEnergyStored()) + " / " + StringHelper.formatNumber(tile.energyStorage.getMaxEnergyStored()) + " RF");
          		}
          	}
          
          	public int getScaled() {
          
          		if (tile.energyStorage.getMaxEnergyStored() <= 0) {
          			return sizeY;
          		}
          		long fraction = (long) tile.energyStorage.getEnergyStored() * sizeY / tile.energyStorage.getMaxEnergyStored();
          
          		return alwaysShowMinimum && tile.energyStorage.getEnergyStored() > 0 ? Math.max(1, MathHelper.round(fraction)) : MathHelper.round(fraction);
          	}
          
          }
          

          et si je fait ca ca ne marche pas (la texture ce load pas )

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Normal, tu génére un tile entity relié à rien.
            Faut get la tile qui se trouve dans le monde via world.getTileEntity(pos).

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

              oui mais le problème c est que je n est pas la fontion World ni BlockPos donc comment je pourrait faire pour appeler ces deux classes ?

              ca ca marcherais ?

              public TileentityMachine tile;
              public BlockPos pos;
              public ElementEnergyStored(){
              
              tile.getWorld().getTileEntity(pos);
              
              }
              

              j ai essayer et ca n a pas marcher la barre ne se draw meme pas 😞
              text alternatif

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Mais qu’est-ce que cette horreur qui n’a aucun sens ?

                à quel endroit tu appeles le constructeur de ElementEnergyStored ?

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

                  dans mon Gui dans l initGui();

                  @Override
                      public void initGui() {
                  
                          super.initGui();
                          addElement(new ElementEnergyStored(this, 150, 20, tile.getEnergyStorage()));
                      }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Voilà, donc tu as déjà le tile ici …

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

                      oui mais je vois pas le rapport car la classe TileentityMachine je l appelle de la meme manière pour tile.getEnergyStorage() c est a dire public TileentityMachine tile; je n utilise pas de world.getTileEntity(pos)

                      arpes je peux faire ca

                      package com.Nugarium.NuagrMod.machine;
                      
                      
                      import cofh.redstoneflux.api.*;
                      import cofh.redstoneflux.impl.EnergyStorage;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraft.util.math.BlockPos;
                      import net.minecraft.world.World;
                      
                      import java.util.List;
                      
                      
                      
                      public class ElementEnergyStored extends ElementBase {
                      
                      	public static final ResourceLocation DEFAULT_TEXTURE = new ResourceLocation(GuiProps.PATH_ELEMENTS + "energy.png");
                      	public static final int DEFAULT_SCALE = 42;
                      
                      	public EnergyStorage storage;
                      	private TileEntityUpgradeArmorMachine tile;
                      
                      
                      	// If this is enabled, 1 pixel of energy will always show in the bar as long as it is non-zero.
                      	public static boolean alwaysShowMinimum = false;
                      
                      	public ElementEnergyStored(GuiBase gui, int posX, int posY, EnergyStorage storage) {
                      
                      
                      		super(gui, posX, posY);
                      
                      		this.storage = storage;
                      		this.texture = DEFAULT_TEXTURE;
                      		this.sizeX = 16;
                      		this.sizeY = DEFAULT_SCALE;
                      
                      		this.texW = 32;
                      		this.texH = 64;
                      	}
                      
                      	public ElementEnergyStored setAlwaysShow(boolean show) {
                      
                      		alwaysShowMinimum = show;
                      		return this;
                      	}
                      
                      	@Override
                      	public void drawBackground(int mouseX, int mouseY, float gameTicks) {
                      
                      		int amount = getScaled();
                      		RenderHelper.bindTexture(texture);
                      		drawTexturedModalRect(posX, posY, 0, 0, sizeX, sizeY);
                      		drawTexturedModalRect(posX, posY + DEFAULT_SCALE - amount, 16, DEFAULT_SCALE - amount, sizeX, amount);
                      	}
                      
                      	@Override
                      	public void drawForeground(int mouseX, int mouseY) {
                      
                      	}
                      
                      	@Override
                      	public void addTooltip(List<String> list) {
                      
                      		if (tile.getMaxEnergyStored() < 0) {
                      			list.add("Infinite RF");
                      		} else {
                      			list.add(StringHelper.formatNumber(tile.getEnergyStored()) + " / " + StringHelper.formatNumber(tile.getMaxEnergyStored()) + " RF");
                      		}
                      	}
                      
                      	public int getScaled() {
                      
                      
                      		if (tile.getMaxEnergyStored() <= 0) {
                      			return sizeY;
                      		}
                      		long fraction = (long) this.tile.getEnergyStored() * sizeY / this.tile.getMaxEnergyStored();
                      
                      		return alwaysShowMinimum && this.tile.getEnergyStored() > 0 ? Math.max(1, MathHelper.round(fraction)) : MathHelper.round(fraction);
                      	}
                      
                      }
                      
                      

                      dans la tile les fonctions

                      @Override
                          public int getEnergyStored() {
                      
                              return energyStorage.energy;
                          }
                      
                          @Override
                          public int getMaxEnergyStored() {
                      
                              return energyStorage.capacity;
                          }
                      

                      mais ca fait aussi un NPE

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Fais une archive de ton dossier mdk et envoies-le-moi, je vais regarder …

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

                          ok
                          le voici: projet NugarMod1.12.2
                          (le mod ne contient pas de virus bien sur )

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002R Hors-ligne
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                            dernière édition par robin4002

                            Il y un truc qui va pas sur ta workspace …
                            d5ff89f3-620e-4fcf-b614-19ff14dc086f-image.png
                            J’ai aussi eu des JEI avant ça, que j’ai pu régler avec un gradlew clean + remplacer le compile par deobcompile pour JEI dans le build.gradle mais pour redstoneflux je ne vois pas où est le souci.
                            + Le même soucis avec pleins d’autres mods en virant tout ce qui sont était dans le dossier mods du dossier run.

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

                              c’est a cause de l api de RedstoneFlux qui est dans mon mod mais je n ai pas se problème pourtant ?
                              il faut peut être essayer de mettre le mod redstone flux dans le dossier mod avec les autre mod que j ai mis ou alors recréer un mod et met mon src a la place de l autre c est ce que j ai fait quand j’avais eu se problème

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                J’ai déjà complètement vidé le dossier mods.
                                Fais voir ton classpath sur eclipse ?

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

                                  j ai pas éclipse ;( moi c est idea

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002R Hors-ligne
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                    dernière édition par

                                    Bha montre-moi le classpath d’idea dans ce cas.

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

                                      voila:
                                      text alternatif

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Flow ArgF Hors-ligne
                                        Flow Arg Moddeurs confirmés
                                        dernière édition par

                                        c’est sans doute pour ça, si tu as mis l’api redstoneflux directement dans ton code, si tu l’ajoutes en plus en dépendances, ca risque de planter. Tente de retirer l’API de ton code et réessaye

                                        Mon GitHub
                                        Mon repo Maven
                                        Mon Updater
                                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 10 points de réputation.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • robin4002R Hors-ligne
                                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                          dernière édition par

                                          C’est pas ce que je voulais, je l’ai aussi ça.
                                          Le classpath ce sont toutes tes bibliothèques externes + les lib de Java.
                                          4716b2f2-4457-4da2-a8ec-7fbe8496a19a-image.png
                                          Ce qui m’intéresse surtout c’est savoir si tu as les mods ici.

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

                                            a oui mais il faut enlevé RedstoneFlux car le code est déjà dans le code de mon mod et on peux pas faire autrement Flow Arg car je change des choses a l intérieure de l api

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB