diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/Mining and Maurauding (Data)/data/cardboard/tags/functions/load.json b/Mining and Maurauding (Data)/data/cardboard/tags/functions/load.json new file mode 100644 index 0000000..2246c73 --- /dev/null +++ b/Mining and Maurauding (Data)/data/cardboard/tags/functions/load.json @@ -0,0 +1,5 @@ +{ + "values": [ + "origami-games:mauraud/load" + ] +} diff --git a/Mining and Maurauding (Data)/data/cardboard/tags/functions/player/tick.json b/Mining and Maurauding (Data)/data/cardboard/tags/functions/player/tick.json new file mode 100644 index 0000000..179bb66 --- /dev/null +++ b/Mining and Maurauding (Data)/data/cardboard/tags/functions/player/tick.json @@ -0,0 +1,5 @@ +{ + "values": [ + "origami-games:mauraud/player/tick" + ] +} diff --git a/Mining and Maurauding (Data)/data/cardboard/tags/functions/tick.json b/Mining and Maurauding (Data)/data/cardboard/tags/functions/tick.json new file mode 100644 index 0000000..b1437c1 --- /dev/null +++ b/Mining and Maurauding (Data)/data/cardboard/tags/functions/tick.json @@ -0,0 +1,5 @@ +{ + "values": [ + "origami-games:mauraud/tick" + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/coal_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/coal_ore.json new file mode 100644 index 0000000..20d43e4 --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/coal_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:coal_ore", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:coal", + "weight": 20 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"coal\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/diamond_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/diamond_ore.json new file mode 100644 index 0000000..f6acb27 --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/diamond_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:diamond_ore", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:diamond", + "weight": 20 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"diamond\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/emerald_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/emerald_ore.json new file mode 100644 index 0000000..eacbeba --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/emerald_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:emerald_ore", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:emerald", + "weight": 20 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"emerald\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/gold_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/gold_ore.json new file mode 100644 index 0000000..6c386b5 --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/gold_ore.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 20 + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"gold\"}}}" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/iron_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/iron_ore.json new file mode 100644 index 0000000..a77a12a --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/iron_ore.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 20 + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"iron\"}}}" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/lapis_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/lapis_ore.json new file mode 100644 index 0000000..2585c1d --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/lapis_ore.json @@ -0,0 +1,69 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:lapis_ore", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4.0, + "max": 9.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:lapis_lazuli", + "weight": 20 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"gold\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/nether_quartz_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/nether_quartz_ore.json new file mode 100644 index 0000000..a515b51 --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/nether_quartz_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:nether_quartz_ore", + "weight": 20 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:quartz", + "weight": 20 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"nether_quartz\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/redstone_ore.json b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/redstone_ore.json new file mode 100644 index 0000000..885e19e --- /dev/null +++ b/Mining and Maurauding (Data)/data/minecraft/loot_tables/blocks/redstone_ore.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "minecraft:redstone_ore", + "weight": 10 + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4.0, + "max": 5.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:redstone", + "weight": 10 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/blocks/function/ore_spirit", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{spirit_type:\"redstone\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/block/smithing_table/drop_craft_checks.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/block/smithing_table/drop_craft_checks.mcfunction new file mode 100644 index 0000000..7cbd76d --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/block/smithing_table/drop_craft_checks.mcfunction @@ -0,0 +1,10 @@ +#items on smithing table +#called by mauraud/clock16 + +tag @s[nbt={Item:{id:"minecraft:wooden_pickaxe"}}] add stackat_pickaxe +tag @s[nbt={Item:{id:"minecraft:stone_pickaxe"}}] add stackat_pickaxe +tag @s[nbt={Item:{id:"minecraft:iron_pickaxe"}}] add stackat_pickaxe +tag @s[nbt={Item:{id:"minecraft:golden_pickaxe"}}] add stackat_pickaxe +tag @s[nbt={Item:{id:"minecraft:diamond_pickaxe"}}] add stackat_pickaxe + +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{item:"spirit_orb"}}},Count:1b}}] align xyz if entity @e[dx=0,dy=0,dz=0,tag=stackat_pickaxe,nbt=!{Item:{tag:{origami-games:{mauraud:{spirit_orb:1b}}}}}] run function origami-games:mauraud/item/spirit_orb/pickaxe_apply diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/clock16.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/clock16.mcfunction new file mode 100644 index 0000000..96baf5f --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/clock16.mcfunction @@ -0,0 +1,11 @@ +#clock tick (16/t) +#called by mauraud/tick + +#miner's helmet +effect give @a[nbt={Inventory:[{Slot:103b,tag:{origami-games:{mauraud:{item:"miner_helmet"}}}}]}] night_vision 1 0 true + +#item crafting check +execute as @e[type=item] at @s if block ~ ~-1 ~ smithing_table run function origami-games:mauraud/block/smithing_table/drop_craft_checks + +#reset score +scoreboard players reset main_16 mau_clock diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/ore_spirit/check_ore.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/ore_spirit/check_ore.mcfunction new file mode 100644 index 0000000..cc9d90f --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/ore_spirit/check_ore.mcfunction @@ -0,0 +1,21 @@ +#@s - ore spirit stick dropped from loot table + +#audiovisuals +particle crit ~ ~ ~ .5 .5 .5 0 30 normal @a +particle enchanted_hit ~ ~ ~ .5 .5 .5 0 30 normal @a +playsound entity.zombie.converted_to_drowned hostile @a[distance=..20] ~ ~ ~ 1 2 1 + +#summon base +function origami-games:mauraud/entity/summon/ore_spirit +#set ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"iron"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head iron_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"gold"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head gold_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"coal"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head coal_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"lapis"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head lapis_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"diamond"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head diamond_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"redstone"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head redstone_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"emerald"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head emerald_ore +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{spirit_type:"nether_quartz"}}}}}] run replaceitem entity @e[type=vex,tag=mau_ore_spirit,sort=nearest,limit=1] armor.head nether_quartz_ore + +#kill entity +kill @s[type=!player] diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/cave.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/cave.mcfunction new file mode 100644 index 0000000..f9e3103 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/cave.mcfunction @@ -0,0 +1,8 @@ +#biome check +#@s - entity found cave +#called by mauraud/entity/spawning/check + + + +#stop checking +tag @s remove mau_replace diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/deep_cave.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/deep_cave.mcfunction new file mode 100644 index 0000000..c05d578 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/biome/deep_cave.mcfunction @@ -0,0 +1,9 @@ +#biome check +#@s - entity found deep cave +#called by mauraud/entity/spawning/spawn + +execute if entity @s[type=zombie] at @s run function origami-games:mauraud/entity/summon/undead_miner +execute if entity @s[type=skeleton,scores={mau_biome=1}] at @s run function origami-games:mauraud/entity/summon/ember_demon + +#stop checking +tag @s remove mau_replace diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/check.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/check.mcfunction new file mode 100644 index 0000000..2cf5411 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/check.mcfunction @@ -0,0 +1,10 @@ +#mob spawning check +#@s - @e[type=!#SPRITE,tag=!mau_entity,tag=!mau_found] +#called by mauraud/tick + +loot spawn ~ -512 ~ loot origami-games:mauraud/world/check_custom_entity +execute if entity @e[type=item,y=-512,distance=0,nbt={Item:{tag:{origami-games:{mauraud:{custom_entity:1b}}}}}] run function origami-games:mauraud/entity/spawning/spawn +kill @e[type=item,y=-512,distance=0,nbt={Item:{tag:{origami-games:{mauraud:{custom_entity:1b}}}}}] + +#don't check again +tag @s add mau_found diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/spawn.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/spawn.mcfunction new file mode 100644 index 0000000..67f9d5f --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/spawning/spawn.mcfunction @@ -0,0 +1,12 @@ +#@s - mob determined custom +#called by mauraud/entity/spawning/check + +#biome checks +tag @s add mau_replace + +execute store success score @s mau_biome run clone ~-5 ~-1 ~-5 ~5 ~3 ~5 ~-5 ~-1 ~-5 filtered lava force + +execute positioned ~ 0 ~ if entity @s[distance=..20] run function origami-games:mauraud/entity/spawning/biome/deep_cave +execute positioned ~ 0 ~ if entity @s[tag=mau_replace,distance=..40] run function origami-games:mauraud/entity/spawning/biome/cave + +tag @s remove mau_replace diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ember_demon.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ember_demon.mcfunction new file mode 100644 index 0000000..38adf12 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ember_demon.mcfunction @@ -0,0 +1,7 @@ +#called by launch/entity/spawning/biome/deep_cave + +summon blaze ~ ~ ~ {ActiveEffects:[{Id:14,Duration:999999,ShowParticles:0b,Amplifier:0}],DeathLootTable:"origami-games:mauraud/entities/ember_demon",CustomName:'{"translate":"entity.mauraud.ember_demon"}',Tags:["mau_entity","mau_ember_demon"],Attributes:[{Name:"generic.maxHealth",Base:20}],Health:20} + +tp @s[type=!player] ~ -512 ~ +data merge entity @s {Health:0,DeathTime:19,DeathLootTable:"minecraft:empty"} +fill ~ ~ ~ ~ ~ ~ air replace command_block diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ore_spirit.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ore_spirit.mcfunction new file mode 100644 index 0000000..6ff7bd0 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/ore_spirit.mcfunction @@ -0,0 +1,7 @@ +#called by launch/entity/ore_spirit/check_ore + +summon vex ~ ~ ~ {HandItems:[{id:iron_pickaxe,Count:1},{}],HandDropChances:[-1.0F,-1.0F],ArmorDropChances:[-1.0F,-1.0F,-1.0F,1.0F],ActiveEffects:[{Id:14,Duration:999999,ShowParticles:0b,Amplifier:0}],DeathLootTable:"origami-games:mauraud/entities/ore_spirit",CustomName:'{"translate":"entity.mauraud.ore_spirit"}',Tags:["mau_entity","mau_ore_spirit"],Attributes:[{Name:"generic.maxHealth",Base:30}],Health:30} + +tp @s[type=!player] ~ -512 ~ +data merge entity @s {Health:0,DeathTime:19,DeathLootTable:"minecraft:empty"} +fill ~ ~ ~ ~ ~ ~ air replace command_block diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/undead_miner.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/undead_miner.mcfunction new file mode 100644 index 0000000..4e65ffb --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/undead_miner.mcfunction @@ -0,0 +1,8 @@ +#called by launch/entity/spawning/biome/deep_cave + +summon zombie ~ ~ ~ {HandItems:[{id:iron_pickaxe,Count:1},{}],HandDropChances:[0.2F,-1.0F],ArmorDropChances:[-1.0F,-1.0F,-1.0F,1.0F],DeathLootTable:"origami-games:mauraud/entities/undead_miner",CustomName:'{"translate":"entity.mauraud.undead_miner"}',Tags:["mau_entity","mau_undead_miner"]} +loot replace entity @e[type=zombie,tag=mau_undead_miner,distance=0] armor.head loot origami-games:mauraud/items/miner_helmet + +tp @s[type=!player] ~ -512 ~ +data merge entity @s {Health:0,DeathTime:19,DeathLootTable:"minecraft:empty"} +fill ~ ~ ~ ~ ~ ~ air replace command_block diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_miner.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_miner.mcfunction new file mode 100644 index 0000000..fb4a676 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_miner.mcfunction @@ -0,0 +1,7 @@ +#triggered by structure mauraud/world/structure/spelunker_base + +summon villager ~ ~ ~ {DeathLootTable:"origami-games:mauraud/entities/spelunker_miner",CustomName:'{"translate":"entity.mauraud.spelunker_miner"}',Tags:["mau_entity","mau_spelunker"],VillagerData:{profession:"minecraft:toolsmith",level:5,type:"minecraft:plains"},Offers:{Recipes:[{maxUses:999999,buy:{id:"minecraft:diamond_pickaxe",Count:1b},sell:{id:"minecraft:diamond",Count:3b},xp:0},{maxUses:999999,buy:{id:"minecraft:iron_pickaxe",Count:1b},sell:{id:"minecraft:iron_ingot",Count:3b},xp:0},{maxUses:999999,buy:{id:"minecraft:golden_pickaxe",Count:1b},sell:{id:"minecraft:gold_ingot",Count:3b},xp:0},{maxUses:999999,buy:{id:"minecraft:stone_pickaxe",Count:1b},sell:{id:"minecraft:cobblestone",Count:3b},xp:0},{maxUses:999999,buy:{id:"minecraft:wooden_pickaxe",Count:1b},sell:{id:"minecraft:stick",Count:12b},xp:0}]}} + +tp @s[type=!player] ~ -512 ~ +data merge entity @s {Health:0,DeathTime:19,DeathLootTable:"minecraft:empty"} +fill ~ ~ ~ ~ ~ ~ air replace command_block diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_scientist.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_scientist.mcfunction new file mode 100644 index 0000000..a4b79c7 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/entity/summon/villager/spelunker_scientist.mcfunction @@ -0,0 +1,7 @@ +#triggered by structure mauraud/world/structure/spelunker_base + +summon villager ~ ~ ~ {DeathLootTable:"origami-games:mauraud/entities/spelunker_scientist",CustomName:'{"translate":"entity.mauraud.spelunker_scientist"}',Tags:["mau_entity","mau_spelunker"],VillagerData:{profession:"minecraft:cartographer",level:5,type:"minecraft:plains"},Offers:{Recipes:[{maxUses:999999,buy:{id:"minecraft:emerald",Count:4b},sell:{id:"minecraft:brewing_stand",Count:1b},xp:0},{maxUses:999999,buy:{id:"minecraft:blaze_rod",Count:1b},buyB:{id:"minecraft:emerald",Count:1b},sell:{id:"minecraft:blaze_powder",Count:4b},xp:0},{maxUses:999999,buy:{id:"minecraft:brown_mushroom",Count:1b},buyB:{id:"minecraft:emerald",Count:1b},sell:{id:"minecraft:red_mushroom",Count:1b},xp:0},{maxUses:999999,buy:{id:"minecraft:red_mushroom",Count:1b},buyB:{id:"minecraft:emerald",Count:1b},sell:{id:"minecraft:brown_mushroom",Count:1b},xp:0}]}} + +tp @s[type=!player] ~ -512 ~ +data merge entity @s {Health:0,DeathTime:19,DeathLootTable:"minecraft:empty"} +fill ~ ~ ~ ~ ~ ~ air replace command_block diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/recover_player_head.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/recover_player_head.mcfunction new file mode 100644 index 0000000..6ba6f92 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/recover_player_head.mcfunction @@ -0,0 +1,9 @@ +#replace broken placed player heads +#@s - @e[type=item,tag=!mau_head,tag=!mau_entity,nbt={Item:{id:"minecraft:player_head"}}] +#called by mauraud/tick + +execute if entity @s[nbt={Item:{tag:{SkullOwner:{Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE1NjYxMjMwNDQwMTYsInByb2ZpbGVJZCI6IjUwYzdlN2M1MjQwNzQxMDI4NzVmZTRiMWY0OWVhNjFhIiwicHJvZmlsZU5hbWUiOiJBbmRhbnRlTUMiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzk4NmY4NzczNzJlYzRlNzMzNzMyMjBhOWVlMTAxY2EwNmZjZTg4YmMyZDFlNzFiMjUxODAzZTUyOTVmYTNhM2UifX19"}]}}}}}] run loot spawn ~ ~ ~ loot origami-games:mauraud/items/spirit_orb + +#kill entity +execute unless data entity @s Item.tag.origami-games run kill @s[type=!player] +tag @s add mau_head diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_apply.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_apply.mcfunction new file mode 100644 index 0000000..2548ed6 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_apply.mcfunction @@ -0,0 +1,6 @@ +#apply spirit orb to pickaxe +#@s - spirit orb on smithing table found pickaxe +#called by mauraud/block/smithing_table/drop_craft_checks + +execute as @e[type=item,tag=stackat_pickaxe,dx=0,dy=0,dz=0,sort=nearest,limit=1] at @s run function origami-games:mauraud/item/spirit_orb/pickaxe_merge +kill @s[type=!player] diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_effects.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_effects.mcfunction new file mode 100644 index 0000000..9fcf7fd --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_effects.mcfunction @@ -0,0 +1,7 @@ +#player spirit orb effects +#@s - player holding spirit orb infused pickaxe +#called by mauraud/player/tick + +effect give @s haste 1 1 +effect give @s speed 1 1 +particle firework ~ ~.5 ~ .2 1 .2 0 1 normal @a diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_merge.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_merge.mcfunction new file mode 100644 index 0000000..917eec8 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/item/spirit_orb/pickaxe_merge.mcfunction @@ -0,0 +1,14 @@ +#apply spirit orb data to pickaxe +#@s - pickaxe crafting with spirit orb +#called by mauraud/item/spirit_orb/pickaxe_apply + +data merge entity @s {Item:{tag:{origami-games:{mauraud:{spirit_orb:1b}},display:{Lore:['{"translate":"item.mauraud.spirit_orb.pickaxe.lore"}']},CustomModelData:1}},Motion:[0.0d,0.3d,0.0d],PickupDelay:11s,CustomNameVisible:1} + +data merge entity @s[nbt={Item:{id:"minecraft:wooden_pickaxe"}}] {CustomName:'{"translate":"item.minecraft.wooden_pickaxe"}'} +data merge entity @s[nbt={Item:{id:"minecraft:stone_pickaxe"}}] {CustomName:'{"translate":"item.minecraft.stone_pickaxe"}'} +data merge entity @s[nbt={Item:{id:"minecraft:iron_pickaxe"}}] {CustomName:'{"translate":"item.minecraft.iron_pickaxe"}'} +data merge entity @s[nbt={Item:{id:"minecraft:golden_pickaxe"}}] {CustomName:'{"translate":"item.minecraft.golden_pickaxe"}'} +data merge entity @s[nbt={Item:{id:"minecraft:diamond_pickaxe"}}] {CustomName:'{"translate":"item.minecraft.diamond_pickaxe"}'} + +playsound entity.firework_rocket.blast player @a[distance=..20] ~ ~ ~ 1 1 1 +particle firework ~ ~ ~ 0 0 0 .05 20 normal @a diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/load.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/load.mcfunction new file mode 100644 index 0000000..4e08885 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/load.mcfunction @@ -0,0 +1,14 @@ +#runs on load +#called by #cardboard:load + +#notify load +tellraw @a [{"text":"Mauraud: ","color":"aqua","clickEvent":{"action":"open_url","value":"https://origami-games.github.io/mauraud"}},{"text":"Loaded","color":"dark_aqua"}] +execute unless entity @a[limit=1] run say Mauraud: Loaded + +#initialise scoreboards +scoreboard objectives add mau_config dummy +execute unless score world_generation mau_config matches 0..1 run scoreboard players set world_generation mau_config 1 + +scoreboard objectives add mau_clock dummy +scoreboard objectives add mau_world_gen dummy +scoreboard objectives add mau_biome dummy diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/player/tick.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/player/tick.mcfunction new file mode 100644 index 0000000..7a6aa49 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/player/tick.mcfunction @@ -0,0 +1,4 @@ +#player tick +#called by #cardboard:player/tick + +execute if entity @s[nbt={SelectedItem:{tag:{origami-games:{mauraud:{spirit_orb:1b}}}}}] run function origami-games:mauraud/item/spirit_orb/pickaxe_effects diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/tick.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/tick.mcfunction new file mode 100644 index 0000000..192db51 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/tick.mcfunction @@ -0,0 +1,23 @@ +#base tick +#called by #cardboard:tick + +#clocks +scoreboard players add world_4 mau_clock 1 +execute if score world_4 mau_clock matches 4.. run function origami-games:mauraud/world/clock4 +scoreboard players add main_16 mau_clock 1 +execute if score main_16 mau_clock matches 4.. run function origami-games:mauraud/clock16 + +#world gen +## remove technical blocks +execute at @e[type=area_effect_cloud,tag=mau_structure_remove_tech] run fill ~ ~ ~ ~ ~1 ~ air + +#mobs +## spawning +### general +execute as @e[type=!#origami-games:mauraud/sprite,type=!player,tag=!mau_entity,tag=!mau_found] at @s run function origami-games:mauraud/entity/spawning/check +### ore spirits +execute as @e[type=item,nbt={Item:{tag:{origami-games:{mauraud:{function:"ore_spirit"}}}}}] at @s run function origami-games:mauraud/entity/ore_spirit/check_ore + +#items +## player head placement recovery +execute as @e[type=item,tag=!mau_head,tag=!mau_entity,nbt={Item:{id:"minecraft:player_head"}}] if data entity @s Item.tag unless data entity @s Item.tag.origami-games unless data entity @s Item.tag.SkullOwner.Name at @s run function origami-games:mauraud/item/recover_player_head diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/clock4.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/clock4.mcfunction new file mode 100644 index 0000000..bef513b --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/clock4.mcfunction @@ -0,0 +1,14 @@ +#clock tick (1/4t) +#called by mauraud/tick + +#world generation +## overworld +execute if score world_generation mau_config matches 1 as @a[tag=!mau_world_gen_disabled,nbt={Dimension:0}] at @s unless block ~ 0 ~ barrier run function origami-games:mauraud/world/overworld/chunk/init +execute as @e[type=area_effect_cloud,tag=mau_chunk_generate] at @s run function origami-games:mauraud/world/overworld/chunk/generate +kill @e[type=area_effect_cloud,tag=mau_chunk,tag=!mau_chunk_generate] + +execute store result score $chunks_generating mau_world_gen if entity @e[type=area_effect_cloud,tag=mau_chunk] +title @a[tag=mau_chunk_debug,nbt={Dimension:0}] actionbar [{"text":"mau_chunk "},{"score":{"objective":"mau_world_gen","name":"$chunks_generating"}}] + +#reset clock +scoreboard players reset world_4 mau_clock diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/generate.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/generate.mcfunction new file mode 100644 index 0000000..fbd0614 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/generate.mcfunction @@ -0,0 +1,19 @@ +#generate chunk +#@s - @e[type=area_effect_cloud,tag=mau_chunk_generate] +#called by mauraud/world/overworld/clock4 + +#try to spawn a structure before any chunk modifications have been done +execute unless block ~ 2 ~ bedrock if block ~ 3 ~ stone unless block ~ 4 ~ bedrock run loot spawn ~ ~ ~ loot origami-games:mauraud/world/structure/check +execute as @e[type=item,distance=0] if data entity @s Item.tag.origami-games.mauraud.structure run function origami-games:mauraud/world/overworld/structure/check +#mark the chunk as generated +fill ~ 0 ~ ~15 0 ~15 barrier replace bedrock +tag @s remove mau_chunk_generate + +#spread outwards +execute positioned ~16 0 ~ unless block ~ ~ ~ barrier unless entity @e[type=area_effect_cloud,tag=mau_chunk,distance=..1] run summon area_effect_cloud ~ ~ ~ {Tags:["mau_chunk","mau_chunk_generate"],CustomName:'"mau_chunk"',Duration:20} +execute positioned ~-16 0 ~ unless block ~ ~ ~ barrier unless entity @e[type=area_effect_cloud,tag=mau_chunk,distance=..1] run summon area_effect_cloud ~ ~ ~ {Tags:["mau_chunk","mau_chunk_generate"],CustomName:'"mau_chunk"',Duration:20} +execute positioned ~ 0 ~16 unless block ~ ~ ~ barrier unless entity @e[type=area_effect_cloud,tag=mau_chunk,distance=..1] run summon area_effect_cloud ~ ~ ~ {Tags:["mau_chunk","mau_chunk_generate"],CustomName:'"mau_chunk"',Duration:20} +execute positioned ~ 0 ~-16 unless block ~ ~ ~ barrier unless entity @e[type=area_effect_cloud,tag=mau_chunk,distance=..1] run summon area_effect_cloud ~ ~ ~ {Tags:["mau_chunk","mau_chunk_generate"],CustomName:'"mau_chunk"',Duration:20} + +#warn +title @a actionbar [{"text":"[","color":"dark_aqua"},{"translate":"pack.mauraud.name","color":"aqua"},{"text":"] ","color":"dark_aqua"},{"translate":"text.mauraud.world_generation.warn","color":""}] diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/init.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/init.mcfunction new file mode 100644 index 0000000..4ebe954 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/chunk/init.mcfunction @@ -0,0 +1,12 @@ +#summons a chunk marker and aligns it to the chunk grid +#@s - players without barriers at y=0 +#called by mauraud/player/clock16 + +#summon chunk marker +summon area_effect_cloud ~ 0 ~ {Tags:["mau_chunk","mau_chunk_init","mau_chunk_generate"],CustomName:'"mau_chunk"',Duration:20} +#align to chunk +execute store result entity @e[type=area_effect_cloud,tag=mau_chunk,tag=mau_chunk_init,limit=1] Pos[0] double 16 run data get entity @s Pos[0] 0.0625 +execute store result entity @e[type=area_effect_cloud,tag=mau_chunk,tag=mau_chunk_init,limit=1] Pos[2] double 16 run data get entity @s Pos[2] 0.0625 +#if there already was a marker for that chunk, kill the new one +execute at @e[type=area_effect_cloud,tag=mau_chunk,tag=mau_chunk_init] if entity @e[type=area_effect_cloud,tag=mau_chunk,tag=!mau_chunk_init,distance=..1] run kill @e[tag=mau_chunk,tag=mau_chunk_init] +tag @e[type=area_effect_cloud,tag=mau_chunk,tag=mau_chunk_init] remove mau_chunk_init diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/check.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/check.mcfunction new file mode 100644 index 0000000..e7afb42 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/check.mcfunction @@ -0,0 +1,16 @@ +#attempt to spawn a structure based on the seed +#called by mauraud/world/overworld/chunk/generate + +#spawn structure markers +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{structure:"cave_ice"}}}}}] run summon area_effect_cloud ~ 0 ~ {Tags:["mau_entity","mau_structure","mau_structure_cave_ice"],CustomName:'"mau_structure"'} +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{structure:"cave_sand"}}}}}] run summon area_effect_cloud ~ 0 ~ {Tags:["mau_entity","mau_structure","mau_structure_cave_sand"],CustomName:'"mau_structure"'} +execute if entity @s[nbt={Item:{tag:{origami-games:{mauraud:{structure:"spelunker_base"}}}}}] run summon area_effect_cloud ~ 0 ~ {Tags:["mau_entity","mau_structure","mau_structure_spelunker_base"],CustomName:'"mau_structure"'} +#spread markers +execute positioned ~ 0 ~ run spreadplayers ~ ~ 0 1 false @e[type=area_effect_cloud,tag=mau_structure,distance=...5] + +#spawn structures +execute as @e[type=area_effect_cloud,tag=mau_structure] at @s run function origami-games:mauraud/world/overworld/structure/spawn + +#kill markers +kill @e[type=area_effect_cloud,tag=mau_structure] +kill @s[type=!player] diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn.mcfunction new file mode 100644 index 0000000..9ed890f --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn.mcfunction @@ -0,0 +1,9 @@ +#called by launch/world/overworld/structure/check + +#if snow, fall to ground +execute at @s if block ~ ~-1 ~ snow run tp @s ~ ~-1 ~ + +#spawn structure +execute if entity @s[tag=mau_structure_cave_ice] at @s positioned ~ 30 ~ if block ~ ~ ~ #origami-games:mauraud/air run function origami-games:mauraud/world/overworld/structure/spawn/cave_biome/ice +execute if entity @s[tag=mau_structure_cave_sand] at @s positioned ~ 30 ~ if block ~ ~ ~ #origami-games:mauraud/air run function origami-games:mauraud/world/overworld/structure/spawn/cave_biome/sand +execute if entity @s[tag=mau_structure_spelunker_base] at @s positioned ~ 20 ~ if block ~ ~ ~ #origami-games:mauraud/air run function origami-games:mauraud/world/overworld/structure/spawn/spelunker_base diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/ice.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/ice.mcfunction new file mode 100644 index 0000000..803c4ab --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/ice.mcfunction @@ -0,0 +1,17 @@ +#spawn ice cave +#called by mauraud/world/overworld/structure/spawn + +#replace blocks +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 ice replace andesite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 packed_ice replace stone +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 blue_ice replace dirt +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 snow_block replace diorite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 snow_block replace granite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 snow_block replace gravel +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 obsidian replace lava + +#replace loot tables +execute as @e[type=chest_minecart,distance=..7] run data merge entity @s {LootTable:"origami-games:mauraud/chests/cave_biome/ice/abandoned_mineshaft"} + +#notify debug +function origami-games:mauraud/world/overworld/structure/spawn/notification diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/sand.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/sand.mcfunction new file mode 100644 index 0000000..bcb523e --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/cave_biome/sand.mcfunction @@ -0,0 +1,17 @@ +#spawn sand cave +#called by mauraud/world/overworld/structure/spawn + +#replace blocks +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 smooth_sandstone replace andesite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 sandstone replace stone +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 sand replace dirt +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 sandstone replace diorite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 sandstone replace granite +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 sandstone replace gravel +fill ~6 ~6 ~6 ~-6 ~-6 ~-6 obsidian replace lava + +#replace loot tables +execute as @e[type=chest_minecart,distance=..7] run data merge entity @s {LootTable:"origami-games:mauraud/chests/cave_biome/sand/abandoned_mineshaft"} + +#notify debug +function origami-games:mauraud/world/overworld/structure/spawn/notification diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/notification.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/notification.mcfunction new file mode 100644 index 0000000..eba42de --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/notification.mcfunction @@ -0,0 +1,2 @@ +#debug notification called by structure spawns +tellraw @a[tag=mau_chunk_debug] [{"nbt":"Tags","entity":"@s","interpret":true},": ",{"nbt":"Pos[0]","entity":"@s"}," ",{"nbt":"Pos[2]","entity":"@s"}] diff --git a/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/spelunker_base.mcfunction b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/spelunker_base.mcfunction new file mode 100644 index 0000000..1dc480e --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/functions/mauraud/world/overworld/structure/spawn/spelunker_base.mcfunction @@ -0,0 +1,9 @@ +#spawn spelunker base +#called by mauraud/world/overworld/structure/spawn + +setblock ~ ~ ~ structure_block{posY:0,mode:"LOAD",name:"origami-games:mauraud/world/structure/spelunker_base"} +setblock ~ ~1 ~ redstone_block +summon area_effect_cloud ~ ~ ~ {Tags:["mau_entity","mau_structure_remove_tech"]} + +#notify debug +function origami-games:mauraud/world/overworld/structure/spawn/notification diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/blocks/function/ore_spirit.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/blocks/function/ore_spirit.json new file mode 100644 index 0000000..7d4d972 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/blocks/function/ore_spirit.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stick", + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{function:\"ore_spirit\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/ice/abandoned_mineshaft.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/ice/abandoned_mineshaft.json new file mode 100644 index 0000000..a865ee9 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/ice/abandoned_mineshaft.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "name": "minecraft:chests/abandoned_mineshaft" + } + ] + }, + { + "rolls": 3, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ice", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:blue_ice", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:packed_ice", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:snow_block", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/sand/abandoned_mineshaft.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/sand/abandoned_mineshaft.json new file mode 100644 index 0000000..f89ec40 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/chests/cave_biome/sand/abandoned_mineshaft.json @@ -0,0 +1,45 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "name": "minecraft:chests/abandoned_mineshaft" + } + ] + }, + { + "rolls": 3, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:sand", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "functions": [ + { + "function": "set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ember_demon.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ember_demon.json new file mode 100644 index 0000000..490b7ce --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ember_demon.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gunpowder", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ore_spirit.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ore_spirit.json new file mode 100644 index 0000000..5492bcd --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/entities/ore_spirit.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "name": "origami-games:mauraud/items/spirit_orb" + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/miner_helmet.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/miner_helmet.json new file mode 100644 index 0000000..a09e94f --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/miner_helmet.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_helmet", + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{display:{Name:'{\"translate\":\"item.mauraud.miner_helmet\",\"italic\":false}'},CustomModelData:1,origami-games:{mauraud:{item:\"miner_helmet\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/spirit_orb.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/spirit_orb.json new file mode 100644 index 0000000..26c4ae8 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/items/spirit_orb.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:player_head", + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{SkullOwner:{Id:\"50c7e7c5-2407-4102-875f-e4b1f49ea61a\",Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE1NjYxMjMwNDQwMTYsInByb2ZpbGVJZCI6IjUwYzdlN2M1MjQwNzQxMDI4NzVmZTRiMWY0OWVhNjFhIiwicHJvZmlsZU5hbWUiOiJBbmRhbnRlTUMiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzk4NmY4NzczNzJlYzRlNzMzNzMyMjBhOWVlMTAxY2EwNmZjZTg4YmMyZDFlNzFiMjUxODAzZTUyOTVmYTNhM2UifX19\"}]}},display:{Name:'{\"translate\":\"item.mauraud.spirit_orb\",\"italic\":false}'},origami-games:{mauraud:{item:\"spirit_orb\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/check_custom_entity.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/check_custom_entity.json new file mode 100644 index 0000000..6d6fa6b --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/check_custom_entity.json @@ -0,0 +1,25 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stick", + "weight": 18, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{custom_entity:1b}}}" + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:empty", + "weight": 1 + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/structure/check.json b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/structure/check.json new file mode 100644 index 0000000..c329b4a --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/loot_tables/mauraud/world/structure/check.json @@ -0,0 +1,41 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stick", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{structure:\"cave_ice\"}}}" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stick", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{structure:\"cave_sand\"}}}" + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stick", + "functions": [ + { + "function": "minecraft:set_nbt", + "tag": "{origami-games:{mauraud:{structure:\"spelunker_base\"}}}" + } + ] + } + ] + } + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/structures/mauraud/world/structure/spelunker_base.nbt b/Mining and Maurauding (Data)/data/origami-games/structures/mauraud/world/structure/spelunker_base.nbt new file mode 100644 index 0000000..0325721 Binary files /dev/null and b/Mining and Maurauding (Data)/data/origami-games/structures/mauraud/world/structure/spelunker_base.nbt differ diff --git a/Mining and Maurauding (Data)/data/origami-games/tags/blocks/mauraud/air.json b/Mining and Maurauding (Data)/data/origami-games/tags/blocks/mauraud/air.json new file mode 100644 index 0000000..5aed441 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/tags/blocks/mauraud/air.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:air", + "minecraft:cave_air", + "minecraft:void_air" + ] +} diff --git a/Mining and Maurauding (Data)/data/origami-games/tags/entity_types/mauraud/sprite.json b/Mining and Maurauding (Data)/data/origami-games/tags/entity_types/mauraud/sprite.json new file mode 100644 index 0000000..8b644e8 --- /dev/null +++ b/Mining and Maurauding (Data)/data/origami-games/tags/entity_types/mauraud/sprite.json @@ -0,0 +1,39 @@ +{ + "values": [ + "minecraft:item", + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:minecart", + "minecraft:chest_minecart", + "minecraft:furnace_minecart", + "minecraft:tnt_minecart", + "minecraft:hopper_minecart", + "minecraft:command_block_minecart", + "minecraft:spawner_minecart", + "minecraft:boat", + "minecraft:arrow", + "minecraft:spectral_arrow", + "minecraft:dragon_fireball", + "minecraft:fireball", + "minecraft:egg", + "minecraft:snowball", + "minecraft:end_crystal", + "minecraft:ender_pearl", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:firework_rocket", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama_spit", + "minecraft:painting", + "minecraft:potion", + "minecraft:shulker_bullet", + "minecraft:small_fireball", + "minecraft:tnt", + "minecraft:wither_skull" + ] +} diff --git a/Mining and Maurauding (Data)/pack.mcmeta b/Mining and Maurauding (Data)/pack.mcmeta new file mode 100644 index 0000000..c021d71 --- /dev/null +++ b/Mining and Maurauding (Data)/pack.mcmeta @@ -0,0 +1,16 @@ +{ + "pack": { + "pack_format": 4, + "description": [ + { + "text": "Mining and Maurauding", + "color": "aqua" + }, + "\n", + { + "text": "Origami Games", + "color": "dark_aqua" + } + ] + } +} diff --git a/Mining and Maurauding (Resources)/assets/minecraft/models/item/golden_helmet.json b/Mining and Maurauding (Resources)/assets/minecraft/models/item/golden_helmet.json new file mode 100644 index 0000000..91f81de --- /dev/null +++ b/Mining and Maurauding (Resources)/assets/minecraft/models/item/golden_helmet.json @@ -0,0 +1,14 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/golden_helmet" + }, + "overrides": [ + { + "predicate": { + "custom_model_data": 1 + }, + "model": "origami-games:mauraud/item/miner_helmet" + } + ] +} diff --git a/Mining and Maurauding (Resources)/assets/minecraft/optifine/color.properties b/Mining and Maurauding (Resources)/assets/minecraft/optifine/color.properties new file mode 100644 index 0000000..8d6c15f --- /dev/null +++ b/Mining and Maurauding (Resources)/assets/minecraft/optifine/color.properties @@ -0,0 +1,9 @@ +############################################################################### +# Resource loading screen +############################################################################### +# Background color +screen.loading=81d8c3 +# Loading bar background color +screen.loading.bar=0b5543 +# Loading bar foreground color +screen.loading.progress=13896c diff --git a/Mining and Maurauding (Resources)/assets/minecraft/textures/gui/title/mojang.png b/Mining and Maurauding (Resources)/assets/minecraft/textures/gui/title/mojang.png new file mode 100644 index 0000000..80e9cf1 Binary files /dev/null and b/Mining and Maurauding (Resources)/assets/minecraft/textures/gui/title/mojang.png differ diff --git a/Mining and Maurauding (Resources)/assets/origami-games/lang/en_us.json b/Mining and Maurauding (Resources)/assets/origami-games/lang/en_us.json new file mode 100644 index 0000000..f251be6 --- /dev/null +++ b/Mining and Maurauding (Resources)/assets/origami-games/lang/en_us.json @@ -0,0 +1,15 @@ +{ + "pack.mauraud.name": "Mining and Maurauding", + "pack.mauraud.load": "Loaded", + + "text.mauraud.world_generation.warn": "You may lag while terrain is being generated", + + "entity.mauraud.ore_spirit": "Ore Spirit", + "entity.mauraud.undead_miner": "Undead Miner", + "entity.mauraud.spelunker_scientist": "Researching Spelunker", + "entity.mauraud.spelunker_miner": "Gathering Spelunker", + + "item.mauraud.miner_helmet": "Miner's Helmet", + "item.mauraud.spirit_orb": "Spirit Orb", + "item.mauraud.spirit_orb.pickaxe.lore": "Infused with pure mineral energy" +} diff --git a/Mining and Maurauding (Resources)/assets/origami-games/models/mauraud/item/miner_helmet.json b/Mining and Maurauding (Resources)/assets/origami-games/models/mauraud/item/miner_helmet.json new file mode 100644 index 0000000..42f820b --- /dev/null +++ b/Mining and Maurauding (Resources)/assets/origami-games/models/mauraud/item/miner_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "item/golden_helmet" + } +} diff --git a/Mining and Maurauding (Resources)/pack.mcmeta b/Mining and Maurauding (Resources)/pack.mcmeta new file mode 100644 index 0000000..c0163c4 --- /dev/null +++ b/Mining and Maurauding (Resources)/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 4, + "description": [{"translate":"pack.mauraud.name","color":"aqua"},"\n",{"text":"M1.14+","color":"dark_gray"}] + } +} diff --git a/README.md b/README.md index 3d4f4fc..a6b893a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,25 @@ -# dpj1-mining-maurauding -Submission to Data Packing Jam #1 +# Data Packing Jam #1 - Mining and Maurauding +Submission to Data Packing Jam #1 (Theme - Caves/Underground) + +## Features +- Custom generation + - Ice/sand caves spawn occasionally around Y=30 + - 'Spelunker Bases' spawn rarely at Y=20 + - Includes a Spelunker Miner and Spelunker Scientist, with custom trades + - To see when and where these spawn, run `tag @s add mau_chunk_debug` and load new chunks +- Custom mobs + - Undead Miner + - Spawns at the same rate as Zombies below Y=20 + - Drops the Miner's Helmet, which gives the player night vision when equipped + - Ember Demon + - Spawns at the same rate as Skeletons below Y=20 + - Ore Spirits + - Spawn when breaking ore blocks + - Attack you through blocks + - Drop their respective ore block and a Spirit Orb (see below) +- Custom Items + - Spirit Orb + - Drops from Ore Spirits + - When dropped with a pickaxe on to a Smithing Table, it infuses with the pickaxe to give it effect powers + - Haste II + - Speed II