Code Monkey home page Code Monkey logo

Comments (2)

codetaylor avatar codetaylor commented on September 18, 2024

Maybe. It's not pretty, but something like this might work... for vanilla blocks at least. This may break down if a large number of blocks dropped at the same time, ie. a large-scale player orchestrated sand drop. I don't really see another way to do it though. I'm leaving these notes here for future me if I ever do it.

Use the EntityJoinWorldEvent to determine when an instance of EntityFallingBlock joins the world, and:

  • Use an AT or method handle to retrieve the IBlockState from the falling entity.
  • Use an AT or method handle to retrieve the ORIGIN data parameter from the falling entity.
  • Use an AT or method handle to retrieve the falling entity's data manager.
  • Use the data manager and ORIGIN data parameter to retrieve the falling entity's origin BlockPos.
  • Use the same method that the EntityFallingBlock uses to determine the block's drops and place them in a list.
  • Pass the drop list, BlockPos and IBlockState to Dropt's rule locator.
  • If a rule matches and is returned, set the falling entity's captureDrops flag to true and cache the falling entity, the falling entity's BlockPos, the rule, and the falling entity's capturedDrops list.

Each server tick, iterate the falling entity cache, and:

  • If the capturedDrops list is not empty, the falling entity has broken
    • pass the cached BlockPos, rule, and capturedDrops list to Dropt's drop modifier
    • remove the falling entity cache entry
  • Else if the falling entity is dead
    • remove the falling entity cache entry

from dropt-1.12.

AechtRob avatar AechtRob commented on September 18, 2024

from dropt-1.12.

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.