Skip to content

Initial work on making LivingEntities available for disguising#64

Draft
MATRIX-feather wants to merge 119 commits into
1.21.11/mainfrom
1.21.11/watcher-to-virtual-entity
Draft

Initial work on making LivingEntities available for disguising#64
MATRIX-feather wants to merge 119 commits into
1.21.11/mainfrom
1.21.11/watcher-to-virtual-entity

Conversation

@MATRIX-feather
Copy link
Copy Markdown
Member

Dependencies

Summary

This PR adds the ability for disguise backends to disguise LivingEntities rather than players.

This PR adds a new command /clone-morph to allow people who are interested to try this feature.

Use /clone-morph apply <entities> to clone your current disguise to selected entities. Use /clone-morph clear <entities> to clear their disguise.

I plan to implement an entity disguising gameplay mechanism in a separate plugin, not in FeatherMorph.

Please note that in this PR, entities disguised using the /clone-morph command won't get tracked by MorphManager, as the command directly interacts with the backend... Which means that disguised entities' "session" will stay in the backend forever unless the server stops, or someone uses /clone-morph clear to clear the session for them.

…缓存到全局依赖中,请通过 MirrorHub 获取与生物对应的 IOperationHandle;

misc: 现在对玩家模型进行镜像还要求玩家本身具有交互镜像的权限
misc: 变形形态的 actionbar 显示现在在 DisguiseState 中处理
…eManager+OverlayingMessageStore;

add: Add command for dumping builtin language files
…t players unlocking the corresponding disguise, see docs/Misc.md !
…ves;

enhance: Rotations are now read as a double list
…n will now rename the existing file to a .old.xxx.json file

   - Where the "xxx" is a hex string of `System.currentTimeMillis()`
  - Since we decided to allow plugins to add their own disguise property to the DisguiseState, we also need to allow them to validate the input, so this is here
…builder, removed AbstractProperties#createProperty. Also, SingleProperty is now a record
… DisguiseProperty

   - Removed references to AbstractDisguiseProperties from PropertyHandler
   - Removed references to AbstractDisguiseProperties from DisguiseState
   - AbstractDisguiseProperties now determines whether a disguise's property setup can be copied from a given other disguise instance based on disguise ID and type
   - AbstractDisguiseProperties has been renamed to PropertyCollection to better reflect its new role
     - Other classes originally named xxxxProperties have also been renamed to xxxPropertyCollection
…orphSkill use DisguiseState#setEquipment and DisguiseState#setShowingDisguisedEquipment explicitly
…s disposed without updating once; Raise FeatherMorph API version
…e target entity matches the given

DisguiseMeta's EntityType
…PropertyHandler and Entity instance, move DisguiseMeta check to new function `validateEntity`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant