Comments (2)
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 originBlockPos
. - 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
andIBlockState
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'sBlockPos
, the rule, and the falling entity'scapturedDrops
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, andcapturedDrops
list to Dropt's drop modifier - remove the falling entity cache entry
- pass the cached
- Else if the falling entity is dead
- remove the falling entity cache entry
from dropt-1.12.
from dropt-1.12.
Related Issues (20)
- Add a method of guaranteeing a drop regardless of the weight HOT 2
- Multi-use tools don't drop the right type of items
- Setting rules via zen script associative array/key, value loops causes crash HOT 3
- Mod support for explosion harvesting HOT 1
- Place-able blocks as "drops"
- Beds HOT 4
- Ore dictionary support for held item matching
- getting a registry crash only when this dropt script is loaded HOT 9
- Minecraft crashes at world creation HOT 2
- Replacing block drops not working well with building gadget HOT 1
- Add support for JEI HOT 3
- Question dropt for 1.16+ HOT 1
- Plant blocks drop configured item when the block underneath is broken HOT 1
- About "mods.dropt.Rule:" (ZenScript) HOT 1
- Integer overflow when too far from spawn HOT 1
- Tinkers Construct tanks lose fluid when mined if Dropt is installed HOT 2
- Using REAL_PLAYER harvester parameter doesn't match tools, player name, or game stages
- Using name matcher without debug enabled throws NPE
- Conflict with Multi Mine
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dropt-1.12.