diff --git a/gm4_gilded_gateways/README.md b/gm4_gilded_gateways/README.md new file mode 100644 index 0000000000..fbaf0ce449 --- /dev/null +++ b/gm4_gilded_gateways/README.md @@ -0,0 +1,10 @@ +# Gilded Gateways + +Tired of boring bedrock end gateways? Bring back the magic with custom gateways! + +Prettier End Gateways + +### Features +- Swag out your end! +- 3 Unique Gateway types for the main island +- A secret 4th type for the outer end diff --git a/gm4_gilded_gateways/beet.yaml b/gm4_gilded_gateways/beet.yaml new file mode 100644 index 0000000000..fc219ec800 --- /dev/null +++ b/gm4_gilded_gateways/beet.yaml @@ -0,0 +1,29 @@ +id: gm4_gilded_gateways +name: Gilded Gateways +version: 1.0.X + +data_pack: + load: . + +pipeline: + - gm4.plugins.extend.module + +meta: + gm4: + versioning: + schedule_loops: [tick] + website: + description: Tired of boring bedrock end gateways? Bring back the magic with custom gateways! + recommended: [] + notes: [] + modrinth: + project_id: pJokm5M5 + smithed: + pack_id: gm4_gilded_gateways + wiki: https://wiki.gm4.co/wiki/Gilded_Gateways + credits: + Creators: + - runcows + - Dinoguin_Jess + Icon Design: + - runcows diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/function/init.mcfunction b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/init.mcfunction new file mode 100644 index 0000000000..cfa54ab7fa --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/init.mcfunction @@ -0,0 +1,7 @@ +execute unless score gilded_gateways gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Gilded Gateways"} +execute unless score gilded_gateways gm4_earliest_version < gilded_gateways gm4_modules run scoreboard players operation gilded_gateways gm4_earliest_version = gilded_gateways gm4_modules +scoreboard players set gilded_gateways gm4_modules 1 + +scoreboard objectives add gm4_gilded_gateways dummy + +schedule function gm4_gilded_gateways:tick 1t diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/function/link.mcfunction b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/link.mcfunction new file mode 100644 index 0000000000..18739cb4d9 --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/link.mcfunction @@ -0,0 +1,9 @@ +# @s = gateway marker of newly linked main island gateway +# at @s +# run from tick + +data modify entity @s data.gm4_gilded_gateways.exit.x set from block ~ ~ ~ exit_portal[0] +data modify entity @s data.gm4_gilded_gateways.exit.y set from block ~ ~ ~ exit_portal[1] +data modify entity @s data.gm4_gilded_gateways.exit.z set from block ~ ~ ~ exit_portal[2] + +function gm4_gilded_gateways:position with entity @s data.gm4_gilded_gateways.exit diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/function/place.mcfunction b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/place.mcfunction new file mode 100644 index 0000000000..7a4f759a35 --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/place.mcfunction @@ -0,0 +1,20 @@ +# @s = gateway marker of newly linked main island gateway +# at newly generated gateway on other side +# run from position + +execute store success score #loaded gm4_gilded_gateways if loaded ~ ~ ~ +# if its not loaded, then its for sure not forceloaded, so we can blindly forceload +execute if score #loaded gm4_gilded_gateways matches 0 run forceload add ~ ~ + +execute unless block ~ ~ ~ end_gateway unless block ~ ~1 ~ bedrock run return fail + +# place +execute if entity @s[tag=gm4_gilded_gateways.gateway.0] run place template gm4_gilded_gateways:postgen_0 ~-2 ~-4 ~-2 +execute if entity @s[tag=gm4_gilded_gateways.gateway.1] run place template gm4_gilded_gateways:postgen_1 ~-2 ~-4 ~-2 +execute if entity @s[tag=gm4_gilded_gateways.gateway.2] run place template gm4_gilded_gateways:postgen_2 ~-2 ~-4 ~-2 + +# unforceload +execute if score #loaded gm4_gilded_gateways matches 0 run forceload remove ~ ~ + +# kill +kill @s diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/function/position.mcfunction b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/position.mcfunction new file mode 100644 index 0000000000..c7c5226c0d --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/position.mcfunction @@ -0,0 +1,6 @@ +# @s = gateway marker of newly linked main island gateway +# at @s +# run from link +# with $x, $y, $z: int coord positions + +$execute positioned $(x) $(y) $(z) positioned ~ ~0.5 ~ run function gm4_gilded_gateways:place diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/function/tick.mcfunction b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/tick.mcfunction new file mode 100644 index 0000000000..e33e766ede --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/function/tick.mcfunction @@ -0,0 +1,5 @@ +schedule function gm4_gilded_gateways:tick 1t + +execute in minecraft:the_end positioned 0 128 0 \ + as @e[type=marker,tag=gm4_gilded_gateways.gateway,distance=..200] at @s \ + if data block ~ ~ ~ exit_portal run function gm4_gilded_gateways:link diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/guidebook/gilded_gateways.json b/gm4_gilded_gateways/data/gm4_gilded_gateways/guidebook/gilded_gateways.json new file mode 100644 index 0000000000..fcf81406f2 --- /dev/null +++ b/gm4_gilded_gateways/data/gm4_gilded_gateways/guidebook/gilded_gateways.json @@ -0,0 +1,44 @@ +{ + "id": "gilded_gateways", + "name": "Gilded Gateways", + "module_type": "module", + "icon": { + "id": "minecraft:bedrock" + }, + "criteria": { + "enter_gateway": { + "trigger": "minecraft:enter_block", + "conditions": { + "player": { + "type": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } + }, + "blocks": "minecraft:end_gateway" + } + } + }, + "sections": [ + { + "name": "display", + "enable": [], + "requirements": [ + [ + "enter_gateway" + ] + ], + "pages": [ + [ + { + "insert": "title" + }, + { + "translate": "text.gm4.guidebook.gilded_gateways.description", + "fallback": "3 Unique Gateway types for the main island\nAnd a secret 4th type for the outer end" + } + ] + ] + } + ] +} diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_0.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_0.nbt new file mode 100644 index 0000000000..45368b56e7 Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_0.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_1.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_1.nbt new file mode 100644 index 0000000000..1b4a46ed20 Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_1.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_2.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_2.nbt new file mode 100644 index 0000000000..6b0ab38bfc Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/main_2.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_0.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_0.nbt new file mode 100644 index 0000000000..fbe8b4cd5b Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_0.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_1.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_1.nbt new file mode 100644 index 0000000000..43b9b5d321 Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_1.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_2.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_2.nbt new file mode 100644 index 0000000000..4bda6d7803 Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/postgen_2.nbt differ diff --git a/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/return.nbt b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/return.nbt new file mode 100644 index 0000000000..5cbd2249b7 Binary files /dev/null and b/gm4_gilded_gateways/data/gm4_gilded_gateways/structure/return.nbt differ diff --git a/gm4_gilded_gateways/data/minecraft/tags/block/dragon_immune.json b/gm4_gilded_gateways/data/minecraft/tags/block/dragon_immune.json new file mode 100644 index 0000000000..f22096c88a --- /dev/null +++ b/gm4_gilded_gateways/data/minecraft/tags/block/dragon_immune.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:end_rod", + "minecraft:end_stone_bricks", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall" + ] +} diff --git a/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_delayed.json b/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_delayed.json new file mode 100644 index 0000000000..834849de84 --- /dev/null +++ b/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_delayed.json @@ -0,0 +1,46 @@ +{ + "type": "minecraft:random_selector", + "features": [], + "default": { + "feature": { + "type": "minecraft:template", + "templates": [ + { + "weight": 1, + "data": { + "id": "gm4_gilded_gateways:main_0", + "rotations": [ + "none" + ] + } + }, + { + "weight": 1, + "data": { + "id": "gm4_gilded_gateways:main_1", + "rotations": [ + "none" + ] + } + }, + { + "weight": 1, + "data": { + "id": "gm4_gilded_gateways:main_2", + "rotations": [ + "none" + ] + } + } + ] + }, + "placement": [ + { + "type": "minecraft:offset", + "x": 0, + "y": -4, + "z": 0 + } + ] + } +} diff --git a/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_return.json b/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_return.json new file mode 100644 index 0000000000..a2d653cfa6 --- /dev/null +++ b/gm4_gilded_gateways/data/minecraft/worldgen/feature/end_gateway_return.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:random_selector", + "features": [], + "default": { + "feature": { + "type": "minecraft:template", + "templates": [ + { + "weight": 1, + "data": { + "id": "gm4_gilded_gateways:return", + "rotations": [ + "none" + ] + } + } + ] + }, + "placement": [ + { + "type": "minecraft:offset", + "x": 0, + "y": -2, + "z": 0 + } + ] + } +} diff --git a/gm4_gilded_gateways/images/gilded_gateways.webp b/gm4_gilded_gateways/images/gilded_gateways.webp new file mode 100644 index 0000000000..fc14a6b87a Binary files /dev/null and b/gm4_gilded_gateways/images/gilded_gateways.webp differ diff --git a/gm4_gilded_gateways/images/main_island_above.png b/gm4_gilded_gateways/images/main_island_above.png new file mode 100644 index 0000000000..3da1dad5fa Binary files /dev/null and b/gm4_gilded_gateways/images/main_island_above.png differ diff --git a/gm4_gilded_gateways/images/main_island_side.png b/gm4_gilded_gateways/images/main_island_side.png new file mode 100644 index 0000000000..fc5f7a4966 Binary files /dev/null and b/gm4_gilded_gateways/images/main_island_side.png differ diff --git a/gm4_gilded_gateways/images/outer_end_gateway.png b/gm4_gilded_gateways/images/outer_end_gateway.png new file mode 100644 index 0000000000..a3b859933a Binary files /dev/null and b/gm4_gilded_gateways/images/outer_end_gateway.png differ diff --git a/gm4_gilded_gateways/pack.png b/gm4_gilded_gateways/pack.png new file mode 100644 index 0000000000..cad414cd83 Binary files /dev/null and b/gm4_gilded_gateways/pack.png differ diff --git a/gm4_gilded_gateways/pack.svg b/gm4_gilded_gateways/pack.svg new file mode 100644 index 0000000000..cfca7dad71 --- /dev/null +++ b/gm4_gilded_gateways/pack.svg @@ -0,0 +1,145 @@ + + + + diff --git a/gm4_gilded_gateways/translations.csv b/gm4_gilded_gateways/translations.csv new file mode 100644 index 0000000000..2ac0e31f45 --- /dev/null +++ b/gm4_gilded_gateways/translations.csv @@ -0,0 +1,3 @@ +key,en_us +text.gm4.guidebook.module_desc.gilded_gateways,"Tired of boring bedrock end gateways? Bring back the magic with custom gateways!" +text.gm4.guidebook.gilded_gateways.description,"3 Unique Gateway types for the main island\nAnd a secret 4th type for the outer end" diff --git a/gm4_guidebook/triggers.json b/gm4_guidebook/triggers.json index da7618b591..63519c39fb 100644 --- a/gm4_guidebook/triggers.json +++ b/gm4_guidebook/triggers.json @@ -1,6 +1,6 @@ { "__important__": "Generated by generate_guidebooks.py. Don't manually update this", - "__next__": 126, + "__next__": 127, "animi_shamir": 91, "apple_trees": 83, "arborenda_shamir": 20, @@ -47,6 +47,7 @@ "forterra_shamir": 19, "fulcio_shamir": 79, "gemini_shamir": 22, + "gilded_gateways": 126, "harvest_moons": 45, "heart_canisters": 15, "helious_shamir": 69,