Corrected floating point numbers issus because of javascript and entity writing order depending on their IDs.
This commit is contained in:
parent
67ca898bcd
commit
8e350ac509
|
|
@ -1 +1 @@
|
|||
Subproject commit a9d88e50e71ed30570c72f3587be8f8899ca697f
|
||||
Subproject commit 152be5f888f7c5c44d0cee77c21d75abf78ec410
|
||||
|
|
@ -95,53 +95,6 @@
|
|||
"Entities": [
|
||||
{
|
||||
"ID":1,
|
||||
"Components": [
|
||||
{
|
||||
"Type": "TRANSFORM_COMPONENT",
|
||||
"Attributes": [
|
||||
96.0,
|
||||
0.0,
|
||||
32.0,
|
||||
48.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "SPRITE_COMPONENT",
|
||||
"Attributes": [
|
||||
"barred_door_sheet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "ANIMATION_SYSTEM",
|
||||
"Attributes": [
|
||||
8,
|
||||
0,
|
||||
30.0,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "HITBOX_COMPONENT",
|
||||
"Attributes": [
|
||||
0.0,
|
||||
0.8333333333333334,
|
||||
1.0,
|
||||
0.16666666666666666
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "DOOR_COMPONENT",
|
||||
"Attributes": [
|
||||
0,
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ID":2,
|
||||
"Components": [
|
||||
{
|
||||
"Type": "TRANSFORM_COMPONENT",
|
||||
|
|
@ -198,6 +151,53 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"ID":2,
|
||||
"Components": [
|
||||
{
|
||||
"Type": "TRANSFORM_COMPONENT",
|
||||
"Attributes": [
|
||||
96.0,
|
||||
0.0,
|
||||
32.0,
|
||||
48.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "SPRITE_COMPONENT",
|
||||
"Attributes": [
|
||||
"barred_door_sheet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "ANIMATION_SYSTEM",
|
||||
"Attributes": [
|
||||
8,
|
||||
0,
|
||||
30.0,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "HITBOX_COMPONENT",
|
||||
"Attributes": [
|
||||
0.0,
|
||||
0.8333333333333334,
|
||||
1.0,
|
||||
0.16666666666666666
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "DOOR_COMPONENT",
|
||||
"Attributes": [
|
||||
0,
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
</data>
|
||||
</layer>
|
||||
<objectgroup id="8" name="Entities">
|
||||
<object id="4" name="1" x="96" y="0" width="32" height="48">
|
||||
<object id="4" name="2" x="96" y="0" width="32" height="48">
|
||||
<properties>
|
||||
<property name="components" type="list">
|
||||
<item type="list">
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
</properties>
|
||||
</object>
|
||||
<object id="5" x="96" y="40" width="32" height="8"/>
|
||||
<object id="8" name="2" x="88" y="112" width="48" height="32">
|
||||
<object id="8" name="1" x="88" y="112" width="48" height="32">
|
||||
<properties>
|
||||
<property name="components" type="list">
|
||||
<item type="list">
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
function stringifyFloat(floatNumber)
|
||||
{
|
||||
if(floatNumber == Math.trunc(floatNumber))
|
||||
return String(floatNumber) + ".0"
|
||||
|
||||
return String(floatNumber);
|
||||
}
|
||||
|
||||
function writeTileLayer(tileLayer, file)
|
||||
{
|
||||
file.writeLine(" \"" + tileLayer.name + "\": [");
|
||||
|
|
@ -35,6 +43,13 @@ function writeEntities(objectLayer, file)
|
|||
}
|
||||
}
|
||||
|
||||
entities.sort((a, b) => {
|
||||
if(Number(a.name) > Number(b.name))
|
||||
return 1;
|
||||
|
||||
return -1;
|
||||
});
|
||||
|
||||
for(let i = 0; i < entities.length; i++)
|
||||
{
|
||||
let entity = entities[i];
|
||||
|
|
@ -66,10 +81,10 @@ function writeEntities(objectLayer, file)
|
|||
{
|
||||
file.writeLine(",");
|
||||
file.writeLine(" \"Attributes\": [");
|
||||
file.writeLine(" " + entity.x + ",");
|
||||
file.writeLine(" " + entity.y + ",");
|
||||
file.writeLine(" " + entity.width + ",");
|
||||
file.writeLine(" " + entity.height);
|
||||
file.writeLine(" " + stringifyFloat(entity.x) + ",");
|
||||
file.writeLine(" " + stringifyFloat(entity.y) + ",");
|
||||
file.writeLine(" " + stringifyFloat(entity.width) + ",");
|
||||
file.writeLine(" " + stringifyFloat(entity.height));
|
||||
file.writeLine(" ]");
|
||||
}
|
||||
else if(component_type == "HITBOX_COMPONENT")
|
||||
|
|
@ -88,10 +103,10 @@ function writeEntities(objectLayer, file)
|
|||
let width = hitbox.width / entity.width;
|
||||
let height = hitbox.height / entity.height;
|
||||
|
||||
file.writeLine(" " + x + ",");
|
||||
file.writeLine(" " + y + ",");
|
||||
file.writeLine(" " + width + ",");
|
||||
file.writeLine(" " + height);
|
||||
file.writeLine(" " + stringifyFloat(x) + ",");
|
||||
file.writeLine(" " + stringifyFloat(y) + ",");
|
||||
file.writeLine(" " + stringifyFloat(width) + ",");
|
||||
file.writeLine(" " + stringifyFloat(height));
|
||||
}
|
||||
else if(component_type == "INTERACT_COMPONENT")
|
||||
{
|
||||
|
|
@ -109,45 +124,41 @@ function writeEntities(objectLayer, file)
|
|||
let width = interact_box.width / entity.width;
|
||||
let height = interact_box.height / entity.height;
|
||||
|
||||
file.writeLine(" " + x + ",");
|
||||
file.writeLine(" " + y + ",");
|
||||
file.writeLine(" " + width + ",");
|
||||
file.writeLine(" " + height + ",");
|
||||
file.writeLine(" " + stringifyFloat(x) + ",");
|
||||
file.writeLine(" " + stringifyFloat(y) + ",");
|
||||
file.writeLine(" " + stringifyFloat(width) + ",");
|
||||
file.writeLine(" " + stringifyFloat(height) + ",");
|
||||
|
||||
file.writeLine(" " + component[2] + ",");
|
||||
file.writeLine(" " + component[3] + ",");
|
||||
file.writeLine(" " + component[4]);
|
||||
}
|
||||
else if(component_type == "SPRITE_COMPONENT")
|
||||
{
|
||||
file.writeLine(" \"" + component[1] + "\"");
|
||||
}
|
||||
else if(component_type == "ANIMATION_SYSTEM")
|
||||
{
|
||||
file.writeLine(" " + component[1] + ",");
|
||||
file.writeLine(" " + component[2] + ",");
|
||||
file.writeLine(" " + stringifyFloat(component[3]) + ",");
|
||||
file.writeLine(" " + component[4] + ",");
|
||||
file.writeLine(" " + component[5] + ",");
|
||||
file.writeLine(" " + component[6]);
|
||||
}
|
||||
else if(component_type == "LEVER_COMPONENT")
|
||||
{
|
||||
file.writeLine(" " + component[1] + ",");
|
||||
file.writeLine(" " + component[2]);
|
||||
}
|
||||
else if(component_type == "DOOR_COMPONENT")
|
||||
{
|
||||
file.writeLine(" " + component[1] + ",");
|
||||
file.writeLine(" " + component[2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(component.length > 1)
|
||||
{
|
||||
for(let k = 1; k < component.length; k++)
|
||||
{
|
||||
file.write(" ");
|
||||
switch(typeof(component[k]))
|
||||
{
|
||||
case typeof(Number()):
|
||||
case typeof(Boolean()):
|
||||
file.write(component[k]);
|
||||
break;
|
||||
|
||||
case typeof(String()):
|
||||
file.write("\"" + component[k] + "\"");
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Error("Attribute \"" + component[k] + "\", type not supported : " + typeof(component[k]));
|
||||
}
|
||||
|
||||
if(k == component.length - 1)
|
||||
file.writeLine("");
|
||||
else
|
||||
file.writeLine(",");
|
||||
}
|
||||
}
|
||||
else
|
||||
file.writeLine("");
|
||||
throw new Error("Component type not supported for exporting : " + component_type);
|
||||
}
|
||||
|
||||
if(component.length > 1)
|
||||
|
|
|
|||
Loading…
Reference in New Issue