diff --git a/src/main/java/ace/actually/pirates/Pirates.java b/src/main/java/ace/actually/pirates/Pirates.java index 34d8834..f7cea4e 100644 --- a/src/main/java/ace/actually/pirates/Pirates.java +++ b/src/main/java/ace/actually/pirates/Pirates.java @@ -23,6 +23,10 @@ import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; +import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.ModContainer; import net.minecraft.block.AbstractBlock; import net.minecraft.block.Blocks; import net.minecraft.block.entity.BlockEntityType; @@ -34,6 +38,8 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; +import net.minecraft.resource.ResourceType; +import net.minecraft.server.MinecraftServer; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; @@ -43,6 +49,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Optional; import java.util.function.Consumer; import java.util.function.Supplier; @@ -70,6 +77,22 @@ public class Pirates implements ModInitializer { @Override public void onInitialize() { + Optional container = FabricLoader.getInstance().getModContainer(Pirates.MOD_ID); + + if (container.isPresent()) { + if(ResourceManagerHelper.registerBuiltinResourcePack( + new Identifier("flying_ships"), + container.get(), + ResourcePackActivationType.NORMAL + )) { + LOGGER.info("Registered flying ships data pack"); + } else { + LOGGER.warn("didn't work"); + } + } else { + LOGGER.warn("Failed to register flying ships data pack"); + } + ConfigUtils.checkConfigs(); baseShotPower = Float.parseFloat(ConfigUtils.config.getOrDefault("base-shot-power","2.2")); pursuitDistance = Integer.parseInt(ConfigUtils.config.getOrDefault("pursuit-distance","10000")); diff --git a/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/structures/ship/wreckerideal.nbt b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/structures/ship/wreckerideal.nbt new file mode 100644 index 0000000..9905938 Binary files /dev/null and b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/structures/ship/wreckerideal.nbt differ diff --git a/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure/ship.json b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure/ship.json new file mode 100644 index 0000000..9c89daf --- /dev/null +++ b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure/ship.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:jigsaw", + "biomes": "#minecraft:is_overworld", + "spawn_overrides": {}, + "terrain_adaptation": "none", + "start_pool": "pirates_sky:ship", + "size": 1, + "step": "surface_structures", + "start_height": { + "absolute": 50 + }, + "project_start_to_heightmap": "WORLD_SURFACE_WG", + "max_distance_from_center": 128, + "use_expansion_hack": false +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure_set/ships.json b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure_set/ships.json new file mode 100644 index 0000000..5622102 --- /dev/null +++ b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/structure_set/ships.json @@ -0,0 +1,14 @@ +{ + "structures": [ + { + "structure": "pirates_sky:ship", + "weight": 1 + } + ], + "placement": { + "type": "random_spread", + "spacing": 26, + "separation": 8, + "salt": 367452547 + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/template_pool/ship.json b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/template_pool/ship.json new file mode 100644 index 0000000..bc4d5bc --- /dev/null +++ b/src/main/resources/resourcepacks/flying_ships/data/pirates_sky/worldgen/template_pool/ship.json @@ -0,0 +1,15 @@ +{ + "name": "pirates_sky:ships", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "pirates_sky:ship/wreckerideal", + "processors": "minecraft:empty" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/flying_ships/data/vlib/structure-settings/pirates_sky.json b/src/main/resources/resourcepacks/flying_ships/data/vlib/structure-settings/pirates_sky.json new file mode 100644 index 0000000..ee7f73e --- /dev/null +++ b/src/main/resources/resourcepacks/flying_ships/data/vlib/structure-settings/pirates_sky.json @@ -0,0 +1,5 @@ +{ + "folder": "ship/", + "rename": "false", + "static": "true" +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/flying_ships/pack.mcmeta b/src/main/resources/resourcepacks/flying_ships/pack.mcmeta new file mode 100644 index 0000000..9bfa411 --- /dev/null +++ b/src/main/resources/resourcepacks/flying_ships/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 15, + "description": "Adds flying ships." + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/flying_ships/pack.png b/src/main/resources/resourcepacks/flying_ships/pack.png new file mode 100644 index 0000000..faa1d26 Binary files /dev/null and b/src/main/resources/resourcepacks/flying_ships/pack.png differ