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 Heaven

      merci 🙂 a toi Robin je vais enlevé le static 🙂 mais comment vais je faire pour aller chercher energystorage car sans le static ca me fait un Reported exception thrown (NPE ) ?

      logs:
      https://hastebin.com/ayucunalil.rb

      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

        Le jeu crash car tu as un NPE à la ligne 68 de ElementEnergyStored.java.
        Reste à trouver ce qui est null et pourquoi.

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

          bah enfaite c est le tile.energyrstorage… dans ElementEnergyStored qui fait un npe si EnergyStorage energystorage = new …est pas static
          Edit après 1h de recherche: je ne trouve toujours pas

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

            ca marche toujours 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

              C’est tile ou energyrstorage qui est null ? Il est censé être initialisé où ?

              1 réponse Dernière réponse Répondre Citer 0
              • 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
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB