From ba37a2fb33329200fc6fcf5a7aeb20dea7fb2686 Mon Sep 17 00:00:00 2001 From: memelotsqui Date: Sat, 9 Dec 2023 11:12:55 -0600 Subject: [PATCH] add remove trait option --- src/components/Editor.jsx | 70 ++++++++------------------------- src/library/characterManager.js | 4 +- 2 files changed, 20 insertions(+), 54 deletions(-) diff --git a/src/components/Editor.jsx b/src/components/Editor.jsx index 987dadea..aa3e43c0 100644 --- a/src/components/Editor.jsx +++ b/src/components/Editor.jsx @@ -54,7 +54,7 @@ export default function Editor({uploadTextureURL, uploadVRMURL,confirmDialog,ani //const [groupTraits, setGroupTraits] = React.useState([]) const [traits, setTraits] = React.useState(null) - const [traitGroup, setTraitGroup] = React.useState("") + const [traitGroupName, setTraitGroupName] = React.useState("") // options are selected by random or start useEffect(() => { @@ -75,49 +75,19 @@ export default function Editor({uploadTextureURL, uploadVRMURL,confirmDialog,ani },[uploadTextureURL]) - const selectOption = (option) => { + const selectTraitGroup = (traitGroup) => { !isMute && playSound('optionClick'); - if (option.name === currentTraitName) { - setDisplayTraitOption(null); - if (cameraFocused) { - moveCamera({ targetY: option.cameraTarget.height, distance: option.cameraTarget.distance}) - setCameraFocused(false) - } else { - moveCamera({ targetY: 0.8, distance: 3.2 }) - setCameraFocused(true) - } - setCurrentTraitName(null) - setCurrentVRM(null) - return - } - - setRemoveOption( - getAsArray(templateInfo.requiredTraits).indexOf(option.name) === -1, - ) - moveCamera({ targetY: option.cameraTarget.height, distance: option.cameraTarget.distance}) - setCurrentOptions(getTraitOptions(option, templateInfo)) - - - - - - - - // XXX character manager -- setTraits - console.log("Selected option: ",option.name); - console.log(characterManager.getTraits(option.name)); - - - - - - - - setCurrentTraitName(option.name) - // for item display - setDisplayTraitOption(avatar[option.name]?.traitInfo) - setCurrentVRM(avatar[option.name]?.vrm); + if (traitGroupName !== traitGroup.trait){ + setTraits(characterManager.getTraits(traitGroup.trait)); + setTraitGroupName(traitGroup.trait); + moveCamera({ targetY: traitGroup.cameraTarget.height, distance: traitGroup.cameraTarget.distance}) + } + else{ + setTraits(null); + setTraitGroupName(""); + moveCamera({ targetY: 0.8, distance: 3.2 }) + } } return ( @@ -128,23 +98,16 @@ export default function Editor({uploadTextureURL, uploadVRMURL,confirmDialog,ani
{ - characterManager.getGroupTraits().map((item, index) => ( + characterManager.getGroupTraits().map((traitGroup, index) => (
{ - if (traitGroup !== item.trait){ - setTraits(characterManager.getTraits(item.trait)); - setTraitGroup(item.trait); - } - else{ - setTraits(null); - setTraitGroup(""); - } + selectTraitGroup(traitGroup) }} />
@@ -172,6 +135,7 @@ export default function Editor({uploadTextureURL, uploadVRMURL,confirmDialog,ani