Finish updating to 1.19, rename Aion to Eternium

This commit is contained in:
Zontreck 2022-06-27 00:49:47 -07:00
parent f3e94c68a7
commit 7dc2dbda4f
55 changed files with 298 additions and 190 deletions

View file

@ -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

View file

@ -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<Codec<? extends BiomeModifier>> 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);

View file

@ -27,16 +27,14 @@ public class ModBlocks {
OTEMod.LOGGER.info("Registering all blocks...");
}
public static final RegistryObject<Block> 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<Block> 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<Item> 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<Item> 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<Block> 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<Block> 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<Item> 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<Item> 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<Block> AION_BLOCK = BLOCKS.register("aion_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE).requiresCorrectToolForDrops().strength(9f).explosionResistance(100000f).destroyTime(10).sound(SoundType.NETHERITE_BLOCK)));

View file

@ -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);
}
}

View file

@ -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");
}
}*/
}

View file

@ -11,12 +11,12 @@ import net.minecraftforge.registries.RegistryObject;
public class ModItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, OTEMod.MOD_ID);
public static final RegistryObject<Item> AION_FRAGMENT = ITEMS.register("aion_fragment", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static final RegistryObject<Item> ETERNIUM_FRAGMENT = ITEMS.register("eternium_fragment", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static final RegistryObject<Item> AION_CRYSTAL = ITEMS.register("aion_crystal", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static final RegistryObject<Item> IHAN_CRYSTAL = ITEMS.register("ihan_crystal", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static final RegistryObject<Item> AION_RAW_ORE = ITEMS.register("aion_ore", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static final RegistryObject<Item> ETERNIUM_RAW_ORE = ITEMS.register("eternium_ore", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
public static void register(IEventBus bus){

View file

@ -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<PlacementModifier> orePlacement(PlacementModifier p_195347_, PlacementModifier p_195348_) {
return List.of(p_195347_, InSquarePlacement.spread(), p_195348_, BiomeFilter.biome());
}
public static List<PlacementModifier> commonOrePlacement(int p_195344_, PlacementModifier p_195345_) {
return orePlacement(CountPlacement.of(p_195344_), p_195345_);
}
public static List<PlacementModifier> rareOrePlacement(int p_195350_, PlacementModifier p_195351_) {
return orePlacement(RarityFilter.onAverageOnceEvery(p_195350_), p_195351_);
}
}

View file

@ -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<PlacedFeature> ETERNIUM_ORE_KEY = ResourceKey.create(Registry.PLACED_FEATURE_REGISTRY, ETERNIUM_ORE_RL);
private static final ResourceKey<ConfiguredFeature<?,?>> 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<JsonElement> ops = RegistryOps.create(JsonOps.INSTANCE, RegistryAccess.builtinCopy());
// Create the placed ore feature
//final ResourceKey<ConfiguredFeature<?,?>> configuredFeatKey = OreFeatures.ORE_DIAMOND_SMALL.unwrapKey().get().cast(Registry.CONFIGURED_FEATURE_REGISTRY).get();
final Holder<ConfiguredFeature<?,?>> 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<Biome> 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<Biome> biomes, Holder<PlacedFeature> feature) implements BiomeModifier
{
private static final RegistryObject<Codec<? extends BiomeModifier>> SERIALIZER = RegistryObject.create(OTEMod.MODIFY_BIOMES_RL, ForgeRegistries.Keys.BIOME_MODIFIER_SERIALIZERS, OTEMod.MOD_ID);
@Override
public void modify(Holder<Biome> biome, Phase phase, Builder builder) {
if(phase == Phase.ADD && biomes.contains(biome)){
builder.getGenerationSettings().addFeature(Decoration.UNDERGROUND_ORES, feature);
}
}
@Override
public Codec<? extends BiomeModifier> codec() {
return SERIALIZER.get();
}
public static Codec<ModifierOfBiomes> 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));
}
}
}

View file

@ -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<ConfiguredFeature<OreConfiguration, OreFeature>> OVERWORLD_ORES = new ArrayList();
public static final List<OreConfiguration.TargetBlockState> 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<ConfiguredFeature<OreConfiguration, ?>> AION_ORE = FeatureUtils.register("aion_ore_block", Feature.ORE, new OreConfiguration(OVERWORLD_AION_ORE, 6));
public static final Holder<ConfiguredFeature<OreConfiguration, ?>> DEEPSLATE_AION_ORE = FeatureUtils.register("deepslate_aion_ore_block", Feature.ORE, new OreConfiguration(OVERWORLD_AION_ORE, 6));
//public static final Holder<PlacedFeature> EBONY_PLACED = PlacementUtils.register("ebony_placed",
//ModConfiguredFeatures.EBONY_SPAWN, VegetationPlacements.treePlacement(
//PlacementUtils.countExtra(3, 0.1f, 2)));
//public static final Holder<PlacedFeature> PINK_ROSE_PLACED = PlacementUtils.register("pink_rose_placed",
//ModConfiguredFeatures.PINK_ROSE, RarityFilter.onAverageOnceEvery(16),
//InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome());
public static final Holder<PlacedFeature> 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<PlacedFeature> 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<Holder<PlacedFeature>> 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);
}
}

View file

@ -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"

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "otemod:block/deepslate_eternium_ore_block"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "otemod:block/eternium_ore_block"
}
}
}

View file

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Before After
Before After

View file

@ -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"
}

View file

@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "otemod:block/deepslate_eternium_ore_block"
}
}

View file

@ -1,6 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "otemod:block/aion_ore_block"
"all": "otemod:block/eternium_ore_block"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "otemod:block/deepslate_eternium_ore_block"
}

View file

@ -1,6 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "otemod:item/aion_fragment"
"layer0": "otemod:item/eternium_fragment"
}
}

View file

@ -1,6 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "otemod:item/aion_ore"
"layer0": "otemod:item/eternium_ore"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "otemod:block/eternium_ore_block"
}

View file

@ -1,6 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "otemod:item/aion_crystal"
"layer0": "otemod:item/ihan_crystal"
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "otemod:block/aion_ore_block"
}
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "otemod:block/deepslate_aion_ore_block"
}
}
}

View file

@ -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"
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/cube_all",
"textures": {
"all": "otemod:block/deepslate_aion_ore_block"
}
}

View file

@ -1,3 +0,0 @@
{
"parent": "otemod:block/aion_ore_block"
}

View file

@ -1,3 +0,0 @@
{
"parent": "otemod:block/deepslate_aion_ore_block"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -0,0 +1,3 @@
# Do not remove this file.
This file is here due to MC-241264
https://bugs.mojang.com/browse/MC-241264

View file

@ -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"
]
}

View file

@ -1,6 +1,6 @@
{
"replace": false,
"values": [
"shapedaionresources:aion_block"
"otemod:aion_block"
]
}

View file

@ -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"
]
}

View file

@ -1,6 +1,6 @@
{
"replace": false,
"values": [
"shapedaionresources:aion_block"
"otemod:aion_block"
]
}

View file

@ -0,0 +1,6 @@
{
"type": "forge:add_features",
"features": ["otemod:eternium_oregen_overworld"],
"biomes": "#is_overworld",
"step": "underground_ores"
}

View file

@ -6,7 +6,7 @@
"entries": [
{
"type": "minecraft:item",
"name": "shapedaionresources:aion_block"
"name": "otemod:aion_block"
}
],
"conditions": [

View file

@ -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"
}
]
}

View file

@ -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"
}
]
}

View file

@ -7,7 +7,7 @@
],
"key": {
"C": {
"item": "otemod:aion_crystal"
"item": "otemod:ihan_crystal"
},
"N": {
"item": "minecraft:nether_star"

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}
}

View file

@ -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"
}
}
]
}
}

View file

@ -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
}
}
}
]
}

View file

@ -1,6 +1,6 @@
{
"pack": {
"description": "OTEMod Resources",
"pack_format": 9
"pack_format": 10
}
}

Binary file not shown.