Get OTEMod functional

This commit is contained in:
zontreck 2023-12-16 15:29:49 -07:00
parent 4d0205715b
commit f4d8b9761f
28 changed files with 2587 additions and 5116 deletions

View file

@ -49,7 +49,7 @@ mod_name=OTEMod
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=GPLv3
# The mod version. See https://semver.org/
mod_version=1.4.121623.1259
mod_version=1.4.121623.1529
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html

View file

@ -13,6 +13,7 @@ import java.util.Set;
import com.mojang.logging.LogUtils;
import dev.zontreck.libzontreck.chat.ChatColor;
import dev.zontreck.libzontreck.vectors.Vector3;
import dev.zontreck.otemod.implementation.CreativeModeTabs;
import dev.zontreck.otemod.integrations.KeyBindings;
import net.minecraft.client.gui.screens.MenuScreens;
import net.minecraft.client.renderer.entity.EntityRenderers;
@ -111,6 +112,7 @@ public class OTEMod
ModBlocks.register(bus);
ModItems.register(bus);
CreativeModeTabs.REGISTER.register(bus);
ModEntities.register(bus);
ModEnchantments.register(bus);
ModEntityTypes.register(bus);

View file

@ -1,6 +1,7 @@
package dev.zontreck.otemod.blocks;
import dev.zontreck.otemod.OTEMod;
import dev.zontreck.otemod.implementation.CreativeModeTabs;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
@ -27,55 +28,55 @@ public class ModBlocks {
public static final RegistryObject<Block> ETERNIUM_ORE_BLOCK = BLOCKS.register("eternium_ore_block", () -> new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(7F).explosionResistance(1200).destroyTime(6)));
public static final RegistryObject<Item> ETERNIUM_ORE_BLOCK_I = ITEMS.register("eternium_ore_block", () -> new BlockItem(ETERNIUM_ORE_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_ORE_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_ore_block", () -> new BlockItem(ETERNIUM_ORE_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> VAULT_STEEL_ORE_BLOCK = BLOCKS.register("vault_steel_ore_block", ()->new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(8F).explosionResistance(1200).destroyTime(100)));
public static final RegistryObject<Item> VAULT_STEEL_ORE_BLOCK_I = ITEMS.register("vault_steel_ore_block", ()->new BlockItem(VAULT_STEEL_ORE_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> VAULT_STEEL_ORE_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_steel_ore_block", ()->new BlockItem(VAULT_STEEL_ORE_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> NETHER_VAULT_STEEL_ORE_BLOCK = BLOCKS.register("nether_vault_steel_ore_block", ()->new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(8F).explosionResistance(1200).destroyTime(100)));
public static final RegistryObject<Item> NETHER_VAULT_STEEL_ORE_BLOCK_I = ITEMS.register("nether_vault_steel_ore_block", ()->new BlockItem(NETHER_VAULT_STEEL_ORE_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> NETHER_VAULT_STEEL_ORE_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("nether_vault_steel_ore_block", ()->new BlockItem(NETHER_VAULT_STEEL_ORE_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> ETERNIUM_BLOCK = BLOCKS.register("eternium_block", ()->new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(8F).explosionResistance(1200).destroyTime(100)));
public static final RegistryObject<Item> ETERNIUM_BLOCK_I = ITEMS.register("eternium_block", ()->new FoiledBlockItem(ETERNIUM_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_block", ()->new FoiledBlockItem(ETERNIUM_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> DEEPSLATE_ETERNIUM_ORE_BLOCK = BLOCKS.register("deepslate_eternium_ore_block", () -> new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(5f).explosionResistance(1200).destroyTime(7)));
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()));
public static final RegistryObject<Item> DEEPSLATE_ETERNIUM_ORE_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("deepslate_eternium_ore_block", () -> new BlockItem(DEEPSLATE_ETERNIUM_ORE_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> AURORA_BLOCK = BLOCKS.register("aurora_block", () -> new Block(BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(9f).explosionResistance(100000f).destroyTime(10).sound(SoundType.NETHERITE_BLOCK)));
public static final RegistryObject<Item> AURORA_BLOCK_I = ITEMS.register("aurora_block", () -> new BlockItem(AURORA_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> AURORA_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("aurora_block", () -> new BlockItem(AURORA_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> AURORA_DOOR = BLOCKS.register("aurora_door", AuroraDoorBlock::new);
public static final RegistryObject<Item> AURORA_DOOR_I = ITEMS.register("aurora_door", () -> new BlockItem(AURORA_DOOR.get(), new Item.Properties()));
public static final RegistryObject<Item> AURORA_DOOR_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("aurora_door", () -> new BlockItem(AURORA_DOOR.get(), new Item.Properties())));
public static final RegistryObject<Block> CLEAR_GLASS_BLOCK = BLOCKS.register("clear_glass_block", () -> new Block(BlockBehaviour.Properties.copy(Blocks.GLASS).strength(1f).destroyTime(6).noOcclusion().isViewBlocking(ModBlocks::never)));
public static final RegistryObject<Item> CLEAR_GLASS_BLOCK_I = ITEMS.register("clear_glass_block", () -> new BlockItem(CLEAR_GLASS_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<Item> CLEAR_GLASS_BLOCK_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("clear_glass_block", () -> new BlockItem(CLEAR_GLASS_BLOCK.get(), new Item.Properties())));
public static final RegistryObject<Block> ITEM_SCRUBBER = BLOCKS.register("item_scrubber", ()->new ItemScrubberBlock(BlockBehaviour.Properties.copy(ModBlocks.AURORA_BLOCK.get()).noOcclusion().isViewBlocking(ModBlocks::never)));
public static final RegistryObject<Item> ITEM_SCRUBBER_I = ITEMS.register("item_scrubber", ()->new BlockItem(ITEM_SCRUBBER.get(), new Item.Properties()));
public static final RegistryObject<Item> ITEM_SCRUBBER_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("item_scrubber", ()->new BlockItem(ITEM_SCRUBBER.get(), new Item.Properties())));
public static final RegistryObject<Block> MAGICAL_SCRUBBER = BLOCKS.register("magical_scrubber", ()->new MagicalScrubberBlock(BlockBehaviour.Properties.copy(ModBlocks.AURORA_BLOCK.get()).noOcclusion().isViewBlocking(ModBlocks::never)));
public static final RegistryObject<Item> MAGICAL_SCRUBBER_I = ITEMS.register("magical_scrubber", ()->new BlockItem(MAGICAL_SCRUBBER.get(), new Item.Properties()));
public static final RegistryObject<Item> MAGICAL_SCRUBBER_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("magical_scrubber", ()->new BlockItem(MAGICAL_SCRUBBER.get(), new Item.Properties())));
public static final RegistryObject<Block> STABLE_SINGULARITY = BLOCKS.register("stable_singularity", ()->new Block(BlockBehaviour.Properties.copy(ModBlocks.AURORA_BLOCK.get()).noOcclusion().isViewBlocking(ModBlocks::never)));
public static final RegistryObject<Item> STABLE_SINGULARITY_I = ITEMS.register("stable_singularity", ()->new BlockItem(STABLE_SINGULARITY.get(), new Item.Properties()));
public static final RegistryObject<Item> STABLE_SINGULARITY_I = CreativeModeTabs.addToOTEModTab(ITEMS.register("stable_singularity", ()->new BlockItem(STABLE_SINGULARITY.get(), new Item.Properties())));

View file

@ -4,22 +4,28 @@ import dev.zontreck.otemod.OTEMod;
import dev.zontreck.otemod.integrations.KeyBindings;
import dev.zontreck.otemod.networking.ModMessages;
import dev.zontreck.otemod.networking.packets.OpenVaultC2SPacket;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import java.time.Instant;
public class ClientEvents {
@Mod.EventBusSubscriber(modid = OTEMod.MOD_ID, value = Dist.CLIENT)
public static class ForgeEvents
{
// Timeout!
static long lastPress;
@SubscribeEvent
public static void onKeyInput(InputEvent.Key event)
{
//OTEMod.LOGGER.info("KEY PRESS: "+event.getKey());
if(KeyBindings.OPEN_VAULT.matches(event.getKey(), event.getScanCode()))
if(KeyBindings.OPEN_VAULT.matches(event.getKey(), event.getScanCode()) && Minecraft.getInstance().screen == null && lastPress+10 < Instant.now().getEpochSecond())
{
lastPress = Instant.now().getEpochSecond();
ModMessages.sendToServer(new OpenVaultC2SPacket(0, false, 0));
}
}

View file

@ -0,0 +1,39 @@
package dev.zontreck.otemod.implementation;
import dev.zontreck.otemod.OTEMod;
import dev.zontreck.otemod.items.ModItems;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.ItemLike;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
@Mod.EventBusSubscriber(modid = OTEMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class CreativeModeTabs
{
public static final DeferredRegister<CreativeModeTab> REGISTER = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, OTEMod.MOD_ID);
public static final List<Supplier<? extends ItemLike>> OTEMOD_TAB_ITEMS = new ArrayList<>();
public static final RegistryObject<CreativeModeTab> OTE_TAB = REGISTER.register("otemod", () -> CreativeModeTab.builder()
.title(Component.translatable("itemGroup.tabs.otemod"))
.icon(ModItems.IHAN_CRYSTAL.get()::getDefaultInstance)
.displayItems((display, output) -> OTEMOD_TAB_ITEMS.forEach(it->output.accept(it.get())))
.build()
);
public static <T extends Item> RegistryObject<T> addToOTEModTab(RegistryObject<T> itemLike)
{
OTEMOD_TAB_ITEMS.add(itemLike);
return itemLike;
}
}

View file

@ -2,6 +2,7 @@ package dev.zontreck.otemod.items;
import dev.zontreck.otemod.OTEMod;
import dev.zontreck.otemod.entities.ModEntityTypes;
import dev.zontreck.otemod.implementation.CreativeModeTabs;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
@ -15,47 +16,44 @@ 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> ETERNIUM_FRAGMENT = ITEMS.register("eternium_fragment", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_FRAGMENT = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_fragment", () -> new Item(new Item.Properties())));
public static final RegistryObject<Item> IHAN_CRYSTAL = ITEMS.register("ihan_crystal", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> IHAN_CRYSTAL = CreativeModeTabs.addToOTEModTab(ITEMS.register("ihan_crystal", () -> new Item(new Item.Properties())));
public static final RegistryObject<Item> AURORA_COMPOUND = ITEMS.register("aurora_compound", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> AURORA_COMPOUND = CreativeModeTabs.addToOTEModTab(ITEMS.register("aurora_compound", () -> new Item(new Item.Properties())));
public static final RegistryObject<Item> ETERNIUM_RAW_ORE = ITEMS.register("eternium_ore", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_RAW_ORE = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_ore", () -> new Item(new Item.Properties())));
public static final RegistryObject<Item> RAW_COBALT = ITEMS.register("raw_cobalt", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> COBALT_NUGGET = ITEMS.register("cobalt_nugget", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> COBALT_INGOT = ITEMS.register("cobalt_ingot", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_INGOT = ITEMS.register("eternium_ingot", ()-> new SimpleFoiledItem(new Item.Properties()));
public static final RegistryObject<Item> ETERNIUM_INGOT = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_ingot", ()-> new SimpleFoiledItem(new Item.Properties())));
public static final RegistryObject<Item> MELTED_NETHER_STAR = ITEMS.register("melted_nether_star", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> SINGULARITY = ITEMS.register("singularity", () -> new Item(new Item.Properties().stacksTo(1)));
public static final RegistryObject<Item> ETERNIUM_ROD = ITEMS.register("eternium_rod", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> SCRUBBER_FRAME_PIECE = ITEMS.register("scrubber_frame_piece", () -> new Item(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> SCRUBBER_FRAME = ITEMS.register("scrubber_frame", () -> new Item(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> MELTED_NETHER_STAR = CreativeModeTabs.addToOTEModTab(ITEMS.register("melted_nether_star", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> SINGULARITY = CreativeModeTabs.addToOTEModTab(ITEMS.register("singularity", () -> new Item(new Item.Properties().stacksTo(1))));
public static final RegistryObject<Item> ETERNIUM_ROD = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_rod", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> SCRUBBER_FRAME_PIECE = CreativeModeTabs.addToOTEModTab(ITEMS.register("scrubber_frame_piece", () -> new Item(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> SCRUBBER_FRAME = CreativeModeTabs.addToOTEModTab(ITEMS.register("scrubber_frame", () -> new Item(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULTSTEEL_INGOT = ITEMS.register("vault_steel_ingot", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_BL = ITEMS.register("vault_fragment_lower_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_LC = ITEMS.register("vault_fragment_lower", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_BR = ITEMS.register("vault_fragment_lower_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_L = ITEMS.register("vault_fragment_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_R = ITEMS.register("vault_fragment_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_UR = ITEMS.register("vault_fragment_upper_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_UL = ITEMS.register("vault_fragment_upper_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_U = ITEMS.register("vault_fragment_upper", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_FRAG_C = ITEMS.register("vault_fragment_center", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULTSTEEL_INGOT = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_steel_ingot", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_BL = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_lower_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_LC = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_lower", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_BR = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_lower_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_L = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_R = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_UR = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_upper_right", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_UL = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_upper_left", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_U = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_upper", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_FRAG_C = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault_fragment_center", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT = ITEMS.register("vault", () -> new VaultItem(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT = CreativeModeTabs.addToOTEModTab(ITEMS.register("vault", () -> new VaultItem(new Item.Properties().stacksTo(64))));
public static final RegistryObject<Item> VAULT_RAW_ORE = ITEMS.register("raw_vault_steel_ore", () -> new Item(new Item.Properties().stacksTo(64)));
public static final RegistryObject<Item> VAULT_RAW_ORE = CreativeModeTabs.addToOTEModTab(ITEMS.register("raw_vault_steel_ore", () -> new Item(new Item.Properties().stacksTo(64))));
//public static final RegistryObject<Item> POSSUM_SPAWN_EGG = ITEMS.register("possum_spawn_egg", () -> new ForgeSpawnEggItem(ModEntityTypes.POSSUM, 0x938686, 0xc68787, new Item.Properties()));
//public static final RegistryObject<Item> POSSUM_SPAWN_EGG = ITEMS.register("possum_spawn_egg", () -> new ForgeSpawnEggItem(ModEntityTypes.POSSUM, 0x938686, 0xc68787, new Item.Properties())));

View file

@ -2,6 +2,8 @@
"key.otemod.open_vault": "Opens Vault 0",
"key.category.otemod": "Only The Essentials",
"itemGroup.tabs.otemod": "OTEMod",
"item.otemod.eternium_ore": "Raw Eternium Ore",
"item.otemod.ihan_crystal": "Ihan Crystal",
@ -12,9 +14,6 @@
"item.otemod.eternium_fragment": "Fragmented Eternium",
"item.otemod.eternium_dust": "Eternium Dust",
"item.otemod.aurora_compound": "Aurora Compound",
"item.otemod.raw_cobalt": "Raw Cobalt",
"item.otemod.cobalt_nugget": "Cobalt Nugget",
"item.otemod.cobalt_ingot": "Cobalt Ingot",
"item.otemod.melted_nether_star": "Melted Nether Star",
"item.otemod.eternium_ingot": "Eternium Ingot",
"item.otemod.eternium_rod": "Eternium Rod",
@ -41,9 +40,6 @@
"block.otemod.aurora_block": "Aurora Block",
"block.otemod.aurora_door": "Aurora Door",
"block.otemod.clear_glass_block": "Clear Glass Block",
"block.otemod.cobalt_ore": "Cobalt Ore",
"block.otemod.raw_cobalt_ore": "Raw Cobalt Ore",
"block.otemod.cobalt_block": "Cobalt",
"block.otemod.item_scrubber": "Item Scrubber",
"block.otemod.magical_scrubber": "Magical Scrubber",
"block.otemod.stable_singularity": "Stable Singularity",

View file

@ -5,9 +5,6 @@
"otemod:aurora_block",
"otemod:aurora_door",
"otemod:cobalt_ore",
"otemod:raw_cobalt_ore",
"otemod:item_scrubber",
"otemod:magical_scrubber",

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,6 @@
"type": "otemod:resource_nether",
"generator": {
"type": "minecraft:noise",
"seed": 0,
"settings": "otemod:resource_nether",
"biome_source": {
"type": "minecraft:multi_noise",

View file

@ -1,26 +1,25 @@
{
"ultrawarm": false,
"natural": true,
"piglin_safe": true,
"respawn_anchor_works": false,
"bed_works": false,
"has_raids": false,
"has_skylight": false,
"has_ceiling": false,
"coordinate_scale": 32,
"ambient_light": 0,
"logical_height": 384,
"effects": "minecraft:the_end",
"infiniburn": "#minecraft:infiniburn_overworld",
"min_y": -64,
"height": 384,
"monster_spawn_light_level": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 3,
"max_inclusive": 4
}
},
"monster_spawn_block_light_limit": 0
}
"ultrawarm": false,
"natural": true,
"piglin_safe": false,
"respawn_anchor_works": false,
"bed_works": false,
"has_raids": true,
"has_skylight": false,
"has_ceiling": false,
"coordinate_scale": 1,
"ambient_light": 0,
"logical_height": 384,
"effects": "minecraft:the_end",
"infiniburn": "#minecraft:infiniburn_overworld",
"min_y": -64,
"height": 384,
"monster_spawn_light_level": {
"type": "minecraft:uniform",
"value": {
"min_inclusive": 0,
"max_inclusive": 7
}
},
"monster_spawn_block_light_limit": 0
}

View file

@ -7,11 +7,14 @@
"has_raids": true,
"has_skylight": false,
"has_ceiling": false,
"coordinate_scale": 16,
"coordinate_scale": 1,
"ambient_light": 1,
"fixed_time": 1,
"logical_height": 384,
"effects": "minecraft:the_end",
"infiniburn": "#minecraft:infiniburn_overworld",
"min_y": -64,
"height": 384
"height": 384,
"monster_spawn_light_level": 0,
"monster_spawn_block_light_limit": 0
}

View file

@ -14,5 +14,7 @@
"effects": "minecraft:the_end",
"infiniburn": "#minecraft:infiniburn_nether",
"min_y": 0,
"height": 256
"height": 256,
"monster_spawn_light_level": 0,
"monster_spawn_block_light_limit": 0
}

View file

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

View file

@ -1,50 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"bonus_rolls": 0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"name": "otemod:cobalt_ore",
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
},
{
"type": "minecraft:item",
"name": "otemod:raw_cobalt",
"functions": [
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
},
{
"function": "minecraft:explosion_decay"
}
]
}
]
}
]
}
]
}

View file

@ -1,21 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"bonus_rolls": 0,
"entries": [
{
"type": "minecraft:item",
"name": "otemod:raw_cobalt_ore"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["###", "###", "###"],
"key": {
"#": {
"tag": "forge:ingots/cobalt"
}
},
"result": {
"item": "otemod:cobalt_block"
}
}

View file

@ -1,14 +0,0 @@
{
"type": "minecraft:blasting",
"ingredient": [
{
"item": "otemod:raw_cobalt"
},
{
"item": "otemod:cobalt_ore"
}
],
"result": "otemod:cobalt_ingot",
"experience": 1.5,
"cookingtime": 200
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "otemod:cobalt_block"
}
],
"result": {
"item": "otemod:cobalt_ingot",
"count": 9
}
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["###", "###", "###"],
"key": {
"#": {
"tag": "forge:nuggets/cobalt"
}
},
"result": {
"item": "otemod:cobalt_ingot"
}
}

View file

@ -1,14 +0,0 @@
{
"type": "minecraft:smelting",
"ingredient": [
{
"item": "otemod:raw_cobalt"
},
{
"item": "otemod:cobalt_ore"
}
],
"result": "otemod:cobalt_ingot",
"experience": 1.5,
"cookingtime": 200
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "otemod:cobalt_ingot"
}
],
"result": {
"item": "otemod:cobalt_nugget",
"count": 9
}
}

View file

@ -1,19 +0,0 @@
{
"type": "minecraft:ore",
"config": {
"size": 6,
"discard_chance_on_air_exposure": 0,
"targets": [
{
"target": {
"predicate_type": "minecraft:block_match",
"block": "minecraft:netherrack"
},
"state": {
"Name": "otemod:cobalt_ore"
}
}
]
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:ore",
"config": {
"size": 4,
"discard_chance_on_air_exposure": 0,
"targets": [
{
"target": {
"predicate_type": "minecraft:block_match",
"block": "minecraft:netherrack"
},
"state": {
"Name": "otemod:cobalt_ore"
}
}
]
}
}

View file

@ -1,5 +1,5 @@
{
"sea_level": 16,
"sea_level": 32,
"disable_mob_generation": true,
"aquifers_enabled": true,
"ore_veins_enabled": true,
@ -17,28 +17,7 @@
"min_y": 0,
"height": 128,
"size_horizontal": 1,
"size_vertical": 2,
"sampling": {
"xz_scale": 1,
"y_scale": 3,
"xz_factor": 80,
"y_factor": 60
},
"bottom_slide": {
"target": 2.5,
"size": 4,
"offset": -1
},
"top_slide": {
"target": 0.9375,
"size": 3,
"offset": 0
},
"terrain_shaper": {
"offset": 0,
"factor": 0,
"jaggedness": 0
}
"size_vertical": 2
},
"noise_router": {
"barrier": 0,
@ -63,25 +42,11 @@
"shift_y": 0,
"shift_z": "minecraft:shift_z"
},
"continents": "minecraft:overworld/continents",
"erosion": "minecraft:overworld/erosion",
"depth": "minecraft:overworld/depth",
"ridges": "minecraft:overworld/ridges",
"initial_density_without_jaggedness": {
"type": "minecraft:mul",
"argument1": 4,
"argument2": {
"type": "minecraft:quarter_negative",
"argument": {
"type": "minecraft:mul",
"argument1": "minecraft:overworld/depth",
"argument2": {
"type": "minecraft:cache_2d",
"argument": "minecraft:overworld/factor"
}
}
}
},
"continents": 0,
"erosion": 0,
"depth": 0,
"ridges": 0,
"initial_density_without_jaggedness": 0,
"final_density": {
"type": "minecraft:squeeze",
"argument": {
@ -92,8 +57,41 @@
"argument": {
"type": "minecraft:blend_density",
"argument": {
"type": "minecraft:slide",
"argument": "minecraft:overworld/sloped_cheese"
"type": "minecraft:add",
"argument1": 2.5,
"argument2": {
"type": "minecraft:mul",
"argument1": {
"type": "minecraft:y_clamped_gradient",
"from_y": -8,
"to_y": 24,
"from_value": 0,
"to_value": 1
},
"argument2": {
"type": "minecraft:add",
"argument1": -2.5,
"argument2": {
"type": "minecraft:add",
"argument1": 0.9375,
"argument2": {
"type": "minecraft:mul",
"argument1": {
"type": "minecraft:y_clamped_gradient",
"from_y": 104,
"to_y": 128,
"from_value": 1,
"to_value": 0
},
"argument2": {
"type": "minecraft:add",
"argument1": -0.9375,
"argument2": "minecraft:nether/base_3d_noise"
}
}
}
}
}
}
}
}
@ -103,6 +101,7 @@
"vein_ridged": 0,
"vein_gap": 0
},
"spawn_target": [],
"surface_rule": {
"type": "minecraft:sequence",
"sequence": [

View file

@ -1,28 +0,0 @@
{
"feature": "otemod:large_cobalt_ore",
"placement": [
{
"type": "minecraft:count",
"count": 3
},
{
"type": "minecraft:in_square"
},
{
"type": "minecraft:height_range",
"height": {
"type": "minecraft:trapezoid",
"min_inclusive": {
"absolute": 8
},
"max_inclusive": {
"absolute": 32
}
}
},
{
"type": "minecraft:biome"
}
]
}

View file

@ -1,16 +0,0 @@
{
"feature": "otemod:small_cobalt_ore",
"placement": [
{
"type": "minecraft:count",
"count": 5
},
{
"type": "minecraft:in_square"
},
{
"type": "minecraft:biome"
}
]
}