GithubHelp home page GithubHelp logo

Per-player element about inventorygui HOT 2 CLOSED

phoenix616 avatar phoenix616 commented on August 26, 2024
Per-player element

from inventorygui.

Comments (2)

Phoenix616 avatar Phoenix616 commented on August 26, 2024

Some thoughts about this:

Currently one InventoryGui instance only really corresponds to one player having them open with the inventory being cached in a field of the object. This would probably need to be changed into a map for all players to properly handle the listeners (as they too use the cached inventory: to check if the player is actually in the GUI)

We would also need to pass the player to all methods for getting items and actions from all element types (which would end up in quite some clutter imo) or add a special case for such a per-player element. (Which I also don't think is a nice approach but already kinda used with the storage element)

A different approach could be to calculate an intermediate GUI setup for each player that opens the GUI which resolves the player elements but that too would require a special case for these elements to work...

Have to think about this a bit more, if you (or anyone else) have any thoughts on this feel free to provide them! :)

from inventorygui.

Phoenix616 avatar Phoenix616 commented on August 26, 2024

It is now (since 1.4) possible to provide a Function to DynamicGuiElement which has the viewer as the input. Also the getItem and getAction methods now take the viewer too if one wants to implement custom elements.

from inventorygui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.