From c684fbc5f72668ff001e4510074280c0645aec11 Mon Sep 17 00:00:00 2001 From: Robert MacRae Date: Sun, 29 Mar 2026 17:06:30 -0300 Subject: [PATCH] Finished example working datapack --- .gitignore | 1 + README.md | 54 ++++++++++- example/assets/languages/en_US.json | 30 ++++++ example/assets/textures/.gitkeep | 0 example/data/dungeons/example/example.json | 20 ++++ .../enemies/hostiles/example/example_1.json | 13 +++ .../enemies/hostiles/example/example_2.json | 13 +++ .../data/enemies/rooms/example/example_1.json | 8 ++ .../data/enemies/rooms/example/example_2.json | 8 ++ .../armour/backpack/example_equipment.json | 35 +++++++ .../items/materials/example/example_1.json | 11 +++ .../items/materials/example/example_2.json | 11 +++ example/data/recipes/example/example_1.json | 16 +++ .../data/skills/example/skill_example_1.json | 15 +++ example/manifest.json | 97 +++++++++++++++++++ 15 files changed, 330 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 example/assets/languages/en_US.json create mode 100644 example/assets/textures/.gitkeep create mode 100644 example/data/dungeons/example/example.json create mode 100644 example/data/enemies/hostiles/example/example_1.json create mode 100644 example/data/enemies/hostiles/example/example_2.json create mode 100644 example/data/enemies/rooms/example/example_1.json create mode 100644 example/data/enemies/rooms/example/example_2.json create mode 100644 example/data/items/armour/backpack/example_equipment.json create mode 100644 example/data/items/materials/example/example_1.json create mode 100644 example/data/items/materials/example/example_2.json create mode 100644 example/data/recipes/example/example_1.json create mode 100644 example/data/skills/example/skill_example_1.json create mode 100644 example/manifest.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ad9f499 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +original/assets/textures/[A-Z,a-z,0-9]* \ No newline at end of file diff --git a/README.md b/README.md index aad87e9..70c8dd7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -# GSO-Datapack -This is a template setup for your datapack to be able to be created +# Galaxy Strike Online Official Example Datapack +## - File Structure +### Manditory + - datapackId + - assets + - languages + - *.json + - textures + - *.json + - data + - dungeons + - *.json + - enemies + - hostiles + - *.json + - rooms + - *.json + - items + - *.json + - recipes + - *.json + - skills + - *.json + - manifest.json +### Optional + - datapackId + - assets + - languages + - *.json + - textures + - folderforsorting(Optional) + - *.json + - data + - dungeons + - folderforsorting(Optional) + - *.json + - enemies + - hostiles + - folderforsorting(Optional) + - *.json + - rooms + - folderforsorting(Optional) + - *.json + - items + - folderforsorting(Optional) + - *.json + - recipes + - folderforsorting(Optional) + - *.json + - skills + - folderforsorting(Optional) + - *.json \ No newline at end of file diff --git a/example/assets/languages/en_US.json b/example/assets/languages/en_US.json new file mode 100644 index 0000000..8c87532 --- /dev/null +++ b/example/assets/languages/en_US.json @@ -0,0 +1,30 @@ +{ + "dungeons.example.dungeon.example" : "This is a title", + "dungeons.example.dungeon.example.desc" : "This is a description", + "enemies.example.name.example_1" : "This is a hostile named 1", + "enemies.example.name.example_2" : "This is a hostile named 2", + "items.materials.example.example_armor_1" : "This is an armor peace", + "items.materials.example.example_armor_1.desc" : "This is a description of an armor peace", + "items.materials.example.example_material_1" : "This is an material 1", + "items.materials.example.example_material_1.desc" : "This is a description of an material 1", + "items.materials.example.example_material_2" : "This is a material 2", + "items.materials.example.example_material_2.desc" : "This is a description of an material 2", + "skills.category.example.example.skill_example_1" : "This is an example skill", + "skills.category.example.example.skill_example_1.desc" : "This is a description of an material 2", + "admin.category.example.item_list.example_1" : "Example 1", + "admin.category.example.item_list.example_2" : "Example 2", + "admin.category.example.hostiles_list.example_1" : "Example 1", + "admin.category.example.hostiles_list.example_2" : "Example 2", + "admin.category.example.player_list.example_1" : "Example 1", + "admin.category.example.player_list.example_2" : "Example 2", + "admin.category.example.admin_role.example_1" : "Example 1", + "admin.category.example.admin_role.example_2" : "Example 2", + "core_systems.category.example.core_systems.example_1" : "Example 1", + "core_systems.category.example.core_systems.example_2" : "Example 2", + "recipes.category.example.recipes.example_1" : "Example 1", + "recipes.category.example.recipes.example_2" : "Example 2", + "shop.category.example.shop.example_1" : "Example 1", + "shop.category.example.shop.example_2" : "Example 2", + "skills.category.example.skills.example_1" : "Example 1", + "skills.category.example.skills.example_2" : "Example 2" +} \ No newline at end of file diff --git a/example/assets/textures/.gitkeep b/example/assets/textures/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/example/data/dungeons/example/example.json b/example/data/dungeons/example/example.json new file mode 100644 index 0000000..e6abcd0 --- /dev/null +++ b/example/data/dungeons/example/example.json @@ -0,0 +1,20 @@ +{ + "dungeon": { + "id": "example:example/example", + "displayName": "dungeons.example.dungeons.example", + "description": "dungeons.example.dungeons.example.desc", + "energyCost": 0, + "repeatable": false, + "rooms": [ + { + "id": "example:example/example_1" + }, + { + "id": "example:example/example_2" + }, + { + "id": "example:example/example_1" + } + ] + } +} diff --git a/example/data/enemies/hostiles/example/example_1.json b/example/data/enemies/hostiles/example/example_1.json new file mode 100644 index 0000000..5226302 --- /dev/null +++ b/example/data/enemies/hostiles/example/example_1.json @@ -0,0 +1,13 @@ +{ + "hostile": { + "id": "example:example/example", + "displayName": "enemies.example.name.example_1", + "meta": { + "health": 90, + "defense": 1.3, + "damage": 4.1, + "criticalChance": 0.3, + "attackRate": 2 + } + } +} diff --git a/example/data/enemies/hostiles/example/example_2.json b/example/data/enemies/hostiles/example/example_2.json new file mode 100644 index 0000000..493db69 --- /dev/null +++ b/example/data/enemies/hostiles/example/example_2.json @@ -0,0 +1,13 @@ +{ + "hostile": { + "id": "example:example/example", + "displayName": "enemies.example.name.example_2", + "meta": { + "health": 30, + "defense": 0.3, + "damage": 2.1, + "criticalChance": 0.3, + "attackRate": 2 + } + } +} diff --git a/example/data/enemies/rooms/example/example_1.json b/example/data/enemies/rooms/example/example_1.json new file mode 100644 index 0000000..4186c07 --- /dev/null +++ b/example/data/enemies/rooms/example/example_1.json @@ -0,0 +1,8 @@ +{ + "rooms": { + "id": "example:example/example_1", + "hostiles": ["example:example/example_2"], + "gainXp": 4, + "credits": 200 + } +} diff --git a/example/data/enemies/rooms/example/example_2.json b/example/data/enemies/rooms/example/example_2.json new file mode 100644 index 0000000..be91aa1 --- /dev/null +++ b/example/data/enemies/rooms/example/example_2.json @@ -0,0 +1,8 @@ +{ + "rooms": { + "id": "example:example/example_2", + "hostiles": ["example:example/example_1", "original:example/example_2"], + "gainXp": 3, + "credits": 30 + } +} diff --git a/example/data/items/armour/backpack/example_equipment.json b/example/data/items/armour/backpack/example_equipment.json new file mode 100644 index 0000000..887dea4 --- /dev/null +++ b/example/data/items/armour/backpack/example_equipment.json @@ -0,0 +1,35 @@ +{ + "armour": { + "id": "example:example_armor_1", + "displayName": "items.materials.example.example_armor_1", + "description": "items.materials.example.example_armor_1.desc", + "texture": "example/assets/armour/backpack/example_1.png", + "stats": { + "attack.base" : 9.2, + "attack.chance" : 0.5, + "attack.rating" : 0.5, + "defence.base" : 55.5, + "defence.chance" : 0.5, + "defence.rating" : 0.5, + "health" : 50, + "penetration.base" : 0.5, + "penetration.chance" : 0.5, + "penetration.rating" : 0.5, + "reflect.base" : 0.5, + "reflect.chance" : 0.5, + "reflect.rating" : 0.5, + "resistance.base" : 0.5, + "resistance.cold" : 0.5, + "resistance.gamma" : 0.5, + "resistance.heat" : 0.5, + "resistance.ion" : 0.5, + "resistance.physical" : 0.5, + "resistance.plasma" : 0.5 + }, + "meta": { + "rarity": "common", + "equipmentSlot": "original:accessory", + "storeCategory": "original:bag" + } + } +} diff --git a/example/data/items/materials/example/example_1.json b/example/data/items/materials/example/example_1.json new file mode 100644 index 0000000..b884a93 --- /dev/null +++ b/example/data/items/materials/example/example_1.json @@ -0,0 +1,11 @@ +{ + "materials": { + "id": "example:example_material_1", + "texture": "original/assets/textures/materials/example/example_1.png", + "displayName": "items.materials.example.example_material_1", + "description": "items.materials.example.example_material_1.desc", + "meta": { + "storeCategory": "original:materials" + } + } +} diff --git a/example/data/items/materials/example/example_2.json b/example/data/items/materials/example/example_2.json new file mode 100644 index 0000000..ebc97b2 --- /dev/null +++ b/example/data/items/materials/example/example_2.json @@ -0,0 +1,11 @@ +{ + "materials": { + "id": "example:example_material_2", + "texture": "original/assets/textures/materials/example/example_2.png", + "displayName": "items.materials.example.example_material_2", + "description": "items.materials.example.example_material_2.desc", + "meta": { + "storeCategory": "original:materials" + } + } +} diff --git a/example/data/recipes/example/example_1.json b/example/data/recipes/example/example_1.json new file mode 100644 index 0000000..7780ab4 --- /dev/null +++ b/example/data/recipes/example/example_1.json @@ -0,0 +1,16 @@ +{ + "recipe": { + "inputs": [{ "example:example_material_1": 1 }, { "example:example_material_2": 5 }], + "output": { + "example:example_armor_1": 1 + }, + "time_seconds": 10, + "requires": { + "example:example_1": 0 + } + }, + "craft": { + "type": "example:example_1", + "id": "example:example_1" + } +} diff --git a/example/data/skills/example/skill_example_1.json b/example/data/skills/example/skill_example_1.json new file mode 100644 index 0000000..d57279a --- /dev/null +++ b/example/data/skills/example/skill_example_1.json @@ -0,0 +1,15 @@ +{ + "skills": { + "id": "example:skill_example_1", + "displayName": "skills.category.original.example.skill_example_1", + "description": "skills.category.original.example.skill_example_1.desc", + "meta": { + "category": "example_1", + "topLevel": 10, + "math": { + "start": 50, + "input": 1.1 + } + } + } +} diff --git a/example/manifest.json b/example/manifest.json new file mode 100644 index 0000000..75888db --- /dev/null +++ b/example/manifest.json @@ -0,0 +1,97 @@ +{ + "name": "original", + "version": "0.0.1", + "admin_item_list": { + "categories": { + "example:example_1": { + "displayName": "admin.category.example.item_list.example_1" + }, + "example:example_2": { + "displayName": "admin.category.example.item_list.example_2" + } + } + }, + "admin_hostiles_list": { + "categories": { + "example:example_1": { + "displayName": "admin.category.example.hostiles_list.example_1" + }, + "example:example_2": { + "displayName": "admin.category.example.hostiles_list.example_2" + } + } + }, + "admin_panel": { + "categories": { + "original:admin_hostiles_list": { + "displayName": "admin.category.original.hostile_list" + }, + "original:admin_item_list": { + "displayName": "admin.category.original.item_list" + }, + "original:admin_player_list": { + "displayName": "admin.category.original.player_list" + } + } + }, + "admin_player_list": { + "categories": { + "example:example_1": { + "displayName": "admin.category.example.player_list.example_1" + }, + "example:example_2": { + "displayName": "admin.category.example.player_list.example_2" + } + } + }, + "admin_role": { + "categories": { + "example:example_1": { + "displayName": "admin.category.example.admin_role.example_1" + }, + "example:example_2": { + "displayName": "admin.category.example.admin_role.example_2" + } + } + }, + "core_systems": { + "categories": { + "example:example_1": { + "displayName": "core_systems.category.example.core_systems.example_1" + }, + "example:example_2": { + "displayName": "core_systems.category.example.core_systems.example_2" + } + } + }, + "recipes": { + "categories": { + "example:example_1": { + "displayName": "recipes.category.example.recipes.example_1" + }, + "example:example_2": { + "displayName": "recipes.category.example.recipes.example_2" + } + } + }, + "shop": { + "categories": { + "example:example_1": { + "displayName": "shop.category.example.shop.example_1" + }, + "example:example_2": { + "displayName": "shop.category.example.shop.example_2" + } + } + }, + "skills": { + "categories": { + "example:example_1": { + "displayName": "skills.category.example.skills.example_1" + }, + "example:example_2": { + "displayName": "skills.category.example.skills.example_2" + } + } + } +}