Various fixes and additions #30
BIN
assets/tungsten_ore.afdesign
Normal file
BIN
assets/tungsten_ore.afdesign
Normal file
Binary file not shown.
@ -11,6 +11,8 @@ import net.banutama.utamacraft.recipe.ModRecipes;
|
|||||||
import net.banutama.utamacraft.screen.InsolatorScreen;
|
import net.banutama.utamacraft.screen.InsolatorScreen;
|
||||||
import net.banutama.utamacraft.screen.ModMenuTypes;
|
import net.banutama.utamacraft.screen.ModMenuTypes;
|
||||||
import net.banutama.utamacraft.sound.ModSounds;
|
import net.banutama.utamacraft.sound.ModSounds;
|
||||||
|
import net.banutama.utamacraft.world.feature.ModConfiguredFeatures;
|
||||||
|
import net.banutama.utamacraft.world.feature.ModPlacedFeatures;
|
||||||
import net.minecraft.client.RecipeBookCategories;
|
import net.minecraft.client.RecipeBookCategories;
|
||||||
import net.minecraft.client.gui.screens.MenuScreens;
|
import net.minecraft.client.gui.screens.MenuScreens;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
@ -46,6 +48,8 @@ public class Utamacraft {
|
|||||||
ModMenuTypes.register(bus);
|
ModMenuTypes.register(bus);
|
||||||
ModSounds.register(bus);
|
ModSounds.register(bus);
|
||||||
ModRecipes.register(bus);
|
ModRecipes.register(bus);
|
||||||
|
ModConfiguredFeatures.register(bus);
|
||||||
|
ModPlacedFeatures.register(bus);
|
||||||
|
|
||||||
bus.addListener(this::commonSetup);
|
bus.addListener(this::commonSetup);
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
|
@ -8,9 +8,11 @@ import net.banutama.utamacraft.block.custom.TintedEtherealGlassBlock;
|
|||||||
import net.banutama.utamacraft.block.custom.InsolatorBlock;
|
import net.banutama.utamacraft.block.custom.InsolatorBlock;
|
||||||
import net.banutama.utamacraft.item.ModCreativeModeTab;
|
import net.banutama.utamacraft.item.ModCreativeModeTab;
|
||||||
import net.banutama.utamacraft.item.ModItems;
|
import net.banutama.utamacraft.item.ModItems;
|
||||||
|
import net.minecraft.util.valueproviders.UniformInt;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.DropExperienceBlock;
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
import net.minecraft.world.level.material.Material;
|
import net.minecraft.world.level.material.Material;
|
||||||
import net.minecraftforge.eventbus.api.IEventBus;
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
@ -27,6 +29,18 @@ public class ModBlocks {
|
|||||||
registerBlock("ethereal_glass", EtherealGlassBlock::new);
|
registerBlock("ethereal_glass", EtherealGlassBlock::new);
|
||||||
public static final RegistryObject<Block> TINTED_ETHEREAL_GLASS =
|
public static final RegistryObject<Block> TINTED_ETHEREAL_GLASS =
|
||||||
registerBlock("tinted_ethereal_glass", TintedEtherealGlassBlock::new);
|
registerBlock("tinted_ethereal_glass", TintedEtherealGlassBlock::new);
|
||||||
|
public static final RegistryObject<Block> TUNGSTEN_ORE =
|
||||||
|
registerBlock("tungsten_ore",
|
||||||
|
() -> new DropExperienceBlock(BlockBehaviour.Properties.of(Material.STONE)
|
||||||
|
.strength(6.0f)
|
||||||
|
.requiresCorrectToolForDrops(),
|
||||||
|
UniformInt.of(3, 7)));
|
||||||
|
public static final RegistryObject<Block> DEEPSLATE_TUNGSTEN_ORE =
|
||||||
|
registerBlock("deepslate_tungsten_ore",
|
||||||
|
() -> new DropExperienceBlock(BlockBehaviour.Properties.of(Material.STONE)
|
||||||
|
.strength(6.0f)
|
||||||
|
.requiresCorrectToolForDrops(),
|
||||||
|
UniformInt.of(3, 7)));
|
||||||
public static final RegistryObject<Block> TUNGSTEN_BLOCK =
|
public static final RegistryObject<Block> TUNGSTEN_BLOCK =
|
||||||
registerBlock("tungsten_block",
|
registerBlock("tungsten_block",
|
||||||
() -> new Block(BlockBehaviour.Properties.of(Material.METAL)
|
() -> new Block(BlockBehaviour.Properties.of(Material.METAL)
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package net.banutama.utamacraft.world.feature;
|
||||||
|
|
||||||
|
import com.google.common.base.Supplier;
|
||||||
|
import com.google.common.base.Suppliers;
|
||||||
|
import net.banutama.utamacraft.Utamacraft;
|
||||||
|
import net.banutama.utamacraft.block.custom.ModBlocks;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
|
import net.minecraft.data.worldgen.features.OreFeatures;
|
||||||
|
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
|
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||||
|
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ModConfiguredFeatures {
|
||||||
|
public static final DeferredRegister<ConfiguredFeature<?, ?>> CONFIGURED_FEATURES =
|
||||||
|
DeferredRegister.create(Registry.CONFIGURED_FEATURE_REGISTRY, Utamacraft.MOD_ID);
|
||||||
|
|
||||||
|
public static final Supplier<List<OreConfiguration.TargetBlockState>> OVERWORLD_TUNGSTEN_ORES =
|
||||||
|
Suppliers.memoize(() -> {
|
||||||
|
return List.of(
|
||||||
|
OreConfiguration.target(OreFeatures.STONE_ORE_REPLACEABLES, ModBlocks.TUNGSTEN_ORE.get().defaultBlockState()),
|
||||||
|
OreConfiguration.target(OreFeatures.DEEPSLATE_ORE_REPLACEABLES, ModBlocks.DEEPSLATE_TUNGSTEN_ORE.get().defaultBlockState())
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
public static final RegistryObject<ConfiguredFeature<?, ?>> TUNGSTEN_ORE =
|
||||||
|
CONFIGURED_FEATURES.register("tungsten_ore", () -> {
|
||||||
|
return new ConfiguredFeature<>(Feature.ORE, new OreConfiguration(OVERWORLD_TUNGSTEN_ORES.get(), 7));
|
||||||
|
});
|
||||||
|
|
||||||
|
public static void register(IEventBus bus) {
|
||||||
|
CONFIGURED_FEATURES.register(bus);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package net.banutama.utamacraft.world.feature;
|
||||||
|
|
||||||
|
|
||||||
|
import net.banutama.utamacraft.Utamacraft;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
|
import net.minecraft.world.level.levelgen.VerticalAnchor;
|
||||||
|
import net.minecraft.world.level.levelgen.placement.*;
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ModPlacedFeatures {
|
||||||
|
public static final DeferredRegister<PlacedFeature> PLACED_FEATURES =
|
||||||
|
DeferredRegister.create(Registry.PLACED_FEATURE_REGISTRY, Utamacraft.MOD_ID);
|
||||||
|
|
||||||
|
public static final RegistryObject<PlacedFeature> TUNGSTEN_ORE_PLACED =
|
||||||
|
PLACED_FEATURES.register("tungsten_ore_placed", () -> new PlacedFeature(
|
||||||
|
ModConfiguredFeatures.TUNGSTEN_ORE.getHolder().get(),
|
||||||
|
commonOrePlacement(7,
|
||||||
|
HeightRangePlacement.triangle(
|
||||||
|
VerticalAnchor.aboveBottom(-80),
|
||||||
|
VerticalAnchor.aboveBottom(80)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
));
|
||||||
|
|
||||||
|
public static void register(IEventBus bus) {
|
||||||
|
PLACED_FEATURES.register(bus);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<PlacementModifier> commonOrePlacement(int veinsPerChunk, PlacementModifier modifier) {
|
||||||
|
return orePlacement(CountPlacement.of(veinsPerChunk), modifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<PlacementModifier> orePlacement(PlacementModifier a, PlacementModifier b) {
|
||||||
|
return List.of(a, InSquarePlacement.spread(), b, BiomeFilter.biome());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "utamacraft:block/deepslate_tungsten_ore" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "utamacraft:block/tungsten_ore" }
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"block.utamacraft.deepslate_tungsten_ore": "Deepslate Tungsten Ore",
|
||||||
"block.utamacraft.ethereal_glass": "Ethereal Glass",
|
"block.utamacraft.ethereal_glass": "Ethereal Glass",
|
||||||
"block.utamacraft.insolator": "Insolator",
|
"block.utamacraft.insolator": "Insolator",
|
||||||
"block.utamacraft.tinted_ethereal_glass": "Tinted Ethereal Glass",
|
"block.utamacraft.tinted_ethereal_glass": "Tinted Ethereal Glass",
|
||||||
"block.utamacraft.tungsten_block": "Tungsten Block",
|
"block.utamacraft.tungsten_block": "Tungsten Block",
|
||||||
|
"block.utamacraft.tungsten_ore": "Tungsten Ore",
|
||||||
"block_entity.utamacraft.insolator": "Insolator",
|
"block_entity.utamacraft.insolator": "Insolator",
|
||||||
"item.utamacraft.bulb": "Bulb",
|
"item.utamacraft.bulb": "Bulb",
|
||||||
"item.utamacraft.fiber_glass": "Fiberglass",
|
"item.utamacraft.fiber_glass": "Fiberglass",
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "utamacraft:block/deepslate_tungsten_ore"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "utamacraft:block/tungsten_ore"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "utamacraft:block/deepslate_tungsten_ore"
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "utamacraft:block/tungsten_ore"
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"utamacraft:tungsten_ore",
|
||||||
|
"utamacraft:deepslate_tungsten_ore",
|
||||||
|
"utamacraft:tungsten_block"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"utamacraft:deepslate_tungsten_ore"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "forge:add_features",
|
||||||
|
"biomes": "#minecraft:is_overworld",
|
||||||
|
"features": "utamacraft:tungsten_ore_placed",
|
||||||
|
"step": "underground_ores"
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"bonus_rolls": 0.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:alternatives",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:match_tool",
|
||||||
|
"predicate": {
|
||||||
|
"enchantments": [
|
||||||
|
{
|
||||||
|
"enchantment": "minecraft:silk_touch",
|
||||||
|
"levels": {
|
||||||
|
"min": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "utamacraft:deepslate_tungsten_ore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 2.0,
|
||||||
|
"max": 5.0
|
||||||
|
},
|
||||||
|
"add": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "minecraft:apply_bonus",
|
||||||
|
"enchantment": "minecraft:fortune",
|
||||||
|
"formula": "minecraft:ore_drops"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "minecraft:explosion_decay"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "utamacraft:raw_tungsten"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "utamacraft:tungsten_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"bonus_rolls": 0.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:alternatives",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"condition": "minecraft:match_tool",
|
||||||
|
"predicate": {
|
||||||
|
"enchantments": [
|
||||||
|
{
|
||||||
|
"enchantment": "minecraft:silk_touch",
|
||||||
|
"levels": {
|
||||||
|
"min": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "utamacraft:tungsten_ore"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 2.0,
|
||||||
|
"max": 5.0
|
||||||
|
},
|
||||||
|
"add": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "minecraft:apply_bonus",
|
||||||
|
"enchantment": "minecraft:fortune",
|
||||||
|
"formula": "minecraft:ore_drops"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"function": "minecraft:explosion_decay"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "utamacraft:raw_tungsten"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user