Gravity mechanics testing
SlimeDog opened this issue ยท 8 comments
Spigot 1.13.1 latest
EHM 3.13-alpha
The following gravity mechanics are enabled on my servers:
- Cobble, dirt, and mossy cobble (in addition to gravel and sand) are subject to gravity.
- Grass and mycellium are subject to gravity.
- Falling grass and mycellium turn to dirt.
- Falling blocks - cobble, dirt, gravel, mossy cobble, and sand - cause player damage.
- Falling blocks - grass and mycelium and wood - cause player damage.
- Blocks cannot be placed under you if you jump. Use ladders.
- Blocks cannot be bridged too far without support.
- Swimming with too much weight (from armor or other items) quickly leads to drowning.
- Walking with too much weight causes slowness.
Test results:
- Confirmed: Cobblestone, mossy cobblestone, and dirt are subject to gravity.
- FAIL: Grass and mycelium are not subject to gravity. Grass failure is probably due to change in material name: grass_block. The issue with mycelium is not clear.
- FAIL: Grass and mycelium do not fall.
- Confirmed: Falling blocks -- cobble, dirt, gravel, mossy cobble, and sand -- cause player damage.
- FAIL: Grass, mycelium and wood do not fall.
- Confirmed: Blocks cannot be placed under you if you jump. Warning message appears for some blocks -- eg., dirt -- but does not appear for all blocks -- eg., planks.
- FAIL: Blocks can be bridged indefinitely.
- Confirmed: Armor weight increases chances of drowning.
- FAIL: Excessive weight does not cause slowness, based on 1200 iron blocks.
re: 9, walk speed slowdown only factors in armor weight.
As for 7, not sure if I can find anything on bridges themselves. It seems that it tries to prevent players from building a bridge as they stand on the bridge (sneaking over the edge and placing blocks).
Everything else is because it's using the abstracted type that's dependent on item ids.
Spigot 1.13.1 latest
EHM 3.13-alpha2
The following are configured on my servers:
Additional Falling Blocks:
Enable: true
Break Torches: true
# Whether a falling block that is broken by an obstructing block should drop as an item
Drop As Items: false
# When a falling block lands it checks if the blocks around it should fall as well. Can cascade downwards infinitely.
Landed Blocks Can Cause Blocks To Fall: true
# Should a falling block damage players when it lands on them.
Dmg Amount When Hitting Players: 2
Turn Mycel/Grass To Dirt: true
Enabled Blocks:
- -1@1,3,11
- COBBLESTONE
- COARSE_DIRT
- DIRT
- GRASS_BLOCK
- MOSSY_COBBLESTONE
- MYCELIUM
- PODZOL
Test results:
- Succeed: Falling blocks break torches. Tested: mycelium.
- Succeed: Broken item is dropped. Tested: torch.
- Succeed: Falling blocks do not drop as items. Tested: dirt, mycelium.
- Succeed: Landed blocks cause contiguous blocks fall. Tested: dirt, mycelium.
- Succeed: Landed mycelium turns to dirt.
- Succeed: All configured blocks perform as expected.
- FAIL[1]: Falling blocks caused damage (and dizzy effect), but the damage was reversed immediately. Tested: Column of 5 dirt, falling 2+ blocks. If I understand the config, that should have caused 10 damage (5 hearts).
Questions:
- What is indicated by
Enabled Blocks:
- -1@1,3,11
What is indicated by
Enabled Blocks:
- -1@1,3,11
So yea, that syntax is defined by the abstracted datatype that relies on item ids and damage values. The first integer is the item id (or the material string, but its id is used when put into the custom datatype), and everything after the @ is a list of damage values that should be included. I.e., when wool was a single id with the damage values dictating the color, you could have only certain types of wool affected by whatever specified.
In other words, that is the very thing that needs to be rewritten (or removed, since most colored material types are their own type now - there's practically no need to specify damage values anymore), and is unfortunately used by many features.
Still curious: To what does the value -1 refer? That is not a listed material, in the pre-1.13 system.
Given that the gravitationally-challenged blocks are defined by name now, that line can safely be removed from the configuration?
I'm not sure why it's defined as -1 in the config, but yea if you have the name in there it should work unless it's a new 1.13 block (since it's still using and storing the id, not string, internally).
FAIL[1]: Falling blocks caused damage (and dizzy effect), but the damage was reversed immediately. Tested: Column of 5 dirt, falling 2+ blocks. If I understand the config, that should have caused 10 damage (5 hearts).
Unsure what you mean by "reversed immediately"
So I'll just remove the Damage Amount when hitting players
since the suffocation modifier already applies this damage (and far more accurately, as this one does a nearbyEntities check after the block has formed), and the effect applied (Confusion) and its attributes are fixed (whereas configurable in the damage modifiers section).