diff --git a/src/skilltree/skillTreeEditor.js b/src/skilltree/skillTreeEditor.js
index d709aaf..3760bb9 100644
--- a/src/skilltree/skillTreeEditor.js
+++ b/src/skilltree/skillTreeEditor.js
@@ -20,6 +20,16 @@ function SkillTreeEditor(p) {
const [gridPaddingY,setGridPaddingY] = useState(10)
const [renderedInputs,setRenderedInputs] = useState([])
const [skillLines,setSkillLines] = useState([])
+ const [skillData,setSkillData] = useState([])
+
+ function GetSkills(x,y) {
+ var filtered = skillData.filter((skill)=>Number(skill[0])===x&&Number(skill[1])===y)
+ if (filtered.length>0) {
+ return filtered[0]
+ } else {
+ return ""
+ }
+ }
useEffect(()=>{
setClassList(p.GetData("class",undefined,undefined,true))
@@ -30,12 +40,19 @@ function SkillTreeEditor(p) {
var keys = Object.keys(skillTreeData)
for (var id of keys) {
//console.log(cl+"/"+skillTreeData[id].class_id)
- if (skillTreeData[id].class_id==cl) {
+ if (Number(skillTreeData[id].class_id)===Number(cl)) {
var data = skillTreeData[id].data.split(',')
+ var skill = skillTreeData[id].skill_data.split(';')
setSkillLines(data)
+ setSkillData(skill)
setDimensionX(data[0].length)
setDimensionY(data.length)
setLineColor(skillTreeData[id].line_color)
+ setLineWidth(skillTreeData[id].line_width)
+ setGridSizeX(skillTreeData[id].gridsizex)
+ setGridSizeY(skillTreeData[id].gridsizey)
+ setGridPaddingX(skillTreeData[id].gridpaddingx)
+ setGridPaddingY(skillTreeData[id].gridpaddingy)
}
}
},[skillTreeData,cl])
@@ -73,12 +90,28 @@ function SkillTreeEditor(p) {
string[y] = stringLine.join('')
setSkillLines(string)
}
- } ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY}/>)
+ } skill={GetSkills(x,y)} skillCallback={(x,y,skill)=>{
+ var newSkillData = [...skillData]
+ var found=false
+ var newSkill = x+","+y+","+skill
+ for (var s in newSkillData) {
+ var split = newSkillData[s].split(',')
+ if (Number(split[0])===Number(x)&&Number(split[1])===Number(y)) {
+ newSkillData[s]=newSkill
+ found=true
+ break;
+ }
+ }
+ if (!found) {
+ newSkillData.push(newSkill)
+ }
+ setSkillData(newSkillData)
+ }} ADJUSTMENT={ADJUSTMENT} x={x} y={y} gridSizeX={gridSizeX} gridSizeY={gridSizeY} padX={padX} padY={padY}/>)
}
}
}
setRenderedInputs(controls)
- },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX])
+ },[skillLines,gridSizeX,gridSizeY,gridPaddingX,gridPaddingY,cl,dimensionY,dimensionX,skillData])
return <>
- {p.defaultValue==='□'&&