Jump to content

Same here

Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Same here

  1. 15 hours ago, Dzuchun said:

    Here you don't need this to execute something on button click. Listening is already handled by LWJGL (not sure), so all you need is to specify function that should be executed once button is pressed.

    
    (p_213070_1_) -> {
      this.minecraft.displayGuiScreen((Screen)null);
      this.minecraft.mouseHelper.grabMouse(); 
    }

    Here is this function. This format is called lambda-expression. Check source code for more context, this code is located at IngameMenuScreen class.

    My friend, thank you very much for your patience and help me a lot. I looked at the source code before, but I made a fatal mistake. I have been paying attention to lambda and have not used addbutton correctly. Thank you very much for your help.

  2. 15 hours ago, Dzuchun said:

    Here is an example of button from IngameMenuScreen class:

    
    this.addButton(new Button(this.width / 2 - 102, this.height / 4 + 24 + -16, 204, 20, new TranslationTextComponent("menu.returnToGame"), (p_213070_1_) -> {
             this.minecraft.displayGuiScreen((Screen)null);
             this.minecraft.mouseHelper.grabMouse();
          }));

    This works for sure, find the difference.

    Excuse me, is there a more detailed example? I don't quite understand. I often use listeners in Java, but I don't understand how this button works.

  3.  @Override
        protected void init()
        {
            super.init();
            Button.IPressable onPress;
            int offsetX = (this.width - this.xSize) / 2, offsetY = (this.height - this.ySize) / 2;
            this.buttons.add(new Button(offsetX+153,offsetY+17,20,20,"start",(p_212984_1_) -> {
                this.minecraft.displayGuiScreen(this.getMinecraft().currentScreen);})
            {
                @Override
                public void onPress()
                {
                    //TODO 
                }
            });

    I have made a screen,I want to add a button to do something ,I used anonymous inner classes,but  whatever I write in “todo”,when I pressen the button it didn't work.Did I use the wrong method?Please help me .

  4. On 11/15/2019 at 6:10 AM, Yanny7 said:

    I have created custom entities, everything is working fine, but in console I see warnings for my custom entities:

    
    [23:06:25] [modloading-worker-3/WARN] [minecraft/EntityType]: No data fixer registered for entity 

    How can I get rid of this warning or how can I add data fixer to my entity?

    Me too. Have you solved it?

  5. 2 minutes ago, Novârch said:

    This is just from a first glance, so take it with a grain of salt, EE3 seems to write the player's UUID to the ItemStack-s NBT, this is very hard to follow because of the mods' heavy use of util classes, but can be deciphered with some time, I'll give you the link to the item on GitHub, beware it's for 1.12 though, but I think NBT hasn't really changed since day 1.

    Thank you very much !

  6. 17 minutes ago, Novârch said:

    If you can't understand the source it's very unlikely you can actually make it yourself, if you want to make a mod, learn Java, get acquainted with Forge and Minecraft, and then do what you want, asking for help when you don't understand Forge/Java will get you nowhere long-term.

    Maybe there's something wrong with my statement,I've learned the basics of Java.My mod has written a lot of basic items and blocks.In fact ,I know that the alchemy bag stores item data through the player entity.But I want to konw how to make the custom capability which can stores itemstack.I've learned how to extend the player's attribute data through the NBT tag.But the NBT Tag can only store data types.How can I store the itemstack to the playerentity?

  7. On 7/4/2020 at 9:49 PM, diesieben07 said:
    1. First make a class that extends ItemStackHandler, this will be a capability you attach to players.
    2. Register a capability with this class (CapabilityManager.register) and inject it into a field for using CapabilityInject.
    3. Make a class implementing ICapabilitySerializable, which stores an instance of your custom ItemStackHandler and serializes it to NBT.
    4. Subscribe to AttachCapabilitiesEvent<Entity>, check if the entity is a player and if so, attach a new instance of your capability provider from step 3.
    5. Subscribe to EntityJoinWorldEvent, check if the entity joining is a player and if so, add a new Slot to it's container (PlayerEntity#container) using Container#addSlot (it's protected, you'll need reflection). Point this slot at your custom capability (PlayerEntity#getCapability).
    6. Use GuiContainerEvent.DrawBackground to draw the background for your Slot over top the normal inventory background.

    I want to ask how to make a item which like AlchemicaBag in EE2?I can't understande the source code in the github,please help me ,please 

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.