{APP_TITLE}
diff --git a/src/skilltree/skillTreeEditor.js b/src/skilltree/skillTreeEditor.js
index f197976..d25a8ec 100644
--- a/src/skilltree/skillTreeEditor.js
+++ b/src/skilltree/skillTreeEditor.js
@@ -7,9 +7,11 @@ function SkillTreeEditor(p) {
const ADJUSTMENT = [-32,-32]
+ const [firstLoad,setFirstLoad] = useState(true)
+
const [classList,setClassList] = useState({})
const [skillTreeData,setSkillTreeData] = useState({})
- const [cl,setCl] = useState(0)
+ const [cl,setCl] = useState(-1)
const [lineColor,setLineColor] = useState("#000000")
const [lineWidth,setLineWidth] = useState(3)
const [dimensionX,setDimensionX] = useState(6)
@@ -25,7 +27,7 @@ function SkillTreeEditor(p) {
const [loading,setLoading] = useState(false)
function GetSkills(x,y) {
- var filtered = skillData.filter((skill)=>Number(skill[0])===x&&Number(skill[1])===y)
+ var filtered = skillData.filter((skill)=>Number(skill.split(",")[0])===Number(x)&&Number(skill.split(",")[1])===Number(y))
if (filtered.length>0) {
return filtered[0]
} else {
@@ -35,12 +37,29 @@ function SkillTreeEditor(p) {
function SaveSkillTrees() {
axios.post(p.BACKENDURL+"/saveskilltree",{
-
+ pass:p.password,
+ data:skillLines.slice(0,dimensionY).map((str)=>str.slice(0,dimensionX)).join(','),
+ skill_data:skillData.join(';'),
+ line_color:lineColor,
+ line_width:lineWidth,
+ gridsizex:gridSizeX,
+ gridsizey:gridSizeY,
+ gridpaddingx:gridPaddingX,
+ gridpaddingy:gridPaddingY,
+ class_id:cl
})
.then((data)=>{
-
+ if (data.data==="OK!") {
+ setMessage({"Successfully saved skill tree for "+p.GetData("class",undefined,undefined,true)[cl].name+"!"})
+ p.setUpdate(true)
+ }
+ })
+ .catch((err)=>{
+ setMessage({err.message})
+ })
+ .then(()=>{
+ setLoading(false)
})
- setLoading(false)
}
useEffect(()=>{
@@ -50,6 +69,7 @@ function SkillTreeEditor(p) {
useEffect(()=>{
var keys = Object.keys(skillTreeData)
+ var found = false
for (var id of keys) {
//console.log(cl+"/"+skillTreeData[id].class_id)
if (Number(skillTreeData[id].class_id)===Number(cl)) {
@@ -65,12 +85,22 @@ function SkillTreeEditor(p) {
setGridSizeY(skillTreeData[id].gridsizey)
setGridPaddingX(skillTreeData[id].gridpaddingx)
setGridPaddingY(skillTreeData[id].gridpaddingy)
+ found=true
}
}
+ if (!found) {
+ setSkillLines([])
+ setSkillData([])
+ setDimensionX(6)
+ setDimensionY(6)
+ }
},[skillTreeData,cl])
useEffect(()=>{
- setCl(Object.keys(classList)[0])
+ if (firstLoad) {
+ setCl(Object.keys(classList)[0])
+ setFirstLoad(false)
+ }
},[classList])
useEffect(()=>{
@@ -127,27 +157,34 @@ function SkillTreeEditor(p) {
return <>
{loading?
:<>
+ {message}
-
}
{renderedInputs.map((control)=>control)}
- {setLineColor(f.currentTarget.value)}}/>
- {setLineWidth(f.currentTarget.value)}}/>
- {setDimensionX(f.currentTarget.value)}}/>
- {setDimensionY(f.currentTarget.value)}}/>
- {setGridSizeX(f.currentTarget.value)}}/>
- {setGridSizeY(f.currentTarget.value)}}/>
- {setGridPaddingX(f.currentTarget.value)}}/>
- {setGridPaddingY(f.currentTarget.value)}}/>
+
+
+
+ {setLineColor(f.currentTarget.value)}}/>
+ {setLineWidth(f.currentTarget.value)}}/>
+ {setDimensionX(f.currentTarget.value)}}/>
+ {setDimensionY(f.currentTarget.value)}}/>
+ {setGridSizeX(f.currentTarget.value)}}/>
+ {setGridSizeY(f.currentTarget.value)}}/>
+ {setGridPaddingX(f.currentTarget.value)}}/>
+ {setGridPaddingY(f.currentTarget.value)}}/>
>}
>