preparations for 26.3
This commit is contained in:
@@ -7,15 +7,14 @@ import org.apache.logging.log4j.Logger;
|
||||
|
||||
import de.jottyfan.minecraft.block.QuicklyBlocks;
|
||||
import de.jottyfan.minecraft.blockentity.QuicklyBlockEntity;
|
||||
import de.jottyfan.minecraft.composter.QuicklyComposter;
|
||||
import de.jottyfan.minecraft.event.QuicklyEvents;
|
||||
import de.jottyfan.minecraft.feature.QuicklyFeatures;
|
||||
import de.jottyfan.minecraft.item.QuicklyItems;
|
||||
import de.jottyfan.minecraft.loot.QuicklyLootTables;
|
||||
import de.jottyfan.minecraft.tab.QuicklyTab;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
@@ -34,9 +33,7 @@ public class Quickly implements ModInitializer {
|
||||
List<Block> blocks = QuicklyBlocks.registeredModBlocks();
|
||||
QuicklyBlockEntity.registerBlockEntities();
|
||||
QuicklyFeatures.registerFeatures();
|
||||
QuicklyComposter.registerComposterItems();
|
||||
QuicklyTab.registerItemGroup(items, blocks);
|
||||
QuicklyLootTables.registerChanges();
|
||||
QuicklyEvents.registerBlockBreak();
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import net.minecraft.world.level.block.FallingBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
@@ -44,7 +45,9 @@ import net.minecraft.world.phys.BlockHitResult;
|
||||
*
|
||||
*/
|
||||
public class BlockDrill extends FallingBlock implements EntityBlock {
|
||||
public static final MapCodec<BlockDrill> CODEC = simpleCodec(BlockDrill::new);
|
||||
public static final MapCodec<BlockDrill> CODEC = MapCodec.unit(() -> new BlockDrill(
|
||||
BlockBehaviour.Properties.of()
|
||||
));
|
||||
|
||||
private static final Integer MAX_FUEL = 255;
|
||||
public static final IntegerProperty FUEL = IntegerProperty.create("fuel", 0, MAX_FUEL);
|
||||
@@ -131,11 +134,6 @@ public class BlockDrill extends FallingBlock implements EntityBlock {
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MapCodec<? extends FallingBlock> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDustColor(BlockState blockState, BlockGetter level, BlockPos pos) {
|
||||
return 0;
|
||||
|
||||
@@ -18,6 +18,7 @@ import net.minecraft.world.level.block.EntityBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||
@@ -29,7 +30,9 @@ import net.minecraft.world.level.storage.loot.LootParams.Builder;
|
||||
*
|
||||
*/
|
||||
public class BlockStacker extends Block implements EntityBlock {
|
||||
public static final MapCodec<BlockStacker> CODEC = simpleCodec(BlockStacker::new);
|
||||
public static final MapCodec<BlockDrill> CODEC = MapCodec.unit(() -> new BlockDrill(
|
||||
BlockBehaviour.Properties.of()
|
||||
));
|
||||
|
||||
public static final EnumProperty<Direction> SOURCE = EnumProperty.create("source", Direction.class, Direction.NORTH,
|
||||
Direction.EAST, Direction.SOUTH, Direction.WEST, Direction.UP, Direction.DOWN);
|
||||
@@ -70,9 +73,9 @@ public class BlockStacker extends Block implements EntityBlock {
|
||||
return new BlockStackerEntity(pos, blockState);
|
||||
}
|
||||
|
||||
public static MapCodec<BlockStacker> getCodec() {
|
||||
return CODEC;
|
||||
}
|
||||
protected MapCodec<? extends Block> codec() {
|
||||
return CODEC;
|
||||
}
|
||||
|
||||
public Direction getSource(BlockState state) {
|
||||
return state.getValue(SOURCE);
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package de.jottyfan.minecraft.composter;
|
||||
|
||||
import de.jottyfan.minecraft.item.QuicklyItems;
|
||||
import net.fabricmc.fabric.api.registry.CompostableRegistry;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class QuicklyComposter {
|
||||
|
||||
public static final void registerComposterItems() {
|
||||
CompostableRegistry.INSTANCE.add(QuicklyItems.COTTONSEED, 0.5f);
|
||||
CompostableRegistry.INSTANCE.add(QuicklyItems.COTTON, 0.75f);
|
||||
CompostableRegistry.INSTANCE.add(QuicklyItems.CANOLASEED, 0.5f);
|
||||
CompostableRegistry.INSTANCE.add(QuicklyItems.CANOLA, 0.75f);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||
|
||||
/**
|
||||
@@ -16,15 +15,15 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||
*
|
||||
*/
|
||||
public class QuicklyFeatures {
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORETURQUOISE = genCf("oreturquoise");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORESULFOR = genCf("oresulfor");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_OREDEEPSLATESULFUR = genCf("oredepslatesulfor");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORESALPETER = genCf("oresalpeter");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORENETHERSULFOR = genCf("orenethersulfor");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_DIRTSALPETER = genCf("dirtsalpeter");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_SANDSALPETER = genCf("sandsalpeter");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORESANDSALPETER = genCf("oresandsalpeter");
|
||||
public static final ResourceKey<ConfiguredFeature<?, ?>> CF_ORESPEEDPOWDER = genCf("orespeedpowder");
|
||||
public static final ResourceKey<?> CF_ORETURQUOISE = genCf("oreturquoise");
|
||||
public static final ResourceKey<?> CF_ORESULFOR = genCf("oresulfor");
|
||||
public static final ResourceKey<?> CF_OREDEEPSLATESULFUR = genCf("oredepslatesulfor");
|
||||
public static final ResourceKey<?> CF_ORESALPETER = genCf("oresalpeter");
|
||||
public static final ResourceKey<?> CF_ORENETHERSULFOR = genCf("orenethersulfor");
|
||||
public static final ResourceKey<?> CF_DIRTSALPETER = genCf("dirtsalpeter");
|
||||
public static final ResourceKey<?> CF_SANDSALPETER = genCf("sandsalpeter");
|
||||
public static final ResourceKey<?> CF_ORESANDSALPETER = genCf("oresandsalpeter");
|
||||
public static final ResourceKey<?> CF_ORESPEEDPOWDER = genCf("orespeedpowder");
|
||||
|
||||
public static final ResourceKey<PlacedFeature> PF_ORETURQUOISE = genPf("oreturquoise");
|
||||
public static final ResourceKey<PlacedFeature> PF_ORESULFOR = genPf("oresulfor");
|
||||
@@ -36,8 +35,8 @@ public class QuicklyFeatures {
|
||||
public static final ResourceKey<PlacedFeature> PF_ORESANDSALPETER = genPf("oresandsalpeter");
|
||||
public static final ResourceKey<PlacedFeature> PF_ORESPEEDPOWDER = genPf("orespeedpowder");
|
||||
|
||||
private static final ResourceKey<ConfiguredFeature<?, ?>> genCf(String name) {
|
||||
return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name));
|
||||
private static final ResourceKey<?> genCf(String name) {
|
||||
return ResourceKey.create(Registries.FEATURE, Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name));
|
||||
}
|
||||
|
||||
private static final ResourceKey<PlacedFeature> genPf(String name) {
|
||||
|
||||
@@ -5,10 +5,8 @@ import java.util.List;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.item.AxeItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ToolMaterial;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.LeavesBlock;
|
||||
@@ -19,12 +17,12 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class QAxe extends AxeItem implements ToolRangeable {
|
||||
public class QAxe extends Item implements ToolRangeable {
|
||||
|
||||
private final HarvestRange range;
|
||||
|
||||
public QAxe(QIP properties) {
|
||||
super(new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, properties.getDurability(), 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS), 7f, 3.1f, properties);
|
||||
super(properties);
|
||||
this.range = properties.getHarvestRange();
|
||||
}
|
||||
|
||||
|
||||
@@ -7,11 +7,9 @@ import com.google.common.collect.Lists;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.Containers;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.HoeItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ToolMaterial;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
@@ -30,12 +28,11 @@ import net.minecraft.world.phys.Vec3;
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class QHoe extends HoeItem implements ToolRangeable {
|
||||
public class QHoe extends Item implements ToolRangeable {
|
||||
public QIP properties;
|
||||
|
||||
public QHoe(QIP properties) {
|
||||
super(new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, properties.getDurability(), 7f, 1f, 15,
|
||||
ItemTags.DIAMOND_TOOL_MATERIALS), 7f, 3.1f, properties);
|
||||
super(properties.hoe(ToolMaterial.DIAMOND, 0.0f, -3.0f));
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package de.jottyfan.minecraft.item;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -7,11 +8,9 @@ import com.google.common.collect.Lists;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ShovelItem;
|
||||
import net.minecraft.world.item.ToolMaterial;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
@@ -19,11 +18,11 @@ import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class QShovel extends ShovelItem implements ToolRangeable {
|
||||
public class QShovel extends Item implements ToolRangeable {
|
||||
public HarvestRange range;
|
||||
|
||||
public QShovel(QIP properties) {
|
||||
super(new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, properties.getDurability(), 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS), 7F, -3.1F, properties);
|
||||
super(properties.shovel(ToolMaterial.DIAMOND, 1.5f, -3.0f));
|
||||
this.range = properties.getHarvestRange();
|
||||
}
|
||||
|
||||
@@ -52,8 +51,11 @@ public class QShovel extends ShovelItem implements ToolRangeable {
|
||||
public InteractionResult useOn(UseOnContext context) {
|
||||
InteractionResult result = super.useOn(context);
|
||||
if (InteractionResult.SUCCESS.equals(result)) {
|
||||
Set<Block> flattenables = new HashSet<>();
|
||||
flattenables.add(Blocks.DIRT);
|
||||
flattenables.add(Blocks.GRASS_BLOCK);
|
||||
for (BlockPos pos : range.getRangeAsBlockPosArray(context.getClickedPos(), true, new BlockPos(1, 1, 1))) {
|
||||
createPath(context.getLevel(), pos, context.getClickedFace(), FLATTENABLES.keySet());
|
||||
createPath(context.getLevel(), pos, context.getClickedFace(), flattenables);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -14,7 +14,6 @@ import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.equipment.ArmorType;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Stub extends Item {
|
||||
if (SLASH_MAP.containsKey(clickedBlock)) {
|
||||
if (!level.isClientSide()) {
|
||||
level.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState());
|
||||
level.playSound(null, pos, SoundEvents.HOE_TILL, SoundSource.BLOCKS);
|
||||
level.playPlayerSound(SoundEvents.HOE_TILL.value(), SoundSource.BLOCKS, 1f, 1f);
|
||||
for (int i = 0; i < 9; i++) {
|
||||
ItemStack stack = new ItemStack(SLASH_MAP.get(clickedBlock));
|
||||
float xScatter = new Random().nextFloat();
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package de.jottyfan.minecraft.loot;
|
||||
|
||||
import de.jottyfan.minecraft.item.QuicklyItems;
|
||||
import net.fabricmc.fabric.api.loot.v3.LootTableEvents;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.storage.loot.LootPool;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jotty
|
||||
*
|
||||
*/
|
||||
public class QuicklyLootTables {
|
||||
|
||||
public static final void registerChanges() {
|
||||
LootTableEvents.MODIFY.register((key, tableBuilder, source, registries) -> {
|
||||
if (source.isBuiltin()) {
|
||||
Identifier shortGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/short_grass");
|
||||
Identifier tallGrass = Identifier.fromNamespaceAndPath("minecraft", "blocks/tall_grass");
|
||||
if (key.identifier().equals(shortGrass)) {
|
||||
tableBuilder.withPool(harvestItemByChance(QuicklyItems.COTTONSEED, 0.05f));
|
||||
} else if (key.identifier().equals(tallGrass)) {
|
||||
tableBuilder.withPool(harvestItemByChance(QuicklyItems.CANOLASEED, 0.03f));
|
||||
}
|
||||
}
|
||||
if (key.identifier().equals(Identifier.fromNamespaceAndPath("minecraft", "chests/simple_dungeon"))) {
|
||||
LootPool.Builder poolBuilder = LootPool.lootPool().setRolls(UniformGenerator.between(1.0f, 8.0f));
|
||||
for (Item item : QuicklyItems.registeredModItems()) {
|
||||
poolBuilder.add(
|
||||
LootItem.lootTableItem(item).apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, 5.0f))));
|
||||
}
|
||||
tableBuilder.withPool(poolBuilder);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static final LootPool.Builder harvestItemByChance(Item item, float chance) {
|
||||
return LootPool.lootPool().setRolls(ConstantValue.exactly(1f))
|
||||
.when(LootItemRandomChanceCondition.randomChance(chance)).add(LootItem.lootTableItem(item));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": { "type": "minecraft:constant", "value": 1.0 },
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:alternative",
|
||||
"children": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:short_grass",
|
||||
"conditions": [
|
||||
{ "condition": "minecraft:match_tool", "predicate": { "items": "#minecraft:shears" } }
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "quickly:cottonseed",
|
||||
"conditions": [
|
||||
{ "condition": "minecraft:random_chance", "chance": 0.05 }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": { "type": "minecraft:constant", "value": 1.0 },
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:alternative",
|
||||
"children": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:tall_grass",
|
||||
"conditions": [
|
||||
{ "condition": "minecraft:match_tool", "predicate": { "items": "#minecraft:shears" } }
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "quickly:canolaseed",
|
||||
"conditions": [
|
||||
{ "condition": "minecraft:random_chance", "chance": 0.03 }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:chest",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 1.0,
|
||||
"max": 8.0
|
||||
},
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:tag",
|
||||
"name": "quickly:dungeon_loot",
|
||||
"expand": true,
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 1.0,
|
||||
"max": 5.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:compostable": {
|
||||
"layers": {
|
||||
"value": 0.75
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:compostable": {
|
||||
"layers": {
|
||||
"type": "minecraft:constant",
|
||||
"value": 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:compostable": {
|
||||
"layers": {
|
||||
"type": "minecraft:constant",
|
||||
"value": 0.75
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:compostable": {
|
||||
"layers": {
|
||||
"type": "minecraft:constant",
|
||||
"value": 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:block_transformer": "minecraft:axe"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"components": {
|
||||
"minecraft:block_transformer": "minecraft:axe"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
" #",
|
||||
"# "
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"ss",
|
||||
"s|",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"ss",
|
||||
" |",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"sss",
|
||||
" | ",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"s",
|
||||
"|",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
" #",
|
||||
"# "
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"ss",
|
||||
"s|",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"ss",
|
||||
" |",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"sss",
|
||||
" | ",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "tools",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"s",
|
||||
"|",
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 4,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:dirtsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:dirt"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 20,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslatesulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 20,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:orenethersulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:netherrack"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 12,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 6,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresandsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:sandstone"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 7,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:orespeedpowder"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
},
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslatespeedpowder"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 10,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 10,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oreturquoise"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
},
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslateturquoise"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"config": {
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 8,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:sandsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:sand"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 4,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:dirtsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:dirt"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 20,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslatesulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 20,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:orenethersulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:netherrack"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 12,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 6,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresandsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:sandstone"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 7,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:orespeedpowder"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
},
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslatespeedpowder"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 10,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oresulfor"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 10,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oreturquoise"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:stone_ore_replaceables"
|
||||
}
|
||||
},
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:oredeepslateturquoise"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:tag_match",
|
||||
"tag": "minecraft:deepslate_ore_replaceables"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "minecraft:ore",
|
||||
"discard_chance_on_air_exposure": 0.0,
|
||||
"size": 8,
|
||||
"targets": [
|
||||
{
|
||||
"state": {
|
||||
"Name": "quickly:sandsalpeter"
|
||||
},
|
||||
"target": {
|
||||
"predicate_type": "minecraft:block_match",
|
||||
"block": "minecraft:sand"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"depends": {
|
||||
"fabricloader": ">=0.19.3",
|
||||
"minecraft": "~26.2-",
|
||||
"minecraft": "~26.3-",
|
||||
"java": ">=25",
|
||||
"fabric-api": "*"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user