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

      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
                                          • robin4002R Hors-ligne
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs @Heaven
                                            dernière édition par robin4002

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

                                            car je change des choses a l intérieure de l api

                                            Donc tu n’as pas compris le principe d’un api …
                                            Je ne sais même pas comment ça se fait que ton jeu se lance chez toi.

                                            Moi je m’arrête là, désolé mais il y a trop de chose qui ne va pas, j’ai plus la motivation de t’aider.

                                            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