More faces :) + reduced map converter logs.
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 107 B |
BIN
assets-cg/npc/face/milkman.png
Normal file
After Width: | Height: | Size: 544 B |
BIN
assets-cg/npc/face/police.png
Normal file
After Width: | Height: | Size: 555 B |
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 107 B |
BIN
assets-fx/npc/face/milkman.png
Normal file
After Width: | Height: | Size: 326 B |
BIN
assets-fx/npc/face/police.png
Normal file
After Width: | Height: | Size: 354 B |
|
@ -6,6 +6,7 @@ import pathlib
|
||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
DEBUG = 0
|
||||||
|
|
||||||
def convert(input, output, params, target):
|
def convert(input, output, params, target):
|
||||||
if params["custom-type"] == "map":
|
if params["custom-type"] == "map":
|
||||||
|
@ -34,8 +35,8 @@ def convert_world(input, output, params, target):
|
||||||
|
|
||||||
data = json.load(open(input, "r"))
|
data = json.load(open(input, "r"))
|
||||||
nbMaps = ["fileName" in i for i in data["maps"]].count(True)
|
nbMaps = ["fileName" in i for i in data["maps"]].count(True)
|
||||||
print( "We have to treat ", nbMaps, " maps")
|
if DEBUG: print( "We have to treat ", nbMaps, " maps")
|
||||||
print( "So let's go ... ")
|
if DEBUG: print( "So let's go ... ")
|
||||||
|
|
||||||
structWorld = fxconv.Structure()
|
structWorld = fxconv.Structure()
|
||||||
#structExtra = fxconv.Structure()
|
#structExtra = fxconv.Structure()
|
||||||
|
@ -51,26 +52,26 @@ def convert_world(input, output, params, target):
|
||||||
nameJSON = "/".join(input.split("/")[:-nbRetour]) + "/" + nameMap + ".json"
|
nameJSON = "/".join(input.split("/")[:-nbRetour]) + "/" + nameMap + ".json"
|
||||||
|
|
||||||
commandline = 'tiled --export-map json ' + nameTMX + ' ' + nameJSON
|
commandline = 'tiled --export-map json ' + nameTMX + ' ' + nameJSON
|
||||||
print( "TILED COMMAND LINE FOR MAPS : ", commandline )
|
if DEBUG: print( "TILED COMMAND LINE FOR MAPS : ", commandline )
|
||||||
os.system( commandline )
|
os.system( commandline )
|
||||||
|
|
||||||
mapPath = "/".join(input.split("/")[:-nbRetour]) + "/" + nameMap + ".json"
|
mapPath = "/".join(input.split("/")[:-nbRetour]) + "/" + nameMap + ".json"
|
||||||
print("Map ", i , " name : ", mapPath )
|
if DEBUG: print("Map ", i , " name : ", mapPath )
|
||||||
|
|
||||||
xmin = data["maps"][i]["x"]
|
xmin = data["maps"][i]["x"]
|
||||||
print( "xmin = ", xmin )
|
if DEBUG: print( "xmin = ", xmin )
|
||||||
|
|
||||||
ymin = data["maps"][i]["y"]
|
ymin = data["maps"][i]["y"]
|
||||||
print( "ymin = ", ymin )
|
if DEBUG: print( "ymin = ", ymin )
|
||||||
|
|
||||||
xmax = data["maps"][i]["x"] + data["maps"][i]["width"]
|
xmax = data["maps"][i]["x"] + data["maps"][i]["width"]
|
||||||
print( "xmax = ", xmax )
|
if DEBUG: print( "xmax = ", xmax )
|
||||||
|
|
||||||
ymax = data["maps"][i]["y"] + data["maps"][i]["height"]
|
ymax = data["maps"][i]["y"] + data["maps"][i]["height"]
|
||||||
print( "ymax = ", ymax )
|
if DEBUG: print( "ymax = ", ymax )
|
||||||
|
|
||||||
map = get_tile_map_data( mapPath, output, params, target, xmin, ymin, xmax, ymax)
|
map = get_tile_map_data( mapPath, output, params, target, xmin, ymin, xmax, ymax)
|
||||||
print( "Map = ", map )
|
if DEBUG: print( "Map = ", map )
|
||||||
structWorld += fxconv.ptr( map )
|
structWorld += fxconv.ptr( map )
|
||||||
|
|
||||||
structWorld += fxconv.u32(0)
|
structWorld += fxconv.u32(0)
|
||||||
|
@ -85,7 +86,7 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
|
|
||||||
#find the tileset in use. it's a relative path (like ../tileset.tsx)
|
#find the tileset in use. it's a relative path (like ../tileset.tsx)
|
||||||
nameTileset = data["tilesets"][0]["source"].replace(".tsx","")
|
nameTileset = data["tilesets"][0]["source"].replace(".tsx","")
|
||||||
print(nameTileset)
|
if DEBUG: print(nameTileset)
|
||||||
#the name of the tileset without the .something
|
#the name of the tileset without the .something
|
||||||
nameTilesetFree = nameTileset.split("/")[-1]
|
nameTilesetFree = nameTileset.split("/")[-1]
|
||||||
#count the number of "back" (cd ..) to locate the tileset on the computer
|
#count the number of "back" (cd ..) to locate the tileset on the computer
|
||||||
|
@ -95,7 +96,7 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
tilesetJSON = "/".join(input.split("/")[:-nbRetour]) + "/" + nameTileset + ".json"
|
tilesetJSON = "/".join(input.split("/")[:-nbRetour]) + "/" + nameTileset + ".json"
|
||||||
|
|
||||||
commandline = 'tiled --export-tileset json ' + tilesetTSX + ' ' + tilesetJSON
|
commandline = 'tiled --export-tileset json ' + tilesetTSX + ' ' + tilesetJSON
|
||||||
print( "TILED COMMAND LINE FOR TILESET : ", commandline )
|
if DEBUG: print( "TILED COMMAND LINE FOR TILESET : ", commandline )
|
||||||
os.system( commandline )
|
os.system( commandline )
|
||||||
|
|
||||||
tileset = open(tilesetJSON, "r")
|
tileset = open(tilesetJSON, "r")
|
||||||
|
@ -105,14 +106,14 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
|
|
||||||
#find the ID of the first tile in the walkable tileset ()
|
#find the ID of the first tile in the walkable tileset ()
|
||||||
indexWalkable = data["tilesets"][1]["firstgid"]
|
indexWalkable = data["tilesets"][1]["firstgid"]
|
||||||
print(indexWalkable)
|
if DEBUG: print(indexWalkable)
|
||||||
|
|
||||||
#Extract from the json the width, height
|
#Extract from the json the width, height
|
||||||
w, h = data["width"], data["height"]
|
w, h = data["width"], data["height"]
|
||||||
|
|
||||||
#nbTileLayer is the number of "true" layers (without ObjectsLayer)
|
#nbTileLayer is the number of "true" layers (without ObjectsLayer)
|
||||||
nbTilelayer = ["data" in i for i in data["layers"]].count(True) - 1
|
nbTilelayer = ["data" in i for i in data["layers"]].count(True) - 1
|
||||||
print( nbTilelayer)
|
if DEBUG: print( nbTilelayer)
|
||||||
|
|
||||||
#index of the various layers (may change from one map to another)
|
#index of the various layers (may change from one map to another)
|
||||||
layer_walkable = 0
|
layer_walkable = 0
|
||||||
|
@ -135,7 +136,7 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
datavalid = data["layers"][i]
|
datavalid = data["layers"][i]
|
||||||
if datavalid["name"]=="Walkable":
|
if datavalid["name"]=="Walkable":
|
||||||
layer_walkable = i
|
layer_walkable = i
|
||||||
print( "Walkable Tile Data in layer : ", layer_walkable)
|
if DEBUG: print( "Walkable Tile Data in layer : ", layer_walkable)
|
||||||
break
|
break
|
||||||
elif i==nbTilelayer:
|
elif i==nbTilelayer:
|
||||||
print( "ERROR : No Walkable layer data !!!" )
|
print( "ERROR : No Walkable layer data !!!" )
|
||||||
|
@ -168,7 +169,7 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
|
|
||||||
nameDialog = data["properties"][0]["value"]
|
nameDialog = data["properties"][0]["value"]
|
||||||
dialogfile = "/".join(input.split("/")[:-nbRetour]) + "/" + nameDialog
|
dialogfile = "/".join(input.split("/")[:-nbRetour]) + "/" + nameDialog
|
||||||
print( "THE DIALOGS ARE CONTAINED IN THE FILE : ", dialogfile )
|
if DEBUG: print( "THE DIALOGS ARE CONTAINED IN THE FILE : ", dialogfile )
|
||||||
|
|
||||||
nbdiag = 0
|
nbdiag = 0
|
||||||
diagdata = fxconv.Structure()
|
diagdata = fxconv.Structure()
|
||||||
|
@ -192,7 +193,7 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
datavalid = data["layers"][i]
|
datavalid = data["layers"][i]
|
||||||
if datavalid["name"]=="Background":
|
if datavalid["name"]=="Background":
|
||||||
layer_background = i
|
layer_background = i
|
||||||
print( "Background Tile Data in layer : ", layer_background)
|
if DEBUG: print( "Background Tile Data in layer : ", layer_background)
|
||||||
break
|
break
|
||||||
elif i==nbTilelayer:
|
elif i==nbTilelayer:
|
||||||
print( "ERROR : No Background layer data !!!" )
|
print( "ERROR : No Background layer data !!!" )
|
||||||
|
@ -210,10 +211,10 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
datavalid = data["layers"][i]
|
datavalid = data["layers"][i]
|
||||||
if datavalid["name"]=="Foreground":
|
if datavalid["name"]=="Foreground":
|
||||||
layer_foreground = i
|
layer_foreground = i
|
||||||
print( "Foreground Tile Data in layer : ", layer_foreground)
|
if DEBUG: print( "Foreground Tile Data in layer : ", layer_foreground)
|
||||||
break
|
break
|
||||||
elif i==nbTilelayer:
|
elif i==nbTilelayer:
|
||||||
printf( "ERROR : No Foreground layer data !!!" )
|
print( "ERROR : No Foreground layer data !!!" )
|
||||||
|
|
||||||
layer_data = bytes()
|
layer_data = bytes()
|
||||||
layer = data["layers"][layer_foreground]
|
layer = data["layers"][layer_foreground]
|
||||||
|
@ -227,11 +228,11 @@ def get_tile_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
|
|
||||||
|
|
||||||
def get_extra_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
def get_extra_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
print( "WE ARE COMPUTING THE EXTRA DATA OF THE MAP : ", input )
|
if DEBUG: print( "WE ARE COMPUTING THE EXTRA DATA OF THE MAP : ", input )
|
||||||
data = json.load(open(input, "r"))
|
data = json.load(open(input, "r"))
|
||||||
|
|
||||||
nblayer = ["id" in i for i in data["layers"]].count(True) - 1
|
nblayer = ["id" in i for i in data["layers"]].count(True) - 1
|
||||||
print( "I found ", nblayer, " of extradata")
|
if DEBUG: print( "I found ", nblayer, " of extradata")
|
||||||
|
|
||||||
#index of the various layers (may change from one map to another)
|
#index of the various layers (may change from one map to another)
|
||||||
layer_extradata = 0
|
layer_extradata = 0
|
||||||
|
@ -241,7 +242,7 @@ def get_extra_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
datavalid = data["layers"][i]
|
datavalid = data["layers"][i]
|
||||||
if datavalid["name"]=="ExtraData":
|
if datavalid["name"]=="ExtraData":
|
||||||
layer_extradata = i
|
layer_extradata = i
|
||||||
print( "Extra Data in layer : ", layer_extradata)
|
if DEBUG: print( "Extra Data in layer : ", layer_extradata)
|
||||||
break
|
break
|
||||||
elif i==nblayer:
|
elif i==nblayer:
|
||||||
print( "ERROR : No ExtraData layer data !!!" )
|
print( "ERROR : No ExtraData layer data !!!" )
|
||||||
|
@ -287,33 +288,34 @@ def get_extra_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
pathID = None
|
pathID = None
|
||||||
path = j[ "value" ]
|
path = j[ "value" ]
|
||||||
if path==1:
|
if path==1:
|
||||||
print( "PNJ has path - NOW LOOKING FOR RELEVANT DATA" )
|
if DEBUG: print( "PNJ has path - NOW LOOKING FOR RELEVANT DATA" )
|
||||||
|
|
||||||
# we start looking for path data with first the ID of the path Object
|
# we start looking for path data with first the ID of the path Object
|
||||||
for u in i["properties"]:
|
for u in i["properties"]:
|
||||||
if u["name"]=="path":
|
if u["name"]=="path":
|
||||||
pathID = u[ "value" ]
|
pathID = u[ "value" ]
|
||||||
print( "path ID is identified : ID= ", pathID )
|
if DEBUG: print( "path ID is identified : ID= ", pathID )
|
||||||
|
|
||||||
for v in layer["objects"]:
|
for v in layer["objects"]:
|
||||||
if v[ "id" ] == pathID:
|
if v[ "id" ] == pathID:
|
||||||
print( "path data found : " )
|
if DEBUG: print( "path data found : " )
|
||||||
|
|
||||||
xdata = bytes()
|
xdata = bytes()
|
||||||
ydata = bytes()
|
ydata = bytes()
|
||||||
|
|
||||||
for w in v[ "polyline" ]:
|
for w in v[ "polyline" ]:
|
||||||
path_length = path_length + 1
|
path_length = path_length + 1
|
||||||
print( "X= ", w[ "x" ], " Y= ", w[ "y" ] )
|
if DEBUG: print( "X= ", w[ "x" ], " Y= ", w[ "y" ] )
|
||||||
xdata += fxconv.u16( int( w[ "x" ] ) )
|
xdata += fxconv.u16( int( w[ "x" ] ) )
|
||||||
ydata += fxconv.u16( int( w[ "y" ] ) )
|
ydata += fxconv.u16( int( w[ "y" ] ) )
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print( "PNJ has no Path" )
|
if DEBUG: print( "PNJ has no Path" )
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print( "UNIDENTIFIED PROPERTY : ", j["name"])
|
print( "UNIDENTIFIED PROPERTY : ", j["name"])
|
||||||
|
|
||||||
|
if DEBUG:
|
||||||
print( "OBJECT X= ", x, " Y= ", y, "STR= ", dialogID )
|
print( "OBJECT X= ", x, " Y= ", y, "STR= ", dialogID )
|
||||||
print( " Type= ", tpe, " Name= ", nme )
|
print( " Type= ", tpe, " Name= ", nme )
|
||||||
print( " Action?= ", needAction )
|
print( " Action?= ", needAction )
|
||||||
|
@ -345,7 +347,7 @@ def get_extra_map_data(input, output, params, target, xmin, ymin, xmax, ymax):
|
||||||
|
|
||||||
#else we do nothing (yet)
|
#else we do nothing (yet)
|
||||||
else:
|
else:
|
||||||
print( "Skip this object" )
|
if DEBUG: print( "Skip this object" )
|
||||||
|
|
||||||
|
|
||||||
return nbExtraData, structData
|
return nbExtraData, structData
|
||||||
|
@ -372,16 +374,16 @@ def convert_font(input, output, params, target):
|
||||||
|
|
||||||
def convert_dialogs(input, output, params, target):
|
def convert_dialogs(input, output, params, target):
|
||||||
|
|
||||||
print( "WE ARE COMPUTING THE DIALOGS FROM : ", input )
|
if DEBUG: print( "WE ARE COMPUTING THE DIALOGS FROM : ", input )
|
||||||
data = json.load(open(input, "r"))
|
data = json.load(open(input, "r"))
|
||||||
|
|
||||||
structDialogs = fxconv.Structure()
|
structDialogs = fxconv.Structure()
|
||||||
nbdialogs = 0
|
nbdialogs = 0
|
||||||
|
|
||||||
for d in data["dialogs"]:
|
for d in data["dialogs"]:
|
||||||
print( int(d[ "ID" ]))
|
if DEBUG: print( int(d[ "ID" ]))
|
||||||
# print( d[ "dialog" ] )
|
# print( d[ "dialog" ] )
|
||||||
print( int(d[ "isQuestion" ]) )
|
if DEBUG: print( int(d[ "isQuestion" ]) )
|
||||||
# print( d[ "choice" ].replace('$', chr(0)) )
|
# print( d[ "choice" ].replace('$', chr(0)) )
|
||||||
# print( d[ "conclusion1" ] )
|
# print( d[ "conclusion1" ] )
|
||||||
# print( int(d[ "next1" ] ) )
|
# print( int(d[ "next1" ] ) )
|
||||||
|
|