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

      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
                                          • HeavenH Hors-ligne
                                            Heaven
                                            dernière édition par

                                            voila:
                                            text alternatif

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB