diff --git a/build.gradle b/build.gradle index 9982004..662a897 100644 --- a/build.gradle +++ b/build.gradle @@ -127,9 +127,9 @@ dependencies { minecraft 'net.minecraftforge:forge:1.19-41.0.45' // compile against the JEI API but do not include it at runtime - compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") + //compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") // at runtime, use the full JEI jar - runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") + //runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") // Real mod deobf dependency examples - these get remapped to your current mappings // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency diff --git a/src/main/java/dev/zontreck/otemod/OTEMod.java b/src/main/java/dev/zontreck/otemod/OTEMod.java index 894f351..b5ca00b 100644 --- a/src/main/java/dev/zontreck/otemod/OTEMod.java +++ b/src/main/java/dev/zontreck/otemod/OTEMod.java @@ -4,8 +4,10 @@ import java.util.Set; import java.util.Map.Entry; import com.mojang.logging.LogUtils; +import com.mojang.serialization.Codec; import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -13,6 +15,7 @@ import net.minecraft.world.item.Item; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.world.BiomeModifier; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModLoadingContext; @@ -22,13 +25,17 @@ import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.server.ServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; + import org.slf4j.Logger; import dev.zontreck.otemod.blocks.ModBlocks; import dev.zontreck.otemod.configs.OTEServerConfig; import dev.zontreck.otemod.events.EventHandler; import dev.zontreck.otemod.items.ModItems; -import dev.zontreck.otemod.ore.OreGenerator; +import dev.zontreck.otemod.ore.Modifier; +import dev.zontreck.otemod.ore.Modifier.ModifierOfBiomes; // The value here should match an entry in the META-INF/mods.toml file @Mod(OTEMod.MOD_ID) @@ -38,6 +45,8 @@ public class OTEMod public static final Logger LOGGER = LogUtils.getLogger(); public static final String FIRST_JOIN_TAG = "dev.zontreck.otemod.firstjoin"; public static final String MOD_ID = "otemod"; + public static final String MODIFY_BIOMES = "modify_biomes"; + public static final ResourceLocation MODIFY_BIOMES_RL = new ResourceLocation(OTEMod.MOD_ID, MODIFY_BIOMES); public OTEMod() @@ -47,12 +56,14 @@ public class OTEMod bus.addListener(this::setup); - ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, OTEServerConfig.SPEC, "aion-rss-server.toml"); + ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, OTEServerConfig.SPEC, "otemod-rss-server.toml"); // Register ourselves for server and other game events we are interested in - + final DeferredRegister> serializers = DeferredRegister.create(ForgeRegistries.Keys.BIOME_MODIFIER_SERIALIZERS, OTEMod.MOD_ID); + serializers.register(bus); + serializers.register(MODIFY_BIOMES, ModifierOfBiomes::makeCodec); MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/java/dev/zontreck/otemod/blocks/ModBlocks.java b/src/main/java/dev/zontreck/otemod/blocks/ModBlocks.java index bfc9c09..9fa7976 100644 --- a/src/main/java/dev/zontreck/otemod/blocks/ModBlocks.java +++ b/src/main/java/dev/zontreck/otemod/blocks/ModBlocks.java @@ -27,16 +27,14 @@ public class ModBlocks { OTEMod.LOGGER.info("Registering all blocks..."); } + public static final RegistryObject ETERNIUM_ORE_BLOCK = BLOCKS.register("eternium_ore_block", () -> new Block(BlockBehaviour.Properties.of(Material.METAL).requiresCorrectToolForDrops().strength(9f).explosionResistance(1200).destroyTime(10))); - - public static final RegistryObject AION_ORE_BLOCK = BLOCKS.register("aion_ore_block", () -> new OreBlock(BlockBehaviour.Properties.of(Material.METAL).requiresCorrectToolForDrops().strength(9f).explosionResistance(1200).destroyTime(10))); - - public static final RegistryObject AION_ORE_BLOCK_I = ITEMS.register("aion_ore_block", () -> new BlockItem(AION_ORE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC))); + public static final RegistryObject ETERNIUM_ORE_BLOCK_I = ITEMS.register("eternium_ore_block", () -> new BlockItem(ETERNIUM_ORE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC))); - public static final RegistryObject DEEPSLATE_AION_ORE_BLOCK = BLOCKS.register("deepslate_aion_ore_block", () -> new OreBlock(BlockBehaviour.Properties.of(Material.METAL).requiresCorrectToolForDrops().strength(9f).explosionResistance(1200).destroyTime(10))); + public static final RegistryObject DEEPSLATE_ETERNIUM_ORE_BLOCK = BLOCKS.register("deepslate_eternium_ore_block", () -> new Block(BlockBehaviour.Properties.of(Material.METAL).requiresCorrectToolForDrops().strength(9f).explosionResistance(1200).destroyTime(10))); - public static final RegistryObject DEEPSLATE_AION_ORE_BLOCK_I = ITEMS.register("deepslate_aion_ore_block", () -> new BlockItem(DEEPSLATE_AION_ORE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC))); + public static final RegistryObject DEEPSLATE_ETERNIUM_ORE_BLOCK_I = ITEMS.register("deepslate_eternium_ore_block", () -> new BlockItem(DEEPSLATE_ETERNIUM_ORE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC))); public static final RegistryObject AION_BLOCK = BLOCKS.register("aion_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE).requiresCorrectToolForDrops().strength(9f).explosionResistance(100000f).destroyTime(10).sound(SoundType.NETHERITE_BLOCK))); diff --git a/src/main/java/dev/zontreck/otemod/events/EventHandler.java b/src/main/java/dev/zontreck/otemod/events/EventHandler.java index 10d5cb7..a3e16a3 100644 --- a/src/main/java/dev/zontreck/otemod/events/EventHandler.java +++ b/src/main/java/dev/zontreck/otemod/events/EventHandler.java @@ -1,20 +1,26 @@ package dev.zontreck.otemod.events; import dev.zontreck.otemod.OTEMod; -import dev.zontreck.otemod.ore.OreGenerator; -import net.minecraftforge.event.world.BiomeLoadingEvent; +import dev.zontreck.otemod.ore.Modifier; +//import dev.zontreck.otemod.ore.OreGenerator; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; @EventBusSubscriber(modid=OTEMod.MOD_ID) public class EventHandler { - + /* @SubscribeEvent(priority = EventPriority.HIGH) public static void addOresToBiomes(final BiomeLoadingEvent ev){ //ShapedAionResources.LOGGER.info("Biome loading event called. Registering aion ores"); OreGenerator.generateOres(ev); + }*/ + + @SubscribeEvent + public void onGatherData(GatherDataEvent ev){ + Modifier.DoProcess(ev); } } diff --git a/src/main/java/dev/zontreck/otemod/integrations/JEI.java b/src/main/java/dev/zontreck/otemod/integrations/JEI.java index cb7b795..48694f6 100644 --- a/src/main/java/dev/zontreck/otemod/integrations/JEI.java +++ b/src/main/java/dev/zontreck/otemod/integrations/JEI.java @@ -1,17 +1,17 @@ package dev.zontreck.otemod.integrations; import dev.zontreck.otemod.OTEMod; -import mezz.jei.api.IModPlugin; -import mezz.jei.api.JeiPlugin; +//import mezz.jei.api.IModPlugin; +//import mezz.jei.api.JeiPlugin; import net.minecraft.resources.ResourceLocation; -@JeiPlugin -public class JEI implements IModPlugin +//@JeiPlugin +public class JEI { - @Override - public ResourceLocation getPluginUid() { + //@Override + /*public ResourceLocation getPluginUid() { return new ResourceLocation(OTEMod.MOD_ID, "jei_plugin"); - } + }*/ } diff --git a/src/main/java/dev/zontreck/otemod/items/ModItems.java b/src/main/java/dev/zontreck/otemod/items/ModItems.java index 881e233..9299784 100644 --- a/src/main/java/dev/zontreck/otemod/items/ModItems.java +++ b/src/main/java/dev/zontreck/otemod/items/ModItems.java @@ -11,12 +11,12 @@ import net.minecraftforge.registries.RegistryObject; public class ModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, OTEMod.MOD_ID); - public static final RegistryObject AION_FRAGMENT = ITEMS.register("aion_fragment", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); + public static final RegistryObject ETERNIUM_FRAGMENT = ITEMS.register("eternium_fragment", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); - public static final RegistryObject AION_CRYSTAL = ITEMS.register("aion_crystal", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); + public static final RegistryObject IHAN_CRYSTAL = ITEMS.register("ihan_crystal", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); - public static final RegistryObject AION_RAW_ORE = ITEMS.register("aion_ore", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); + public static final RegistryObject ETERNIUM_RAW_ORE = ITEMS.register("eternium_ore", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC))); public static void register(IEventBus bus){ diff --git a/src/main/java/dev/zontreck/otemod/ore/ModdedOrePlacement.java b/src/main/java/dev/zontreck/otemod/ore/ModdedOrePlacement.java deleted file mode 100644 index 4550b12..0000000 --- a/src/main/java/dev/zontreck/otemod/ore/ModdedOrePlacement.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.zontreck.otemod.ore; - -import java.util.List; - -import net.minecraft.world.level.levelgen.placement.BiomeFilter; -import net.minecraft.world.level.levelgen.placement.CountPlacement; -import net.minecraft.world.level.levelgen.placement.InSquarePlacement; -import net.minecraft.world.level.levelgen.placement.PlacementModifier; -import net.minecraft.world.level.levelgen.placement.RarityFilter; - -public class ModdedOrePlacement { - public static List orePlacement(PlacementModifier p_195347_, PlacementModifier p_195348_) { - return List.of(p_195347_, InSquarePlacement.spread(), p_195348_, BiomeFilter.biome()); - } - - public static List commonOrePlacement(int p_195344_, PlacementModifier p_195345_) { - return orePlacement(CountPlacement.of(p_195344_), p_195345_); - } - - public static List rareOrePlacement(int p_195350_, PlacementModifier p_195351_) { - return orePlacement(RarityFilter.onAverageOnceEvery(p_195350_), p_195351_); - } - -} diff --git a/src/main/java/dev/zontreck/otemod/ore/Modifier.java b/src/main/java/dev/zontreck/otemod/ore/Modifier.java new file mode 100644 index 0000000..0adca3b --- /dev/null +++ b/src/main/java/dev/zontreck/otemod/ore/Modifier.java @@ -0,0 +1,116 @@ +package dev.zontreck.otemod.ore; + +import java.util.List; +import java.util.Map; + +import com.google.gson.JsonElement; +import com.mojang.serialization.Codec; +import com.mojang.serialization.JsonOps; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import cpw.mods.modlauncher.api.ITransformationService.Resource; +import dev.zontreck.otemod.OTEMod; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.HolderSet.Named; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.worldgen.features.NetherFeatures; +import net.minecraft.data.worldgen.features.OreFeatures; +import net.minecraft.resources.RegistryOps; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BiomeTags; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biome.Precipitation; +import net.minecraft.world.level.levelgen.GenerationStep.Decoration; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.BiomeFilter; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.common.data.JsonCodecProvider; +import net.minecraftforge.common.world.BiomeModifier; +import net.minecraftforge.common.world.ModifiableBiomeInfo.BiomeInfo.Builder; +import net.minecraftforge.common.world.ForgeBiomeModifiers.AddFeaturesBiomeModifier; +import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class Modifier +{ + private static final String ETERNIUM_ORE = "eternium_oregen_overworld"; + private static final ResourceLocation ETERNIUM_ORE_RL = new ResourceLocation(OTEMod.MOD_ID, ETERNIUM_ORE); + private static final ResourceKey ETERNIUM_ORE_KEY = ResourceKey.create(Registry.PLACED_FEATURE_REGISTRY, ETERNIUM_ORE_RL); + private static final ResourceKey> ETERNIUM_ORE_KEY_CFG = ResourceKey.create(Registry.CONFIGURED_FEATURE_REGISTRY, ETERNIUM_ORE_RL); + + + private static final String ADD_FEATURE_ETERNIUM_ORE_OVERWORLD = "add_eternium_ow"; + private static final ResourceLocation ADD_ETERNIUM_ORE_OW = new ResourceLocation(OTEMod.MOD_ID, ADD_FEATURE_ETERNIUM_ORE_OVERWORLD); + + + public static void DoProcess(GatherDataEvent ev) { + /* + final DataGenerator generator = ev.getGenerator(); + final ExistingFileHelper fExistingFileHelper = ev.getExistingFileHelper(); + final RegistryOps ops = RegistryOps.create(JsonOps.INSTANCE, RegistryAccess.builtinCopy()); + + // Create the placed ore feature + //final ResourceKey> configuredFeatKey = OreFeatures.ORE_DIAMOND_SMALL.unwrapKey().get().cast(Registry.CONFIGURED_FEATURE_REGISTRY).get(); + + final Holder> configuredFeatHolder = ops.registry(Registry.CONFIGURED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(ETERNIUM_ORE_KEY_CFG); + + final PlacedFeature eternium_ore_place = new PlacedFeature(configuredFeatHolder, List.of( + BiomeFilter.biome() + )); + + final PlacedFeature pfeat = ops.registry(Registry.PLACED_FEATURE_REGISTRY).get().get(ETERNIUM_ORE_RL); + + final HolderSet.Named hfeatBiome = new Named<>(ops.registry(Registry.BIOME_REGISTRY).get(), BiomeTags.IS_OVERWORLD); + + + final BiomeModifier modif = new AddFeaturesBiomeModifier( + hfeatBiome, + HolderSet.direct(ops.registry(Registry.PLACED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(ETERNIUM_ORE_KEY)), + Decoration.UNDERGROUND_ORES + ); + + + generator.addProvider(ev.includeServer(), JsonCodecProvider.forDatapackRegistry(generator, fExistingFileHelper, OTEMod.MOD_ID, ops, Registry.PLACED_FEATURE_REGISTRY, Map.of( + ETERNIUM_ORE_RL, pfeat + ))); + + generator.addProvider(ev.includeServer(), JsonCodecProvider.forDatapackRegistry(generator, fExistingFileHelper, OTEMod.MOD_ID, ops, ForgeRegistries.Keys.BIOME_MODIFIERS, Map.of( + ADD_ETERNIUM_ORE_OW, modif + ))); + */ + } + + + public record ModifierOfBiomes(HolderSet biomes, Holder feature) implements BiomeModifier + { + private static final RegistryObject> SERIALIZER = RegistryObject.create(OTEMod.MODIFY_BIOMES_RL, ForgeRegistries.Keys.BIOME_MODIFIER_SERIALIZERS, OTEMod.MOD_ID); + + @Override + public void modify(Holder biome, Phase phase, Builder builder) { + if(phase == Phase.ADD && biomes.contains(biome)){ + builder.getGenerationSettings().addFeature(Decoration.UNDERGROUND_ORES, feature); + } + } + + @Override + public Codec codec() { + return SERIALIZER.get(); + } + + public static Codec makeCodec() + { + return RecordCodecBuilder.create(builder->builder.group( + Biome.LIST_CODEC.fieldOf("biomes").forGetter(ModifierOfBiomes::biomes), + PlacedFeature.CODEC.fieldOf("feature").forGetter(ModifierOfBiomes::feature) + ).apply(builder, ModifierOfBiomes::new)); + } + + } + +} diff --git a/src/main/java/dev/zontreck/otemod/ore/OreGenerator.java b/src/main/java/dev/zontreck/otemod/ore/OreGenerator.java deleted file mode 100644 index 3b73522..0000000 --- a/src/main/java/dev/zontreck/otemod/ore/OreGenerator.java +++ /dev/null @@ -1,59 +0,0 @@ -package dev.zontreck.otemod.ore; - -import java.util.ArrayList; -import java.util.List; - -import dev.zontreck.otemod.OTEMod; -import dev.zontreck.otemod.blocks.ModBlocks; -import net.minecraft.core.Holder; -import net.minecraft.data.worldgen.features.FeatureUtils; -import net.minecraft.data.worldgen.features.OreFeatures; -import net.minecraft.data.worldgen.placement.PlacementUtils; -import net.minecraft.data.worldgen.placement.VegetationPlacements; -import net.minecraft.world.level.levelgen.GenerationStep; -import net.minecraft.world.level.levelgen.VerticalAnchor; -import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; -import net.minecraft.world.level.levelgen.feature.Feature; -import net.minecraft.world.level.levelgen.feature.OreFeature; -import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; -import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; -import net.minecraft.world.level.levelgen.placement.PlacedFeature; - -public class OreGenerator { - public static final List> OVERWORLD_ORES = new ArrayList(); - - - public static final List OVERWORLD_AION_ORE = List.of(OreConfiguration.target(OreFeatures.STONE_ORE_REPLACEABLES, ModBlocks.AION_ORE_BLOCK.get().defaultBlockState()), OreConfiguration.target(OreFeatures.DEEPSLATE_ORE_REPLACEABLES, ModBlocks.DEEPSLATE_AION_ORE_BLOCK.get().defaultBlockState())); - - public static final Holder> AION_ORE = FeatureUtils.register("aion_ore_block", Feature.ORE, new OreConfiguration(OVERWORLD_AION_ORE, 6)); - - public static final Holder> DEEPSLATE_AION_ORE = FeatureUtils.register("deepslate_aion_ore_block", Feature.ORE, new OreConfiguration(OVERWORLD_AION_ORE, 6)); - - - //public static final Holder EBONY_PLACED = PlacementUtils.register("ebony_placed", - //ModConfiguredFeatures.EBONY_SPAWN, VegetationPlacements.treePlacement( - //PlacementUtils.countExtra(3, 0.1f, 2))); - - //public static final Holder PINK_ROSE_PLACED = PlacementUtils.register("pink_rose_placed", - //ModConfiguredFeatures.PINK_ROSE, RarityFilter.onAverageOnceEvery(16), - //InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome()); - - public static final Holder AION_ORE_PLACED = PlacementUtils.register("aion_ore_placed", - AION_ORE, ModdedOrePlacement.commonOrePlacement(3, // VeinsPerChunk - HeightRangePlacement.triangle(VerticalAnchor.absolute(-20), VerticalAnchor.absolute(20)))); - - - //public static final Holder DEEPSLATE_AION_ORE_PLACED = PlacementUtils.register("deepslate_aion_ore_placed", - // DEEPSLATE_AION_ORE, ModdedOrePlacement.commonOrePlacement(3, // VeinsPerChunk - // HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-20), VerticalAnchor.aboveBottom(0)))); - - public static void generateOres(final BiomeLoadingEvent ev) - { - - List> base = ev.getGeneration().getFeatures(GenerationStep.Decoration.UNDERGROUND_ORES); - - //ShapedAionResources.LOGGER.info("Register: AION_ORE"); - base.add(AION_ORE_PLACED); - //base.add(DEEPSLATE_AION_ORE_PLACED); - } -} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 16129f3..75f00d9 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -6,7 +6,7 @@ # The name of the mod loader type to load - for regular FML @Mod mods it should be javafml modLoader="javafml" #mandatory # A version range to match for said mod loader - for regular FML @Mod it will be the forge version -loaderVersion="[40,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +loaderVersion="[41,]" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. # The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties. # Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here. license="GPL 2.0" @@ -40,7 +40,7 @@ The entire purpose of this mod is to add datapack resources that will be present # Does this dependency have to exist - if not, ordering below must be specified mandatory=true #mandatory # The version range of the dependency - versionRange="[41,)" #mandatory + versionRange="[41,]" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory ordering="NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER @@ -50,6 +50,6 @@ The entire purpose of this mod is to add datapack resources that will be present modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version - versionRange="[1.19)" + versionRange="[1.19,]" ordering="NONE" side="BOTH" diff --git a/src/main/resources/assets/shapedaionresources/blockstates/aion_block.json b/src/main/resources/assets/otemod/blockstates/aion_block.json similarity index 100% rename from src/main/resources/assets/shapedaionresources/blockstates/aion_block.json rename to src/main/resources/assets/otemod/blockstates/aion_block.json diff --git a/src/main/resources/assets/otemod/blockstates/deepslate_eternium_ore_block.json b/src/main/resources/assets/otemod/blockstates/deepslate_eternium_ore_block.json new file mode 100644 index 0000000..30b7777 --- /dev/null +++ b/src/main/resources/assets/otemod/blockstates/deepslate_eternium_ore_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "otemod:block/deepslate_eternium_ore_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/otemod/blockstates/eternium_ore_block.json b/src/main/resources/assets/otemod/blockstates/eternium_ore_block.json new file mode 100644 index 0000000..95bbbca --- /dev/null +++ b/src/main/resources/assets/otemod/blockstates/eternium_ore_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "otemod:block/eternium_ore_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/icon.png b/src/main/resources/assets/otemod/icon.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/icon.png rename to src/main/resources/assets/otemod/icon.png diff --git a/src/main/resources/assets/otemod/lang/en_us.json b/src/main/resources/assets/otemod/lang/en_us.json new file mode 100644 index 0000000..a7ccfd8 --- /dev/null +++ b/src/main/resources/assets/otemod/lang/en_us.json @@ -0,0 +1,17 @@ +{ + "itemGroup.refinedfabric.materials": "RefinedFabric Materials", + "itemGroup.refinedfabric.tools": "RefinedFabric Utilities", + "itemGroup.refinedfabric.blocks": "RefinedFabric Blocks", + + "item.otemod.eternium_ore": "Raw Eternium Ore", + "item.otemod.ihan_crystal": "Ihan Crystal", + "item.otemod.ihan_crystal.levels": "Stored XP: ", + "item.otemod.ihan_crystal.empty": "* Crystal Is Empty *", + "item.otemod.ihan_crystal.need_repair": "Ihan Crystal must now be repaired", + "item.otemod.ihan_crystal.durability": "Durability: ", + "item.otemod.eternium_fragment": "Fragmented Eternium", + + "block.otemod.eternium_ore_block": "Eternium Ore", + "block.otemod.deepslate_eternium_ore_block": "Deepslate Eternium Ore", + "block.otemod.aion_block": "Aion Block" +} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/models/block/aion_block.json b/src/main/resources/assets/otemod/models/block/aion_block.json similarity index 100% rename from src/main/resources/assets/shapedaionresources/models/block/aion_block.json rename to src/main/resources/assets/otemod/models/block/aion_block.json diff --git a/src/main/resources/assets/otemod/models/block/deepslate_eternium_ore_block.json b/src/main/resources/assets/otemod/models/block/deepslate_eternium_ore_block.json new file mode 100644 index 0000000..60fd21c --- /dev/null +++ b/src/main/resources/assets/otemod/models/block/deepslate_eternium_ore_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "otemod:block/deepslate_eternium_ore_block" + } +} diff --git a/src/main/resources/assets/shapedaionresources/models/block/aion_ore_block.json b/src/main/resources/assets/otemod/models/block/eternium_ore_block.json similarity index 54% rename from src/main/resources/assets/shapedaionresources/models/block/aion_ore_block.json rename to src/main/resources/assets/otemod/models/block/eternium_ore_block.json index e85b3a5..ac2cf9b 100644 --- a/src/main/resources/assets/shapedaionresources/models/block/aion_ore_block.json +++ b/src/main/resources/assets/otemod/models/block/eternium_ore_block.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "otemod:block/aion_ore_block" + "all": "otemod:block/eternium_ore_block" } } diff --git a/src/main/resources/assets/shapedaionresources/models/item/aion_block.json b/src/main/resources/assets/otemod/models/item/aion_block.json similarity index 100% rename from src/main/resources/assets/shapedaionresources/models/item/aion_block.json rename to src/main/resources/assets/otemod/models/item/aion_block.json diff --git a/src/main/resources/assets/otemod/models/item/deepslate_eternium_ore_block.json b/src/main/resources/assets/otemod/models/item/deepslate_eternium_ore_block.json new file mode 100644 index 0000000..dbbc826 --- /dev/null +++ b/src/main/resources/assets/otemod/models/item/deepslate_eternium_ore_block.json @@ -0,0 +1,3 @@ +{ + "parent": "otemod:block/deepslate_eternium_ore_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/models/item/aion_fragment.json b/src/main/resources/assets/otemod/models/item/eternium_fragment.json similarity index 54% rename from src/main/resources/assets/shapedaionresources/models/item/aion_fragment.json rename to src/main/resources/assets/otemod/models/item/eternium_fragment.json index c2d5501..38bc7d2 100644 --- a/src/main/resources/assets/shapedaionresources/models/item/aion_fragment.json +++ b/src/main/resources/assets/otemod/models/item/eternium_fragment.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "otemod:item/aion_fragment" + "layer0": "otemod:item/eternium_fragment" } } diff --git a/src/main/resources/assets/shapedaionresources/models/item/aion_ore.json b/src/main/resources/assets/otemod/models/item/eternium_ore.json similarity index 56% rename from src/main/resources/assets/shapedaionresources/models/item/aion_ore.json rename to src/main/resources/assets/otemod/models/item/eternium_ore.json index 8d09d9e..09a92be 100644 --- a/src/main/resources/assets/shapedaionresources/models/item/aion_ore.json +++ b/src/main/resources/assets/otemod/models/item/eternium_ore.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "otemod:item/aion_ore" + "layer0": "otemod:item/eternium_ore" } } diff --git a/src/main/resources/assets/otemod/models/item/eternium_ore_block.json b/src/main/resources/assets/otemod/models/item/eternium_ore_block.json new file mode 100644 index 0000000..d77d57e --- /dev/null +++ b/src/main/resources/assets/otemod/models/item/eternium_ore_block.json @@ -0,0 +1,3 @@ +{ + "parent": "otemod:block/eternium_ore_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/models/item/aion_crystal.json b/src/main/resources/assets/otemod/models/item/ihan_crystal.json similarity index 56% rename from src/main/resources/assets/shapedaionresources/models/item/aion_crystal.json rename to src/main/resources/assets/otemod/models/item/ihan_crystal.json index 50a93e4..7072ee4 100644 --- a/src/main/resources/assets/shapedaionresources/models/item/aion_crystal.json +++ b/src/main/resources/assets/otemod/models/item/ihan_crystal.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "otemod:item/aion_crystal" + "layer0": "otemod:item/ihan_crystal" } } diff --git a/src/main/resources/assets/shapedaionresources/textures/block/aion_block.png b/src/main/resources/assets/otemod/textures/block/aion_block.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/block/aion_block.png rename to src/main/resources/assets/otemod/textures/block/aion_block.png diff --git a/src/main/resources/assets/shapedaionresources/textures/block/deepslate_aion_ore_block.png b/src/main/resources/assets/otemod/textures/block/deepslate_eternium_ore_block.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/block/deepslate_aion_ore_block.png rename to src/main/resources/assets/otemod/textures/block/deepslate_eternium_ore_block.png diff --git a/src/main/resources/assets/shapedaionresources/textures/block/aion_ore_block.png b/src/main/resources/assets/otemod/textures/block/eternium_ore_block.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/block/aion_ore_block.png rename to src/main/resources/assets/otemod/textures/block/eternium_ore_block.png diff --git a/src/main/resources/assets/shapedaionresources/textures/item/aion_fragment.png b/src/main/resources/assets/otemod/textures/item/eternium_fragment.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/item/aion_fragment.png rename to src/main/resources/assets/otemod/textures/item/eternium_fragment.png diff --git a/src/main/resources/assets/shapedaionresources/textures/item/aion_ore.png b/src/main/resources/assets/otemod/textures/item/eternium_ore.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/item/aion_ore.png rename to src/main/resources/assets/otemod/textures/item/eternium_ore.png diff --git a/src/main/resources/assets/shapedaionresources/textures/item/aion_crystal.png b/src/main/resources/assets/otemod/textures/item/ihan_crystal.png similarity index 100% rename from src/main/resources/assets/shapedaionresources/textures/item/aion_crystal.png rename to src/main/resources/assets/otemod/textures/item/ihan_crystal.png diff --git a/src/main/resources/assets/shapedaionresources/blockstates/aion_ore_block.json b/src/main/resources/assets/shapedaionresources/blockstates/aion_ore_block.json deleted file mode 100644 index b2de5c8..0000000 --- a/src/main/resources/assets/shapedaionresources/blockstates/aion_ore_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "otemod:block/aion_ore_block" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/blockstates/deepslate_aion_ore_block.json b/src/main/resources/assets/shapedaionresources/blockstates/deepslate_aion_ore_block.json deleted file mode 100644 index 2bd9b96..0000000 --- a/src/main/resources/assets/shapedaionresources/blockstates/deepslate_aion_ore_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "otemod:block/deepslate_aion_ore_block" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/lang/en_us.json b/src/main/resources/assets/shapedaionresources/lang/en_us.json deleted file mode 100644 index 63bd56b..0000000 --- a/src/main/resources/assets/shapedaionresources/lang/en_us.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "itemGroup.refinedfabric.materials": "RefinedFabric Materials", - "itemGroup.refinedfabric.tools": "RefinedFabric Utilities", - "itemGroup.refinedfabric.blocks": "RefinedFabric Blocks", - - "item.otemod.aion_ore": "Raw Aion Ore", - "item.otemod.aion_crystal": "Aion Crystal", - "item.otemod.aion_crystal.levels": "Stored XP: ", - "item.otemod.aion_crystal.empty": "* Crystal Is Empty *", - "item.otemod.aion_crystal.need_repair": "Aion Crystal must now be repaired", - "item.otemod.aion_crystal.durability": "Durability: ", - "item.otemod.aion_fragment": "Fragmented Aion Crystal", - - "block.otemod.aion_ore_block": "Aion Ore", - "block.otemod.deepslate_aion_ore_block": "Deepslate Aion Ore", - "block.otemod.aion_block": "Aion Block" -} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/models/block/deepslate_aion_ore_block.json b/src/main/resources/assets/shapedaionresources/models/block/deepslate_aion_ore_block.json deleted file mode 100644 index b4db7f4..0000000 --- a/src/main/resources/assets/shapedaionresources/models/block/deepslate_aion_ore_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "otemod:block/deepslate_aion_ore_block" - } -} diff --git a/src/main/resources/assets/shapedaionresources/models/item/aion_ore_block.json b/src/main/resources/assets/shapedaionresources/models/item/aion_ore_block.json deleted file mode 100644 index c181073..0000000 --- a/src/main/resources/assets/shapedaionresources/models/item/aion_ore_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "otemod:block/aion_ore_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/models/item/deepslate_aion_ore_block.json b/src/main/resources/assets/shapedaionresources/models/item/deepslate_aion_ore_block.json deleted file mode 100644 index 466341d..0000000 --- a/src/main/resources/assets/shapedaionresources/models/item/deepslate_aion_ore_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "otemod:block/deepslate_aion_ore_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/shapedaionresources/textures/entity/elytra.png b/src/main/resources/assets/shapedaionresources/textures/entity/elytra.png deleted file mode 100644 index 0390b25..0000000 Binary files a/src/main/resources/assets/shapedaionresources/textures/entity/elytra.png and /dev/null differ diff --git a/src/main/resources/data/minecraft/biome/.TestPlaceholder b/src/main/resources/data/minecraft/biome/.TestPlaceholder new file mode 100644 index 0000000..343f0c3 --- /dev/null +++ b/src/main/resources/data/minecraft/biome/.TestPlaceholder @@ -0,0 +1,3 @@ +# Do not remove this file. +This file is here due to MC-241264 +https://bugs.mojang.com/browse/MC-241264 \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index a18832a..e0c26db 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,8 +1,8 @@ { "replace": false, "values": [ - "shapedaionresources:aion_ore_block", - "shapedaionresources:deepslate_aion_ore_block", - "shapedaionresources:aion_block" + "otemod:eternium_ore_block", + "otemod:deepslate_eternium_ore_block", + "otemod:aion_block" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json index 6af289f..625eee2 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "shapedaionresources:aion_block" + "otemod:aion_block" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json index 853dbdb..5e9241b 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -1,7 +1,7 @@ { "replace": false, "values": [ - "shapedaionresources:aion_ore_block", - "shapedaionresources:deepslate_aion_ore_block" + "otemod:eternium_ore_block", + "otemod:deepslate_eternium_ore_block" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wither_immune.json b/src/main/resources/data/minecraft/tags/blocks/wither_immune.json index 6af289f..625eee2 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wither_immune.json +++ b/src/main/resources/data/minecraft/tags/blocks/wither_immune.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "shapedaionresources:aion_block" + "otemod:aion_block" ] } \ No newline at end of file diff --git a/src/main/resources/data/otemod/forge/biome_modifier/eternium_placer.json b/src/main/resources/data/otemod/forge/biome_modifier/eternium_placer.json new file mode 100644 index 0000000..a84bfab --- /dev/null +++ b/src/main/resources/data/otemod/forge/biome_modifier/eternium_placer.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "features": ["otemod:eternium_oregen_overworld"], + "biomes": "#is_overworld", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/otemod/loot_tables/blocks/aion_block.json b/src/main/resources/data/otemod/loot_tables/blocks/aion_block.json index 1e1e550..27e5ee7 100644 --- a/src/main/resources/data/otemod/loot_tables/blocks/aion_block.json +++ b/src/main/resources/data/otemod/loot_tables/blocks/aion_block.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "shapedaionresources:aion_block" + "name": "otemod:aion_block" } ], "conditions": [ diff --git a/src/main/resources/data/otemod/loot_tables/blocks/aion_ore_block.json b/src/main/resources/data/otemod/loot_tables/blocks/deepslate_eternium_ore_block.json similarity index 90% rename from src/main/resources/data/otemod/loot_tables/blocks/aion_ore_block.json rename to src/main/resources/data/otemod/loot_tables/blocks/deepslate_eternium_ore_block.json index ecb975e..f98254a 100644 --- a/src/main/resources/data/otemod/loot_tables/blocks/aion_ore_block.json +++ b/src/main/resources/data/otemod/loot_tables/blocks/deepslate_eternium_ore_block.json @@ -26,7 +26,7 @@ } } ], - "name": "shapedaionresources:aion_ore_block" + "name": "otemod:deepslate_eternium_ore_block" }, { "type": "minecraft:item", @@ -40,7 +40,7 @@ "function": "minecraft:explosion_decay" } ], - "name": "shapedaionresources:aion_ore" + "name": "otemod:eternium_ore" } ] } diff --git a/src/main/resources/data/otemod/loot_tables/blocks/deepslate_aion_ore_block.json b/src/main/resources/data/otemod/loot_tables/blocks/eternium_ore_block.json similarity index 90% rename from src/main/resources/data/otemod/loot_tables/blocks/deepslate_aion_ore_block.json rename to src/main/resources/data/otemod/loot_tables/blocks/eternium_ore_block.json index 48ca2be..49ef5f6 100644 --- a/src/main/resources/data/otemod/loot_tables/blocks/deepslate_aion_ore_block.json +++ b/src/main/resources/data/otemod/loot_tables/blocks/eternium_ore_block.json @@ -26,7 +26,7 @@ } } ], - "name": "shapedaionresources:deepslate_aion_ore_block" + "name": "otemod:eternium_ore_block" }, { "type": "minecraft:item", @@ -40,7 +40,7 @@ "function": "minecraft:explosion_decay" } ], - "name": "shapedaionresources:aion_ore" + "name": "otemod:eternium_ore" } ] } diff --git a/src/main/resources/data/otemod/recipes/aion_block.json b/src/main/resources/data/otemod/recipes/aion_block.json index 1838dc9..266567f 100644 --- a/src/main/resources/data/otemod/recipes/aion_block.json +++ b/src/main/resources/data/otemod/recipes/aion_block.json @@ -7,7 +7,7 @@ ], "key": { "C": { - "item": "otemod:aion_crystal" + "item": "otemod:ihan_crystal" }, "N": { "item": "minecraft:nether_star" diff --git a/src/main/resources/data/otemod/recipes/aion_fragment.json b/src/main/resources/data/otemod/recipes/aion_fragment.json deleted file mode 100644 index b091935..0000000 --- a/src/main/resources/data/otemod/recipes/aion_fragment.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": [ - { - "item": "otemod:aion_ore" - }, - { - "item": "otemod:aion_ore_block" - }, - { - "item": "otemod:deepslate_aion_ore_block" - } - ], - "result": "otemod:aion_fragment", - "experience": 0.5, - "cookingtime": 25 -} diff --git a/src/main/resources/data/otemod/recipes/eternium_fragment.json b/src/main/resources/data/otemod/recipes/eternium_fragment.json new file mode 100644 index 0000000..c9d6697 --- /dev/null +++ b/src/main/resources/data/otemod/recipes/eternium_fragment.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:smelting", + "ingredient": [ + { + "item": "otemod:eternium_ore" + }, + { + "item": "otemod:eternium_ore_block" + }, + { + "item": "otemod:deepslate_eternium_ore_block" + } + ], + "result": "otemod:eternium_fragment", + "experience": 0.5, + "cookingtime": 25 +} diff --git a/src/main/resources/data/otemod/recipes/holosphere.json b/src/main/resources/data/otemod/recipes/holosphere.json.old similarity index 100% rename from src/main/resources/data/otemod/recipes/holosphere.json rename to src/main/resources/data/otemod/recipes/holosphere.json.old diff --git a/src/main/resources/data/otemod/recipes/aion_crystal.json b/src/main/resources/data/otemod/recipes/ihan_crystal.json similarity index 71% rename from src/main/resources/data/otemod/recipes/aion_crystal.json rename to src/main/resources/data/otemod/recipes/ihan_crystal.json index 2e64dbe..c6739b9 100644 --- a/src/main/resources/data/otemod/recipes/aion_crystal.json +++ b/src/main/resources/data/otemod/recipes/ihan_crystal.json @@ -7,14 +7,14 @@ ], "key": { "F": { - "item": "otemod:aion_fragment" + "item": "otemod:eternium_fragment" }, "G": { "item": "minecraft:emerald" } }, "result": { - "item": "otemod:aion_crystal", + "item": "otemod:ihan_crystal", "count": 1 } } \ No newline at end of file diff --git a/src/main/resources/data/otemod/worldgen/configured_feature/eternium_oregen_overworld.json b/src/main/resources/data/otemod/worldgen/configured_feature/eternium_oregen_overworld.json new file mode 100644 index 0000000..5a345bb --- /dev/null +++ b/src/main/resources/data/otemod/worldgen/configured_feature/eternium_oregen_overworld.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 8, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "otemod:eternium_ore_block" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "otemod:deepslate_eternium_ore_block" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/otemod/worldgen/placed_feature/eternium_oregen_overworld.json b/src/main/resources/data/otemod/worldgen/placed_feature/eternium_oregen_overworld.json new file mode 100644 index 0000000..5352bf9 --- /dev/null +++ b/src/main/resources/data/otemod/worldgen/placed_feature/eternium_oregen_overworld.json @@ -0,0 +1,24 @@ +{ + "feature": "otemod:eternium_oregen_overworld", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "min_inclusive": { + "absolute": -20 + }, + "max_inclusive": { + "absolute": 25 + } + } + } + ] +} diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 5db534a..81ddd03 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { "description": "OTEMod Resources", - "pack_format": 9 + "pack_format": 10 } } diff --git a/src/main/resources/resources.zip b/src/main/resources/resources.zip new file mode 100644 index 0000000..c636fdb Binary files /dev/null and b/src/main/resources/resources.zip differ