Skip to content

Commit

Permalink
minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
evolutionleo committed Jan 3, 2022
1 parent 7a1c1c0 commit 1631324
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 18 deletions.
4 changes: 3 additions & 1 deletion LDtkParser.yyp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions datafiles/LDtkTest.ldtk
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,7 @@
{ "px": [0,32], "src": [32,0], "f": 0, "t": 1, "d": [14] },
{ "px": [32,32], "src": [32,0], "f": 0, "t": 1, "d": [15] },
{ "px": [64,32], "src": [32,0], "f": 0, "t": 1, "d": [16] },
{ "px": [256,32], "src": [0,0], "f": 0, "t": 0, "d": [22] },
{ "px": [352,32], "src": [32,0], "f": 0, "t": 1, "d": [25] },
{ "px": [384,32], "src": [32,0], "f": 0, "t": 1, "d": [26] },
{ "px": [416,32], "src": [32,0], "f": 0, "t": 1, "d": [27] },
Expand Down
2 changes: 1 addition & 1 deletion objects/oLDtk/Create_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ if (LDTK_LIVE) {
// so we need to load directly from the project folder

// change this to your project directory
file: "C:\\Users\\evolu\\Desktop\\Projects\\Actual projects\\GMS 2.3 Projects\\LDtkParser\\datafiles\\LDtkTest.ldtk",
file: "D:\\Projects\\GameMaker Projects\\LDtkParser\\datafiles\\LDtkTest.ldtk",
level_name: "LDtkTest1"
})
}
Expand Down
11 changes: 11 additions & 0 deletions options/operagx/options_operagx.yy

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 61 additions & 0 deletions options/windowsuap/options_windowsuap.yy

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 29 additions & 16 deletions scripts/LDtkParser/LDtkParser.gml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ global.__ldtk_config = {
}
}


global.__ldtk_live_hash = ""

global.__ldtk_live_timer = -1
Expand Down Expand Up @@ -108,7 +109,7 @@ function LDtkLoad(level_name) {

var file = config.file
if (!file_exists(file)) {
throw "Warning! LDtk project file is not specified or file does not exist!"
throw "Warning! LDtk project file is not specified or file does not exist! (" + string(file) + ")"
return -1
}

Expand Down Expand Up @@ -164,11 +165,11 @@ function LDtkLoad(level_name) {
// for each layer in the level
for(var i = 0; i < array_length(level.layerInstances); i++) {
var this_layer = level.layerInstances[i]
var layer_name = this_layer.__identifier
var _layer_name = this_layer.__identifier

var gm_layer_name = config.mappings.layers[$ (layer_name)]
var gm_layer_name = config.mappings.layers[$ (_layer_name)]
if gm_layer_name == undefined
gm_layer_name = layer_name
gm_layer_name = _layer_name

var gm_layer_id = layer_get_id(gm_layer_name)

Expand Down Expand Up @@ -204,10 +205,14 @@ function LDtkLoad(level_name) {
inst.image_yscale = entity.height / sh


var prepare_point = function(point) {
return { x: point.cx * tile_size, y: point.cy * tile_size }
var prepare_point = function(point, tile_size) {
if !is_struct(point) and point == pointer_null { // if the field is null
//show_message(point)
return undefined
}
return { x: point.cx * tile_size, y: point.cy * tile_size }
}

var prepare_color = function(color) {
// cut the #
color = string_copy(color, 2, string_length(color)-1)
Expand All @@ -219,14 +224,19 @@ function LDtkLoad(level_name) {
return make_color_rgb(red, green, blue)
}

var prepare_enum = function(enum_name, value) {
var result = global.__ldtk_config.mappings.enums[$ (enum_name)][$ (value)]
var prepare_enum = function(_enum_name, value) {
if value == pointer_null
return value

var result = global.__ldtk_config.mappings.enums[$ (_enum_name)][$ (value)]

if result == undefined
return value // just return the string
else
return result
}


// Load the fields

if (config.escape_fields) {
Expand All @@ -251,7 +261,7 @@ function LDtkLoad(level_name) {
// some types require additional work
switch(field_type) {
case "Point":
field_value = prepare_point(field_value)
field_value = prepare_point(field_value, tile_size)
break
case "Array<Point>":
for(var j = 0; j < array_length(field_value); j++) {
Expand All @@ -270,15 +280,15 @@ function LDtkLoad(level_name) {
if (string_pos("LocalEnum", field_type)) {
var enum_name_idx = string_pos(".", field_type)
var enum_name_len = string_length(field_type)
var enum_name = string_copy(field_type, enum_name_idx+1, 999)
var _enum_name = string_copy(field_type, enum_name_idx+1, 999)

if (string_pos("Array<", field_type)) {
for(var j = 0; j < array_length(field_value); j++) {
field_value[@ j] = prepare_enum(enum_name, field_value[j])
field_value[@ j] = prepare_enum(_enum_name, field_value[j])
}
}
else {
field_value = prepare_enum(enum_name, field_value)
field_value = prepare_enum(_enum_name, field_value)
}
}

Expand All @@ -301,7 +311,7 @@ function LDtkLoad(level_name) {
__LDtkTrace("Loaded Entity! GM instance id=%", inst)
}

__LDtkTrace("Loaded an Entities Layer! name=%, gm_name=%", layer_name, gm_layer_name)
__LDtkTrace("Loaded an Entities Layer! name=%, gm_name=%", _layer_name, gm_layer_name)
break
case "IntGrid": // just ignore...
__LDtkTrace("IntGrid layers are ignored")
Expand Down Expand Up @@ -356,7 +366,7 @@ function LDtkLoad(level_name) {
tilemap_set(tilemap, tile_data, cell_x, cell_y)
}

__LDtkTrace("Loaded a Tile Layer! name=%, gm_name=%", layer_name, gm_layer_name)
__LDtkTrace("Loaded a Tile Layer! name=%, gm_name=%", _layer_name, gm_layer_name)
break
default:
__LDtkTrace("warning! undefined layer type! (%)", this_layer.__type)
Expand Down Expand Up @@ -418,6 +428,9 @@ function LDtkReloadFields() {
return -1
}

if (!variable_instance_exists(self, "__ldtk_fields"))
return 0

var field_names = variable_struct_get_names(self.__ldtk_fields)
for(var i = 0; i < array_length(field_names); ++i) {
var field_name = field_names[i]
Expand Down Expand Up @@ -445,4 +458,4 @@ function hex_to_dec(str) {
}

return ans
}
}

0 comments on commit 1631324

Please sign in to comment.