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.
    • 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
                                          • 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
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB