add some garbage
This commit is contained in:
		@ -1,243 +0,0 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.registry.BuiltinRegistries;
 | 
			
		||||
import net.minecraft.util.registry.Registry;
 | 
			
		||||
import net.minecraft.util.registry.RegistryKey;
 | 
			
		||||
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
 | 
			
		||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
 | 
			
		||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder;
 | 
			
		||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
 | 
			
		||||
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
 | 
			
		||||
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
 | 
			
		||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
 | 
			
		||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.Identifier;
 | 
			
		||||
import net.minecraft.item.ItemGroup;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.sound.BlockSoundGroup;
 | 
			
		||||
import net.minecraft.block.Blocks;
 | 
			
		||||
import net.minecraft.util.Rarity;
 | 
			
		||||
import net.minecraft.block.Block;
 | 
			
		||||
import net.minecraft.block.Material;
 | 
			
		||||
import net.minecraft.block.MaterialColor;
 | 
			
		||||
import net.minecraft.block.OreBlock;
 | 
			
		||||
import net.minecraft.client.render.RenderLayer;
 | 
			
		||||
import net.minecraft.item.AliasedBlockItem;
 | 
			
		||||
import net.minecraft.item.BlockItem;
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.world.gen.GenerationStep;
 | 
			
		||||
import net.minecraft.world.gen.decorator.Decorator;
 | 
			
		||||
import net.minecraft.world.gen.decorator.RangeDecoratorConfig;
 | 
			
		||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
 | 
			
		||||
import net.minecraft.world.gen.feature.Feature;
 | 
			
		||||
import net.minecraft.world.gen.feature.OreFeatureConfig;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.blocks.*;
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.SeedItem;
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.*;
 | 
			
		||||
 | 
			
		||||
public class RegisterManager {
 | 
			
		||||
    public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(
 | 
			
		||||
                                                new Identifier("teyvatcraft", "general"),
 | 
			
		||||
                                                () -> new ItemStack(Blocks.COBBLESTONE));
 | 
			
		||||
    
 | 
			
		||||
    // ==================== gnosis
 | 
			
		||||
	public static final GnosisDendro GNOSIS_DENDRO = new GnosisDendro(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisHydro GNOSIS_HYDRO = new GnosisHydro(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisPyro GNOSIS_PYRO = new GnosisPyro(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisGeo GNOSIS_GEO = new GnosisGeo(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisElectro GNOSIS_ELECTRO = new GnosisElectro(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisAnemo GNOSIS_ANEMO = new GnosisAnemo(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
    public static final GnosisCryo GNOSIS_CRYO = new GnosisCryo(
 | 
			
		||||
        new FabricItemSettings()
 | 
			
		||||
        .group(ITEM_GROUP)
 | 
			
		||||
        .maxCount(1)
 | 
			
		||||
        .rarity(Rarity.EPIC)
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    // ==================== ore
 | 
			
		||||
    public static final Block MAGICAL_CRYSTAL_CHUNK_ORE =  new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 4).requiresTool().strength(4.0F, 4.0F));
 | 
			
		||||
    public static final Block CRYSTAL_CHUNK_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 3).requiresTool().strength(4.0F, 4.0F));
 | 
			
		||||
    public static final Block WHITE_IRON_CHUNK_ORE  = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 2).requiresTool().strength(3.0F, 3.0F));
 | 
			
		||||
    public static final Block IRON_CHUNK_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 1).requiresTool().strength(3.0F, 3.0F));
 | 
			
		||||
    public static final Block STARSILVER_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 1).requiresTool().strength(2.0F, 2.0F));
 | 
			
		||||
 | 
			
		||||
    public static final Item MAGICAL_CRYSTAL_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item CRYSTAL_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item WHITE_IRON_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item IRON_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item STARSILVER = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    public static final Item MYSTIC_ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item FINE_ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    // ==================== crops
 | 
			
		||||
    public static final Block RICE_block = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP).nonOpaque());
 | 
			
		||||
    public static final Block TOMATO_block = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block ONION_block = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block CABBAGE_block = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block RADDISH_block = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
 
 | 
			
		||||
    public static final Item RICE_item = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item TOMATO_item = new SeedItem(TOMATO_block, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item ONION_item = new SeedItem(ONION_block, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item CABBAGE_item = new SeedItem(CABBAGE_block, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item RADDISH_item = new SeedItem(RADDISH_block, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item RICE_SEED_item = new SeedItem(RICE_block, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    // ==================== ore gen
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_MAGICAL_CRYSTAL_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        MAGICAL_CRYSTAL_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        1)) // vein size
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 12)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(5); // number of veins per chunk
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_CRYSTAL_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        CRYSTAL_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 32)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(12);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_WHITE_IRON_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        WHITE_IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_IRON_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        8))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_STARSILVER_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static void RegisterOreGeneration(String mIdentifier, ConfiguredFeature<?, ?> genStasticas) {
 | 
			
		||||
        RegistryKey<ConfiguredFeature<?, ?>> regKey = RegistryKey.of(Registry.CONFIGURED_FEATURE_WORLDGEN,
 | 
			
		||||
            new Identifier("teyvatcraft", mIdentifier));
 | 
			
		||||
        Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, regKey.getValue(), genStasticas);
 | 
			
		||||
        BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Feature.UNDERGROUND_ORES, regKey);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_dendro"), GNOSIS_DENDRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_hydro"), GNOSIS_HYDRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_pyro"), GNOSIS_PYRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_geo"), GNOSIS_GEO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_electro"), GNOSIS_ELECTRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_anemo"), GNOSIS_ANEMO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_cryo"), GNOSIS_CRYO);
 | 
			
		||||
 | 
			
		||||
        // ore
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "magical_crystal_chunk"), MAGICAL_CRYSTAL_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "crystal_chunk"), CRYSTAL_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "white_iron_chunk"), WHITE_IRON_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "iron_chunk"), IRON_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "starsilver"), STARSILVER);
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "mystic_enhancement_ore"), MYSTIC_ENHANCEMENT_ORE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "fine_enhancement_ore"), FINE_ENHANCEMENT_ORE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "enhancement_ore"), ENHANCEMENT_ORE);
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "magical_crystal_chunk_ore"), MAGICAL_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "crystal_chunk_ore"), CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "white_iron_chunk_ore"), WHITE_IRON_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "iron_chunk_ore"), IRON_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "starsilver_ore"), STARSILVER_ORE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "magical_crystal_chunk_ore"), 
 | 
			
		||||
            new BlockItem(MAGICAL_CRYSTAL_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "crystal_chunk_ore"), 
 | 
			
		||||
            new BlockItem(CRYSTAL_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "white_iron_chunk_ore"), 
 | 
			
		||||
            new BlockItem(WHITE_IRON_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "iron_chunk_ore"), 
 | 
			
		||||
            new BlockItem(IRON_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "starsilver_ore"), 
 | 
			
		||||
            new BlockItem(STARSILVER_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
 | 
			
		||||
        // crops
 | 
			
		||||
        ((TeyvatCropBlock)RICE_block).setSeedsItem(RICE_SEED_item);
 | 
			
		||||
        ((TeyvatCropBlock)TOMATO_block).setSeedsItem(TOMATO_item);
 | 
			
		||||
        ((TeyvatCropBlock)ONION_block).setSeedsItem(ONION_item);
 | 
			
		||||
        ((TeyvatCropBlock)CABBAGE_block).setSeedsItem(CABBAGE_item);
 | 
			
		||||
        ((TeyvatCropBlock)RADDISH_block).setSeedsItem(RADDISH_item);
 | 
			
		||||
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(RICE_block, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(TOMATO_block, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(ONION_block, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(CABBAGE_block, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(RADDISH_block, RenderLayer.getCutoutMipped());
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "rice"), RICE_item);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "tomato"), TOMATO_item);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "onion"), ONION_item);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "cabbage"), CABBAGE_item);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "raddish"), RADDISH_item);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "rice_seed"), RICE_SEED_item);
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "rice"), RICE_block);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "tomato"), TOMATO_block);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "onion"), ONION_block);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "cabbage"), CABBAGE_block);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "raddish"), RADDISH_block);
 | 
			
		||||
 | 
			
		||||
        // ore gen
 | 
			
		||||
        RegisterOreGeneration("oregen_magical_crystal_ore", OREGEN_MAGICAL_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_crystal_ore", OREGEN_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_white_iron_ore", OREGEN_WHITE_IRON_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_iron_ore", OREGEN_IRON_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_starsilver_ore", OREGEN_STARSILVER_ORE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +1,19 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft;
 | 
			
		||||
 | 
			
		||||
import net.fabricmc.api.ModInitializer;
 | 
			
		||||
import net.yyc12345.teyvatcraft.RegisterManager;
 | 
			
		||||
import net.yyc12345.teyvatcraft.init.BlocksManager;
 | 
			
		||||
import net.yyc12345.teyvatcraft.init.DungeonManager;
 | 
			
		||||
import net.yyc12345.teyvatcraft.init.ItemsManager;
 | 
			
		||||
import net.yyc12345.teyvatcraft.init.TerrainsManager;
 | 
			
		||||
import net.yyc12345.teyvatcraft.init.VillagerManager;
 | 
			
		||||
 | 
			
		||||
public class TeyvatCraft implements ModInitializer {
 | 
			
		||||
	@Override
 | 
			
		||||
	public void onInitialize() {
 | 
			
		||||
		RegisterManager.RegisterAll();
 | 
			
		||||
		BlocksManager.RegisterAll();
 | 
			
		||||
		ItemsManager.RegisterAll();
 | 
			
		||||
		TerrainsManager.RegisterAll();
 | 
			
		||||
		VillagerManager.RegisterAll();
 | 
			
		||||
		DungeonManager.RegisterAll();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,49 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.blocks;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.block.BlockState;
 | 
			
		||||
import net.minecraft.block.SweetBerryBushBlock;
 | 
			
		||||
import net.minecraft.entity.Entity;
 | 
			
		||||
import net.minecraft.entity.player.PlayerEntity;
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.ItemConvertible;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.item.Items;
 | 
			
		||||
import net.minecraft.sound.SoundCategory;
 | 
			
		||||
import net.minecraft.sound.SoundEvents;
 | 
			
		||||
import net.minecraft.util.ActionResult;
 | 
			
		||||
import net.minecraft.util.Hand;
 | 
			
		||||
import net.minecraft.util.hit.BlockHitResult;
 | 
			
		||||
import net.minecraft.util.math.BlockPos;
 | 
			
		||||
import net.minecraft.world.World;
 | 
			
		||||
 | 
			
		||||
public class TeyvatHarvestablePlantBlock extends SweetBerryBushBlock {
 | 
			
		||||
 | 
			
		||||
    private Item droppedItem;
 | 
			
		||||
 | 
			
		||||
    public TeyvatHarvestablePlantBlock(Settings settings, Item droppedItem) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
        this.droppedItem = droppedItem;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) {
 | 
			
		||||
        // revoke sweet berry bush default operation
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
 | 
			
		||||
        int i = ((Integer)state.get(AGE)).intValue();
 | 
			
		||||
        boolean bl = (i == 3);
 | 
			
		||||
        if (!bl && player.getStackInHand(hand).getItem() == Items.BONE_MEAL)
 | 
			
		||||
            return ActionResult.PASS;
 | 
			
		||||
        if (i > 1) {
 | 
			
		||||
            int j = 1 + world.random.nextInt(2);
 | 
			
		||||
            dropStack(world, pos, new ItemStack((ItemConvertible)droppedItem, j + (bl ? 1 : 0)));
 | 
			
		||||
            world.playSound(null, pos, SoundEvents.ITEM_SWEET_BERRIES_PICK_FROM_BUSH, SoundCategory.BLOCKS, 1.0F, 0.8F + world.random.nextFloat() * 0.4F);
 | 
			
		||||
            world.setBlockState(pos, (BlockState)state.with(AGE, Integer.valueOf(1)), 2);
 | 
			
		||||
            return ActionResult.success(world.isClient);
 | 
			
		||||
        } 
 | 
			
		||||
        return super.onUse(state, world, pos, player, hand, hit);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,60 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.init;
 | 
			
		||||
 | 
			
		||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
 | 
			
		||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
 | 
			
		||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder;
 | 
			
		||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
 | 
			
		||||
import net.minecraft.block.Block;
 | 
			
		||||
import net.minecraft.block.Material;
 | 
			
		||||
import net.minecraft.block.MaterialColor;
 | 
			
		||||
import net.minecraft.block.OreBlock;
 | 
			
		||||
import net.minecraft.client.render.RenderLayer;
 | 
			
		||||
import net.minecraft.sound.BlockSoundGroup;
 | 
			
		||||
import net.minecraft.util.Identifier;
 | 
			
		||||
import net.minecraft.util.registry.Registry;
 | 
			
		||||
import net.yyc12345.teyvatcraft.blocks.TeyvatCropBlock;
 | 
			
		||||
 | 
			
		||||
public class BlocksManager {
 | 
			
		||||
 | 
			
		||||
    // ==================== ore
 | 
			
		||||
    public static final Block MAGICAL_CRYSTAL_CHUNK_ORE =  new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 4).requiresTool().strength(4.0F, 4.0F));
 | 
			
		||||
    public static final Block CRYSTAL_CHUNK_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 3).requiresTool().strength(4.0F, 4.0F));
 | 
			
		||||
    public static final Block WHITE_IRON_CHUNK_ORE  = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 2).requiresTool().strength(3.0F, 3.0F));
 | 
			
		||||
    public static final Block IRON_CHUNK_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 1).requiresTool().strength(3.0F, 3.0F));
 | 
			
		||||
    public static final Block STARSILVER_ORE = new OreBlock(FabricBlockSettings.of(new FabricMaterialBuilder(MaterialColor.STONE).build()).breakByTool(FabricToolTags.PICKAXES, 1).requiresTool().strength(2.0F, 2.0F));
 | 
			
		||||
 | 
			
		||||
    // ==================== crops
 | 
			
		||||
    public static final Block RICE = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP).nonOpaque());
 | 
			
		||||
    public static final Block TOMATO = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block ONION = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block CABBAGE = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    public static final Block RADDISH = new TeyvatCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP));
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "magical_crystal_chunk_ore"), MAGICAL_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "crystal_chunk_ore"), CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "white_iron_chunk_ore"), WHITE_IRON_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "iron_chunk_ore"), IRON_CHUNK_ORE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "starsilver_ore"), STARSILVER_ORE);
 | 
			
		||||
 | 
			
		||||
        // crops
 | 
			
		||||
        ((TeyvatCropBlock)RICE).setSeedsItem(ItemsManager.RICE_SEED);
 | 
			
		||||
        ((TeyvatCropBlock)TOMATO).setSeedsItem(ItemsManager.TOMATO);
 | 
			
		||||
        ((TeyvatCropBlock)ONION).setSeedsItem(ItemsManager.ONION);
 | 
			
		||||
        ((TeyvatCropBlock)CABBAGE).setSeedsItem(ItemsManager.CABBAGE);
 | 
			
		||||
        ((TeyvatCropBlock)RADDISH).setSeedsItem(ItemsManager.RADDISH);
 | 
			
		||||
        
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(RICE, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(TOMATO, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(ONION, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(CABBAGE, RenderLayer.getCutoutMipped());
 | 
			
		||||
        BlockRenderLayerMap.INSTANCE.putBlock(RADDISH, RenderLayer.getCutoutMipped());
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "rice"), RICE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "tomato"), TOMATO);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "onion"), ONION);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "cabbage"), CABBAGE);
 | 
			
		||||
        Registry.register(Registry.BLOCK, new Identifier("teyvatcraft", "raddish"), RADDISH);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.init;
 | 
			
		||||
 | 
			
		||||
public class DungeonManager {
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										102
									
								
								src/main/java/net/yyc12345/teyvatcraft/init/ItemsManager.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								src/main/java/net/yyc12345/teyvatcraft/init/ItemsManager.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,102 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.init;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.registry.Registry;
 | 
			
		||||
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
 | 
			
		||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.Identifier;
 | 
			
		||||
import net.minecraft.item.ItemGroup;
 | 
			
		||||
import net.minecraft.item.ItemStack;
 | 
			
		||||
import net.minecraft.item.Items;
 | 
			
		||||
import net.minecraft.util.Rarity;
 | 
			
		||||
import net.minecraft.item.BlockItem;
 | 
			
		||||
import net.minecraft.item.FoodComponent;
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.ItemConvertible;
 | 
			
		||||
import static net.minecraft.block.ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE;
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.SeedItem;
 | 
			
		||||
 | 
			
		||||
public class ItemsManager {
 | 
			
		||||
    public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(
 | 
			
		||||
                                                new Identifier("teyvatcraft", "general"),
 | 
			
		||||
                                                () -> new ItemStack(Items.NETHER_STAR));
 | 
			
		||||
 | 
			
		||||
    // ==================== gnosis
 | 
			
		||||
    public static final Item GNOSIS_DENDRO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_HYDRO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_PYRO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_GEO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_ELECTRO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_ANEMO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
    public static final Item GNOSIS_CRYO = new Item(new FabricItemSettings().group(ITEM_GROUP).maxCount(1).rarity(Rarity.EPIC).fireproof());
 | 
			
		||||
 | 
			
		||||
    // ==================== ore
 | 
			
		||||
    public static final Item MAGICAL_CRYSTAL_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item CRYSTAL_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item WHITE_IRON_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item IRON_CHUNK = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item STARSILVER = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    // ==================== weapon enhancement
 | 
			
		||||
    public static final Item MYSTIC_ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item FINE_ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
    public static final Item ENHANCEMENT_ORE = new Item(new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    // ==================== crops
 | 
			
		||||
    public static final Item RICE = new Item(new FabricItemSettings().group(ITEM_GROUP).food((new FoodComponent.Builder()).hunger(1).saturationModifier(0.3F).build()));
 | 
			
		||||
    public static final Item TOMATO = new SeedItem(BlocksManager.TOMATO, new FabricItemSettings().group(ITEM_GROUP).food((new FoodComponent.Builder()).hunger(1).saturationModifier(0.3F).build()));
 | 
			
		||||
    public static final Item ONION = new SeedItem(BlocksManager.ONION, new FabricItemSettings().group(ITEM_GROUP).food((new FoodComponent.Builder()).hunger(1).saturationModifier(0.3F).build()));
 | 
			
		||||
    public static final Item CABBAGE = new SeedItem(BlocksManager.CABBAGE, new FabricItemSettings().group(ITEM_GROUP).food((new FoodComponent.Builder()).hunger(1).saturationModifier(0.3F).build()));
 | 
			
		||||
    public static final Item RADDISH = new SeedItem(BlocksManager.RADDISH, new FabricItemSettings().group(ITEM_GROUP).food((new FoodComponent.Builder()).hunger(1).saturationModifier(0.3F).build()));
 | 
			
		||||
    public static final Item RICE_SEED = new SeedItem(BlocksManager.RICE, new FabricItemSettings().group(ITEM_GROUP));
 | 
			
		||||
 | 
			
		||||
    public static void registerCompostableItem(float levelIncreaseChance, ItemConvertible item) {
 | 
			
		||||
        ITEM_TO_LEVEL_INCREASE_CHANCE.put(item.asItem(), levelIncreaseChance);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_dendro"), GNOSIS_DENDRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_hydro"), GNOSIS_HYDRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_pyro"), GNOSIS_PYRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_geo"), GNOSIS_GEO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_electro"), GNOSIS_ELECTRO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_anemo"), GNOSIS_ANEMO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "gnosis_cryo"), GNOSIS_CRYO);
 | 
			
		||||
 | 
			
		||||
        // ore
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "magical_crystal_chunk"), MAGICAL_CRYSTAL_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "crystal_chunk"), CRYSTAL_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "white_iron_chunk"), WHITE_IRON_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "iron_chunk"), IRON_CHUNK);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "starsilver"), STARSILVER);
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "mystic_enhancement_ore"), MYSTIC_ENHANCEMENT_ORE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "fine_enhancement_ore"), FINE_ENHANCEMENT_ORE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "enhancement_ore"), ENHANCEMENT_ORE);
 | 
			
		||||
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "magical_crystal_chunk_ore"), 
 | 
			
		||||
            new BlockItem(BlocksManager.MAGICAL_CRYSTAL_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "crystal_chunk_ore"), 
 | 
			
		||||
            new BlockItem(BlocksManager.CRYSTAL_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "white_iron_chunk_ore"), 
 | 
			
		||||
            new BlockItem(BlocksManager.WHITE_IRON_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "iron_chunk_ore"), 
 | 
			
		||||
            new BlockItem(BlocksManager.IRON_CHUNK_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "starsilver_ore"), 
 | 
			
		||||
            new BlockItem(BlocksManager.STARSILVER_ORE, new Item.Settings().group(ITEM_GROUP)));
 | 
			
		||||
 | 
			
		||||
        // crops
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "rice"), RICE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "tomato"), TOMATO);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "onion"), ONION);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "cabbage"), CABBAGE);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "raddish"), RADDISH);
 | 
			
		||||
        Registry.register(Registry.ITEM, new Identifier("teyvatcraft", "rice_seed"), RICE_SEED);
 | 
			
		||||
        registerCompostableItem(0.65f, RICE);
 | 
			
		||||
        registerCompostableItem(0.65f, TOMATO);
 | 
			
		||||
        registerCompostableItem(0.65f, ONION);
 | 
			
		||||
        registerCompostableItem(0.65f, CABBAGE);
 | 
			
		||||
        registerCompostableItem(0.65f, RADDISH);
 | 
			
		||||
        registerCompostableItem(0.3f, RICE_SEED);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,80 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.init;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.registry.BuiltinRegistries;
 | 
			
		||||
import net.minecraft.util.registry.Registry;
 | 
			
		||||
import net.minecraft.util.registry.RegistryKey;
 | 
			
		||||
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
 | 
			
		||||
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.util.Identifier;
 | 
			
		||||
import net.minecraft.world.gen.GenerationStep;
 | 
			
		||||
import net.minecraft.world.gen.decorator.Decorator;
 | 
			
		||||
import net.minecraft.world.gen.decorator.RangeDecoratorConfig;
 | 
			
		||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
 | 
			
		||||
import net.minecraft.world.gen.feature.Feature;
 | 
			
		||||
import net.minecraft.world.gen.feature.OreFeatureConfig;
 | 
			
		||||
 | 
			
		||||
public class TerrainsManager {
 | 
			
		||||
 | 
			
		||||
    // ==================== ore gen
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_MAGICAL_CRYSTAL_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        BlocksManager.MAGICAL_CRYSTAL_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        1)) // vein size
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 12)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(5); // number of veins per chunk
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_CRYSTAL_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        BlocksManager.CRYSTAL_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 32)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(12);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_WHITE_IRON_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        BlocksManager.WHITE_IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_IRON_CHUNK_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        BlocksManager.IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        8))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static ConfiguredFeature<?, ?> OREGEN_STARSILVER_ORE = Feature.ORE
 | 
			
		||||
    .configure(new OreFeatureConfig(
 | 
			
		||||
        OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
 | 
			
		||||
        BlocksManager.IRON_CHUNK_ORE.getDefaultState(),
 | 
			
		||||
        4))
 | 
			
		||||
    .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(0, 0, 64)))
 | 
			
		||||
    .spreadHorizontally()
 | 
			
		||||
    .repeat(24);
 | 
			
		||||
 | 
			
		||||
    private static void RegisterOreGeneration(String mIdentifier, ConfiguredFeature<?, ?> genStasticas) {
 | 
			
		||||
        RegistryKey<ConfiguredFeature<?, ?>> regKey = RegistryKey.of(Registry.CONFIGURED_FEATURE_WORLDGEN,
 | 
			
		||||
            new Identifier("teyvatcraft", mIdentifier));
 | 
			
		||||
        Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, regKey.getValue(), genStasticas);
 | 
			
		||||
        BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Feature.UNDERGROUND_ORES, regKey);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        // ore gen
 | 
			
		||||
        RegisterOreGeneration("oregen_magical_crystal_ore", OREGEN_MAGICAL_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_crystal_ore", OREGEN_CRYSTAL_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_white_iron_ore", OREGEN_WHITE_IRON_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_iron_ore", OREGEN_IRON_CHUNK_ORE);
 | 
			
		||||
        RegisterOreGeneration("oregen_starsilver_ore", OREGEN_STARSILVER_ORE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,31 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.init;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.ImmutableMap;
 | 
			
		||||
import com.google.common.collect.ImmutableSet;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.yyc12345.teyvatcraft.mixin.VillagerAccess;
 | 
			
		||||
 | 
			
		||||
public class VillagerManager {
 | 
			
		||||
 | 
			
		||||
    public static void RegisterAll() {
 | 
			
		||||
        // register villager food
 | 
			
		||||
        ImmutableMap.Builder<Item, Integer> villagerFoodItems = new ImmutableMap.Builder<Item, Integer>().putAll(VillagerAccess.getItemFoodValues());
 | 
			
		||||
        villagerFoodItems.put(ItemsManager.RICE, ItemsManager.RICE.getFoodComponent().getHunger());
 | 
			
		||||
        villagerFoodItems.put(ItemsManager.TOMATO, ItemsManager.TOMATO.getFoodComponent().getHunger());
 | 
			
		||||
        villagerFoodItems.put(ItemsManager.ONION, ItemsManager.ONION.getFoodComponent().getHunger());
 | 
			
		||||
        villagerFoodItems.put(ItemsManager.CABBAGE, ItemsManager.CABBAGE.getFoodComponent().getHunger());
 | 
			
		||||
        villagerFoodItems.put(ItemsManager.RADDISH, ItemsManager.RADDISH.getFoodComponent().getHunger());
 | 
			
		||||
        VillagerAccess.setItemFoodValues(villagerFoodItems.build());
 | 
			
		||||
 | 
			
		||||
        // register villager gatherables
 | 
			
		||||
        ImmutableSet.Builder<Item> villagerGatherables= new ImmutableSet.Builder<Item>().addAll(VillagerAccess.getGatherableItems());
 | 
			
		||||
        villagerGatherables.add(ItemsManager.RICE);
 | 
			
		||||
        villagerGatherables.add(ItemsManager.TOMATO);
 | 
			
		||||
        villagerGatherables.add(ItemsManager.ONION);
 | 
			
		||||
        villagerGatherables.add(ItemsManager.CABBAGE);
 | 
			
		||||
        villagerGatherables.add(ItemsManager.RADDISH);
 | 
			
		||||
        VillagerAccess.setGatherableItems(villagerGatherables.build());
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisAnemo extends GnosisPrototype {
 | 
			
		||||
    public GnosisAnemo(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisCryo extends GnosisPrototype {
 | 
			
		||||
    public GnosisCryo(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisDendro extends GnosisPrototype {
 | 
			
		||||
    public GnosisDendro(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisElectro extends GnosisPrototype {
 | 
			
		||||
    public GnosisElectro(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisGeo extends GnosisPrototype {
 | 
			
		||||
    public GnosisGeo(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisHydro extends GnosisPrototype {
 | 
			
		||||
    public GnosisHydro(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisPrototype extends Item {
 | 
			
		||||
    public GnosisPrototype(Settings settings) {
 | 
			
		||||
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.gnosis;
 | 
			
		||||
 | 
			
		||||
import net.yyc12345.teyvatcraft.items.gnosis.GnosisPrototype;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class GnosisPyro extends GnosisPrototype {
 | 
			
		||||
    public GnosisPyro(Settings settings) {
 | 
			
		||||
        super(settings);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.items.vision;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import net.minecraft.item.Item.Settings;
 | 
			
		||||
 | 
			
		||||
public class VisionPrototype extends Item {
 | 
			
		||||
    public VisionPrototype(Settings settings) {
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 | 
			
		||||
public class TeyvatCraftMixin {
 | 
			
		||||
	@Inject(at = @At("HEAD"), method = "init()V")
 | 
			
		||||
	private void init(CallbackInfo info) {
 | 
			
		||||
		System.out.println("This line is printed by an example mod mixin!");
 | 
			
		||||
		//System.out.println("This line is printed by an example mod mixin!");
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,34 @@
 | 
			
		||||
package net.yyc12345.teyvatcraft.mixin;
 | 
			
		||||
 | 
			
		||||
import net.minecraft.entity.passive.VillagerEntity;
 | 
			
		||||
import net.minecraft.item.Item;
 | 
			
		||||
import org.spongepowered.asm.mixin.Mixin;
 | 
			
		||||
import org.spongepowered.asm.mixin.gen.Accessor;
 | 
			
		||||
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
 | 
			
		||||
@Mixin(VillagerEntity.class)
 | 
			
		||||
public interface VillagerAccess {
 | 
			
		||||
 | 
			
		||||
    @Accessor("GATHERABLE_ITEMS")
 | 
			
		||||
    static Set<Item> getGatherableItems() {
 | 
			
		||||
        throw new AssertionError();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Accessor("GATHERABLE_ITEMS")
 | 
			
		||||
    static void setGatherableItems(Set<Item> items) {
 | 
			
		||||
        throw new AssertionError();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Accessor("ITEM_FOOD_VALUES")
 | 
			
		||||
    static Map<Item, Integer> getItemFoodValues() {
 | 
			
		||||
        throw new AssertionError();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Accessor("ITEM_FOOD_VALUES")
 | 
			
		||||
    static void setItemFoodValues(Map<Item, Integer> food) {
 | 
			
		||||
        throw new AssertionError();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -6,7 +6,8 @@
 | 
			
		||||
  "mixins": [
 | 
			
		||||
  ],
 | 
			
		||||
  "client": [
 | 
			
		||||
    "TeyvatCraftMixin"
 | 
			
		||||
    "TeyvatCraftMixin",
 | 
			
		||||
    "VillagerAccess"
 | 
			
		||||
  ],
 | 
			
		||||
  "injectors": {
 | 
			
		||||
    "defaultRequire": 1
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user