Skip to content

Instantly share code, notes, and snippets.

@prime31
Created November 4, 2023 23:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prime31/c56d1c03fccadc6fcfe78e37e5ce6a47 to your computer and use it in GitHub Desktop.
Save prime31/c56d1c03fccadc6fcfe78e37e5ce6a47 to your computer and use it in GitHub Desktop.
LDtk export from json schema
pub const Ld = struct {
description: []const u8,
title: []const u8,
// renamed from: "$schema
schema: []const u8,
// renamed from: "$ref
ref: []const u8,
version: []const u8,
// renamed from: "LdtkJsonRoot
ldtk_json_root: LdtkJsonRoot,
other_types: OtherTypes,
};
pub const LdtkJsonRoot = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
properties: LdtkJsonRootProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const LdtkJsonRootProperties = struct {
backup_limit: AppBuildId,
default_entity_width: AppBuildId,
backup_on_save: AppBuildId,
world_grid_width: AppBuildId,
iid: AppBuildId,
default_level_bg_color: AppBuildId,
bg_color: AppBuildId,
worlds: CustomCommands,
toc: CustomCommands,
next_uid: AppBuildId,
image_export_mode: IdentifierStyle,
identifier_style: IdentifierStyle,
default_pivot_y: AppBuildId,
dummy_world_iid: AppBuildId,
custom_commands: CustomCommands,
world_grid_height: AppBuildId,
app_build_id: AppBuildId,
default_grid_size: AppBuildId,
world_layout: WorldLayout,
flags: Flags,
level_name_pattern: AppBuildId,
export_png: AppBuildId,
default_level_width: AppBuildId,
png_file_pattern: AppBuildId,
// renamed from: "__FORCED_REFS
forced_refs: ForcedRefs,
export_tiled: AppBuildId,
defs: Defs,
levels: CustomCommands,
json_version: AppBuildId,
default_entity_height: AppBuildId,
default_pivot_x: AppBuildId,
default_level_height: AppBuildId,
simplified_export: AppBuildId,
external_levels: AppBuildId,
tutorial_desc: AppBuildId,
minify_json: AppBuildId,
export_level_bg: AppBuildId,
backup_rel_path: AppBuildId,
};
pub const AppBuildId = struct {
description: []const u8,
type: std.ArrayList(ForcedRefsType),
};
// NOT SURE preferedNamingStyle
pub const ForcedRefsType = enum {
Boolean,
Integer,
Null,
Number,
Object,
String,
};
pub const CustomCommands = struct {
description: []const u8,
items: ItemsValue,
type: std.ArrayList(CustomCommandsType),
};
pub const ItemsValue = struct {
// renamed from: "$ref
ref: []const u8,
};
// NOT SURE preferedNamingStyle
pub const CustomCommandsType = enum {
Array,
Null,
};
pub const Defs = struct {
description: []const u8,
// renamed from: "$ref
ref: []const u8,
};
pub const Flags = struct {
description: []const u8,
items: FlagsItems,
type: std.ArrayList(CustomCommandsType),
};
pub const FlagsItems = struct {
// renamed from: "enum
items_enum: std.ArrayList([]const u8),
};
pub const ForcedRefs = struct {
description: []const u8,
properties: std.StringHashMap(ItemsValue),
type: std.ArrayList(ForcedRefsType),
};
pub const IdentifierStyle = struct {
description: []const u8,
// renamed from: "enum
identifier_style_enum: std.ArrayList([]const u8),
};
pub const WorldLayout = struct {
description: []const u8,
// renamed from: "enum
world_layout_enum: std.ArrayList(?[]const u8),
};
pub const OtherTypes = struct {
tileset_rect: TilesetRect,
field_instance: FieldInstance,
entity_instance: EntityInstance,
definitions: Definitions,
enum_tag_value: EnumTagValue,
auto_rule_def: AutoRuleDef,
field_def: FieldDef,
custom_command: CustomCommand,
entity_def: EntityDef,
auto_layer_rule_group: AutoLayerRuleGroup,
int_grid_value_group_def: IntGridValueGroupDef,
int_grid_value_instance: IntGridValueInstance,
neighbour_level: NeighbourLevel,
layer_instance: LayerInstance,
world: World,
entity_reference_infos: EntityReferenceInfos,
tile_custom_metadata: TileCustomMetadata,
tileset_def: TilesetDef,
enum_def_values: EnumDefValues,
tile: Tile,
layer_def: LayerDef,
level_bg_pos_infos: LevelBgPosInfos,
level: Level,
table_of_content_entry: TableOfContentEntry,
enum_def: EnumDef,
grid_point: GridPoint,
int_grid_value_def: IntGridValueDef,
};
pub const AutoLayerRuleGroup = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: AutoLayerRuleGroupProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const AutoLayerRuleGroupProperties = struct {
name: AppBuildId,
collapsed: AppBuildId,
color: AppBuildId,
is_optional: AppBuildId,
icon: Icon,
uses_wizard: AppBuildId,
uid: AppBuildId,
active: AppBuildId,
rules: CustomCommands,
};
pub const Icon = struct {
description: []const u8,
one_of: std.ArrayList(OneOf),
};
pub const OneOf = struct {
type: ?std.ArrayList(ForcedRefsType),
// renamed from: "$ref
ref: ?[]const u8,
};
pub const AutoRuleDef = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: AutoRuleDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const AutoRuleDefProperties = struct {
flip_x: AppBuildId,
pivot_x: AppBuildId,
perlin_active: AppBuildId,
perlin_scale: AppBuildId,
out_of_bounds_value: AppBuildId,
pattern: Pattern,
tile_random_x_min: AppBuildId,
checker: IdentifierStyle,
perlin_octaves: AppBuildId,
tile_ids: Pattern,
alpha: AppBuildId,
tile_x_offset: AppBuildId,
x_modulo: AppBuildId,
size: AppBuildId,
chance: AppBuildId,
break_on_match: AppBuildId,
tile_y_offset: AppBuildId,
uid: AppBuildId,
perlin_seed: AppBuildId,
y_offset: AppBuildId,
tile_random_y_max: AppBuildId,
tile_random_y_min: AppBuildId,
tile_mode: IdentifierStyle,
flip_y: AppBuildId,
tile_random_x_max: AppBuildId,
pivot_y: AppBuildId,
y_modulo: AppBuildId,
active: AppBuildId,
x_offset: AppBuildId,
};
pub const Pattern = struct {
description: []const u8,
items: PatternItems,
type: std.ArrayList(CustomCommandsType),
};
pub const PatternItems = struct {
type: std.ArrayList(ForcedRefsType),
};
pub const CustomCommand = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: CustomCommandProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const CustomCommandProperties = struct {
when: IdentifierStyle,
command: AppBuildId,
};
pub const Definitions = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: DefinitionsProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const DefinitionsProperties = struct {
tilesets: CustomCommands,
layers: CustomCommands,
level_fields: CustomCommands,
enums: CustomCommands,
entities: CustomCommands,
external_enums: CustomCommands,
};
pub const EntityDef = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EntityDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EntityDefProperties = struct {
tile_id: AppBuildId,
show_name: AppBuildId,
tileset_id: AppBuildId,
max_height: AppBuildId,
limit_scope: IdentifierStyle,
pivot_x: AppBuildId,
max_count: AppBuildId,
hollow: AppBuildId,
min_height: AppBuildId,
keep_aspect_ratio: AppBuildId,
color: AppBuildId,
min_width: AppBuildId,
tile_rect: Icon,
doc: AppBuildId,
field_defs: CustomCommands,
tile_render_mode: IdentifierStyle,
limit_behavior: IdentifierStyle,
tile_opacity: AppBuildId,
nine_slice_borders: Pattern,
resizable_x: AppBuildId,
ui_tile_rect: Icon,
uid: AppBuildId,
line_opacity: AppBuildId,
max_width: AppBuildId,
resizable_y: AppBuildId,
export_to_toc: AppBuildId,
fill_opacity: AppBuildId,
height: AppBuildId,
identifier: AppBuildId,
pivot_y: AppBuildId,
render_mode: IdentifierStyle,
tags: Pattern,
width: AppBuildId,
};
pub const EntityInstance = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EntityInstanceProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EntityInstanceProperties = struct {
iid: AppBuildId,
def_uid: AppBuildId,
// renamed from: "__identifier
identifier: AppBuildId,
// renamed from: "__tile
tile: Icon,
px: Pattern,
// renamed from: "__worldX
world_x: AppBuildId,
// renamed from: "__worldY
world_y: AppBuildId,
// renamed from: "__smartColor
smart_color: AppBuildId,
// renamed from: "__grid
grid: Pattern,
// renamed from: "__pivot
pivot: Pattern,
field_instances: CustomCommands,
height: AppBuildId,
// renamed from: "__tags
tags: Pattern,
width: AppBuildId,
};
pub const EntityReferenceInfos = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EntityReferenceInfosProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EntityReferenceInfosProperties = struct {
world_iid: AppBuildId,
entity_iid: AppBuildId,
layer_iid: AppBuildId,
level_iid: AppBuildId,
};
pub const EnumDef = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EnumDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EnumDefProperties = struct {
external_file_checksum: AppBuildId,
external_rel_path: AppBuildId,
uid: AppBuildId,
values: CustomCommands,
icon_tileset_uid: AppBuildId,
identifier: AppBuildId,
tags: Pattern,
};
pub const EnumDefValues = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EnumDefValuesProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EnumDefValuesProperties = struct {
tile_id: AppBuildId,
color: AppBuildId,
tile_rect: Icon,
id: AppBuildId,
// renamed from: "__tileSrcRect
tile_src_rect: Pattern,
};
pub const EnumTagValue = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: EnumTagValueProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const EnumTagValueProperties = struct {
tile_ids: Pattern,
enum_value_id: AppBuildId,
};
pub const FieldDef = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: FieldDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const FieldDefProperties = struct {
accept_file_types: Pattern,
editor_display_scale: AppBuildId,
use_for_smart_color: AppBuildId,
editor_show_in_world: AppBuildId,
allowed_refs: IdentifierStyle,
editor_always_show: AppBuildId,
array_min_length: AppBuildId,
editor_text_suffix: AppBuildId,
min: AppBuildId,
// renamed from: "__type
type: AppBuildId,
editor_display_mode: IdentifierStyle,
editor_display_color: AppBuildId,
can_be_null: AppBuildId,
auto_chain_ref: AppBuildId,
doc: AppBuildId,
allowed_refs_entity_uid: AppBuildId,
tileset_uid: AppBuildId,
allowed_ref_tags: Pattern,
symmetrical_ref: AppBuildId,
uid: AppBuildId,
editor_text_prefix: AppBuildId,
is_array: AppBuildId,
editor_display_pos: IdentifierStyle,
text_language_mode: WorldLayout,
max: AppBuildId,
allow_out_of_level_ref: AppBuildId,
editor_cut_long_values: AppBuildId,
default_override: DefaultOverride,
editor_link_style: IdentifierStyle,
regex: AppBuildId,
// renamed from: "type
properties_type: AppBuildId,
identifier: AppBuildId,
array_max_length: AppBuildId,
};
pub const DefaultOverride = struct {
description: []const u8,
};
pub const FieldInstance = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: FieldInstanceProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const FieldInstanceProperties = struct {
// renamed from: "__type
type: AppBuildId,
def_uid: AppBuildId,
// renamed from: "__identifier
identifier: AppBuildId,
// renamed from: "__tile
tile: Icon,
real_editor_values: RealEditorValues,
// renamed from: "__value
value: DefaultOverride,
};
pub const RealEditorValues = struct {
description: []const u8,
items: RealEditorValuesItems,
type: std.ArrayList(CustomCommandsType),
};
pub const RealEditorValuesItems = struct {
};
pub const GridPoint = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: GridPointProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const GridPointProperties = struct {
cy: AppBuildId,
cx: AppBuildId,
};
pub const IntGridValueDef = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: IntGridValueDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const IntGridValueDefProperties = struct {
tile: Icon,
color: AppBuildId,
identifier: AppBuildId,
value: AppBuildId,
group_uid: AppBuildId,
};
pub const IntGridValueGroupDef = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: IntGridValueGroupDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const IntGridValueGroupDefProperties = struct {
color: AppBuildId,
uid: AppBuildId,
identifier: AppBuildId,
};
pub const IntGridValueInstance = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: IntGridValueInstanceProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const IntGridValueInstanceProperties = struct {
v: AppBuildId,
coord_id: AppBuildId,
};
pub const LayerDef = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: LayerDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const LayerDefProperties = struct {
px_offset_x: AppBuildId,
tile_pivot_x: AppBuildId,
display_opacity: AppBuildId,
parallax_factor_y: AppBuildId,
hide_in_list: AppBuildId,
// renamed from: "__type
type: AppBuildId,
guide_grid_hei: AppBuildId,
ui_color: AppBuildId,
doc: AppBuildId,
tileset_def_uid: AppBuildId,
can_select_when_inactive: AppBuildId,
auto_source_layer_def_uid: AppBuildId,
auto_tileset_def_uid: AppBuildId,
parallax_scaling: AppBuildId,
render_in_world_view: AppBuildId,
int_grid_values_groups: CustomCommands,
inactive_opacity: AppBuildId,
uid: AppBuildId,
excluded_tags: Pattern,
hide_fields_when_inactive: AppBuildId,
int_grid_values: CustomCommands,
auto_rule_groups: CustomCommands,
// renamed from: "type
properties_type: IdentifierStyle,
identifier: AppBuildId,
guide_grid_wid: AppBuildId,
required_tags: Pattern,
px_offset_y: AppBuildId,
tile_pivot_y: AppBuildId,
grid_size: AppBuildId,
parallax_factor_x: AppBuildId,
};
pub const LayerInstance = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: LayerInstanceProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const LayerInstanceProperties = struct {
// renamed from: "__cHei
c_hei: AppBuildId,
px_offset_x: AppBuildId,
// renamed from: "__tilesetRelPath
tileset_rel_path: AppBuildId,
iid: AppBuildId,
level_id: AppBuildId,
// renamed from: "__type
type: AppBuildId,
auto_layer_tiles: CustomCommands,
optional_rules: Pattern,
// renamed from: "__identifier
identifier: AppBuildId,
// renamed from: "__gridSize
grid_size: AppBuildId,
// renamed from: "__pxTotalOffsetY
px_total_offset_y: AppBuildId,
int_grid_csv: Pattern,
override_tileset_uid: AppBuildId,
visible: AppBuildId,
entity_instances: CustomCommands,
// renamed from: "__opacity
opacity: AppBuildId,
seed: AppBuildId,
layer_def_uid: AppBuildId,
// renamed from: "__pxTotalOffsetX
px_total_offset_x: AppBuildId,
// renamed from: "__cWid
c_wid: AppBuildId,
px_offset_y: AppBuildId,
// renamed from: "__tilesetDefUid
tileset_def_uid: AppBuildId,
grid_tiles: CustomCommands,
int_grid: CustomCommands,
};
pub const Level = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: LevelProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const LevelProperties = struct {
// renamed from: "__neighbours
neighbours: CustomCommands,
// renamed from: "__bgColor
bg_color: AppBuildId,
world_x: AppBuildId,
external_rel_path: AppBuildId,
use_auto_identifier: AppBuildId,
iid: AppBuildId,
// renamed from: "bgColor
properties_bg_color: AppBuildId,
// renamed from: "bgPos
properties_bg_pos: WorldLayout,
px_hei: AppBuildId,
world_y: AppBuildId,
// renamed from: "__bgPos
bg_pos: Icon,
uid: AppBuildId,
// renamed from: "__smartColor
smart_color: AppBuildId,
field_instances: CustomCommands,
px_wid: AppBuildId,
identifier: AppBuildId,
bg_pivot_y: AppBuildId,
bg_pivot_x: AppBuildId,
layer_instances: CustomCommands,
bg_rel_path: AppBuildId,
world_depth: AppBuildId,
};
pub const LevelBgPosInfos = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: LevelBgPosInfosProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const LevelBgPosInfosProperties = struct {
crop_rect: Pattern,
scale: Pattern,
top_left_px: Pattern,
};
pub const NeighbourLevel = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: NeighbourLevelProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const NeighbourLevelProperties = struct {
level_iid: AppBuildId,
level_uid: AppBuildId,
dir: AppBuildId,
};
pub const TableOfContentEntry = struct {
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: TableOfContentEntryProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const TableOfContentEntryProperties = struct {
identifier: AppBuildId,
instances: CustomCommands,
};
pub const Tile = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: TileProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const TileProperties = struct {
t: AppBuildId,
d: Pattern,
px: Pattern,
a: AppBuildId,
f: AppBuildId,
src: Pattern,
};
pub const TileCustomMetadata = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: TileCustomMetadataProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const TileCustomMetadataProperties = struct {
tile_id: AppBuildId,
data: AppBuildId,
};
pub const TilesetDef = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: TilesetDefProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const TilesetDefProperties = struct {
cached_pixel_data: AppBuildId,
// renamed from: "__cHei
c_hei: AppBuildId,
px_hei: AppBuildId,
custom_data: CustomCommands,
tags_source_enum_uid: AppBuildId,
uid: AppBuildId,
padding: AppBuildId,
enum_tags: CustomCommands,
px_wid: AppBuildId,
// renamed from: "__cWid
c_wid: AppBuildId,
spacing: AppBuildId,
identifier: AppBuildId,
saved_selections: Pattern,
tags: Pattern,
embed_atlas: WorldLayout,
rel_path: AppBuildId,
tile_grid_size: AppBuildId,
};
pub const TilesetRect = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: TilesetRectProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const TilesetRectProperties = struct {
tileset_uid: AppBuildId,
h: AppBuildId,
x: AppBuildId,
y: AppBuildId,
w: AppBuildId,
};
pub const World = struct {
description: []const u8,
title: []const u8,
required: std.ArrayList([]const u8),
additional_properties: bool,
properties: WorldProperties,
type: std.ArrayList(ForcedRefsType),
};
pub const WorldProperties = struct {
world_grid_width: AppBuildId,
iid: AppBuildId,
world_grid_height: AppBuildId,
world_layout: WorldLayout,
default_level_width: AppBuildId,
levels: CustomCommands,
default_level_height: AppBuildId,
identifier: AppBuildId,
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment