Usage:
COMMAND
/blockmorph <blockstate> (<player(s)>)
In detail:
/blockmorph modid:blockid[properties=if need be, example=true]{nbt:"for blockentity", if:"need"} player124 or @a[tag=admin]
Examples:
/blockmorph redstone_lamp[lit=true] @s
/blockmorph somemod:cool_block{working_state:" active"}
/blockmorph superorepack:energy_ruby_block[active=true]{energy:9999} @a[distance==..29]
The command works the same as the blocks argument as in /setblock and the same as the players argument as in /gamemode
GUI
The configuration GUI opens with the U button
The GUI for selecting a block opens with the Y button
Tired of writing complex commands when you want to morph into a block?
Then there is a multifunctional GUI for this, it collects all the creative tabs from all mods and displays them on the side of the GUI, showing all the blocks from this tab, in the search tab you can find all the blocks registered in the game, and in the operator tab there are not only operator blocks but also all unsortable blocks, such as the portal block in the nether, petrified oak slab, etc.
On the "My Block" tab, you can configure all block properties if the block has them:
- A logical property can be switched by clicking
- A numeric property changes its value when scrolling with the mouse wheel
- For a string property, you need to select a value from the drop-down list
If the block has a block entity for rendering, then the GUI will offer to configure the ready-made nbt-tag only by changing the key values:
Always wanted a morph to block on new versions, but couldn't find a suitable mod?
Morph mods only supported living creatures, but not falling blocks, and datapacks and plugins don't change the hitbox and so on?
This mod will solve all these problems, and will work even better than a simple transformation into a falling block and even more so a cyclic command block with /summon falling_block, and here's why:
RENDERING BLOCK ENTITIES
Are you familiar with the problem when you wanted to turn into, for example, a sign with text, an enchantment table or even a simple chest, but nothing was displayed on the falling block? This mod will add full support for block entities with their nbt tag.
They will work if the block entity does not check the state of blocks in the world.
FULL COLLISIONS
Wanted to hide in a block-stairs so that players could walk on you or maybe an iron trap door to block the way?
Thanks to full-fledged collisions like real blocks, you can do this.
This will work if Steve jumps on the block player and not the block player on Steve.
BLOCK BREAKING SYSTEM
With this mod you can literally break the player like a block with a pickaxe with the appearance of cracks and the original breaking time, particles and other effects.
Also, since you are a block, you have 10 "shards" with the texture of a particle of your block instead of hearts, and you cannot drown, when you resolve you will see cracks spreading across the screen.
Now the player is not saved by creative mode and a totem, but the player can withstand, for example, fire and lava, allowed types of damage:
GENERIC_KILL (command /kill and other technical damage)
FELL_OUT_OF_WORLD (drop under bedrock)
EXPLOSION
PLAYER_DESTROYED (when you are destroyed by a tool or without it (custom damage))
other features
-
This mod can work with other transformation mods (the morph from another mod must be disabled, that is, you must be Steve before the transformation, otherwise it will lead to unpredictable behavior) (there is no protection mechanism yet)
-
Full calculation of light based on the player's blockpos prevents the player from being revealed if the client brightness or player position is set incorrectly (full light is not yet integrated and light will pass through the player block, but it will not stand out against the background of other blocks)
Do you see the player here? He is here!
-
This mod is built on mixins, so it does not need an external api to render and work.
- The mod does not render shadows and hitboxes of the player and does not show it in the F3 menu when hovering over the player.
- And also hitResult will take into account the complex shape of VoxelShape, for example, when you hover over a player-half-block in the upper part, and the player hid with the lower half-block, then Minecraft will not show that you hovered over the player despite the fact that the player actually has a cubic hitbox 1x1x1, it will do this only when you hover over the part of the block itself.
*The preview does not show players but special debug mobs with a name tag, their functionality is cut, they do not participate in the mod in any way and were coded only for the picture, their summoning egg is in the tab with spawn eggs with a broken texture, do not summon them, they will be deleted when all the functions are debugged.
Modrinth:
https://modrinth.com/mod/block-o-morph
GitHub repository releases:
1.0.1 :
- Added menu for selecting a block
- Changed java package structure (does not affect mod operation)
ImSeyo, I used the "mixin" mod element from the Nerdy mixin plugin, which contains the user code, most of the "procedures" with "global triggers" are in the MorphUtils class, it's like if there were 20 initial blocks in one "procedure" mod element, it doesn't have a single procedure in the form of a mod element, if I did this on procedures, it would overload the PC resources, make the mod heavier, and for example, you can't change the player's hitbox on procedures, etc., you would need an external API, and this is not convenient, but it was still created on mcreator and its basic templates, because I didn't study java and made the user code by trial and error compilation
Mesophil, that's it, I posted a link to Modrinth