diff --git a/build.gradle b/build.gradle index 4131d38..f84f114 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.6-SNAPSHOT' + id 'fabric-loom' version '1.8-SNAPSHOT' id 'maven-publish' } @@ -30,7 +30,7 @@ dependencies { // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - + } processResources { diff --git a/gradle.properties b/gradle.properties index 17eb926..9c3a176 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,14 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.1 -yarn_mappings=1.21.1+build.3 -loader_version=0.15.11 +minecraft_version=1.21.3 +yarn_mappings=1.21.3+build.2 +loader_version=0.16.9 # Mod Properties -mod_version=1.21.1.0 +mod_version=1.21.3.1 maven_group=de.jottyfan.quickiemod archives_base_name=quickiemod # Dependencies -fabric_version=0.102.1+1.21.1 +fabric_version=0.108.0+1.21.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b82aa23..df97d72 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4..f5feea6 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 7101f8e..9b42019 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieMod.java b/src/main/java/de/jottyfan/quickiemod/QuickieMod.java deleted file mode 100644 index 0b45dda..0000000 --- a/src/main/java/de/jottyfan/quickiemod/QuickieMod.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.jottyfan.quickiemod; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import de.jottyfan.quickiemod.init.RegistryManager; -import net.fabricmc.api.ModInitializer; - -/** - * - * @author jotty - * - */ -public class QuickieMod implements ModInitializer { - public static final String MODID = "quickiemod"; - - public static final Logger LOGGER = LoggerFactory.getLogger(MODID); - - @Override - public void onInitialize() { - LOGGER.info("loading {}", MODID); - - RegistryManager.registerBlockEntityTypes(); - RegistryManager.registerScreenHandlerTypes(); - RegistryManager.registerItems(); - RegistryManager.registerEvents(); - RegistryManager.registerBlocks(); - RegistryManager.registerFeatures(); - RegistryManager.registerItemGroup(); - } -} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java b/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java deleted file mode 100644 index 95dd0e5..0000000 --- a/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.jottyfan.quickiemod; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import de.jottyfan.quickiemod.container.BlockStackerScreen; -import de.jottyfan.quickiemod.container.ScreenHandlerTypes; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; -import net.minecraft.client.gui.screen.ingame.HandledScreens; -import net.minecraft.client.render.RenderLayer; - -/** - * - * @author jotty - * - */ -@Environment(EnvType.CLIENT) -public class QuickieModClient implements ClientModInitializer { - @Override - public void onInitializeClient() { -// HandledScreens.register(ScreenHandlerTypes.BLOCKSTACKER_SCREEN_HANDLER, BlockStackerScreen::new); - BlockRenderLayerMap.INSTANCE.putBlock(QuickieBlocks.COTTONPLANT.getBlock(), RenderLayer.getCutout()); - BlockRenderLayerMap.INSTANCE.putBlock(QuickieBlocks.CANOLAPLANT.getBlock(), RenderLayer.getCutout()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/Quickiemod.java b/src/main/java/de/jottyfan/quickiemod/Quickiemod.java new file mode 100644 index 0000000..c719053 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/Quickiemod.java @@ -0,0 +1,73 @@ +package de.jottyfan.quickiemod; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.jottyfan.quickiemod.block.ModBlocks; +import de.jottyfan.quickiemod.blockentity.ModBlockentity; +import de.jottyfan.quickiemod.event.EventBlockBreak; +import de.jottyfan.quickiemod.feature.ModFeatures; +import de.jottyfan.quickiemod.item.ModItems; +import de.jottyfan.quickiemod.itemgroup.ModItemGroup; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; +import net.fabricmc.fabric.api.loot.v3.LootTableEvents; +import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.minecraft.loot.LootPool; +import net.minecraft.loot.condition.SurvivesExplosionLootCondition; +import net.minecraft.loot.entry.ItemEntry; + +/** + * + * @author jotty + * + */ +public class Quickiemod implements ModInitializer { + public static final String MOD_ID = "quickiemod"; + public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); + + private void registerComposterItems() { + CompostingChanceRegistry.INSTANCE.add(ModItems.ITEM_COTTONSEED, 0.5f); + CompostingChanceRegistry.INSTANCE.add(ModItems.ITEM_COTTON, 0.75f); + CompostingChanceRegistry.INSTANCE.add(ModItems.ITEM_CANOLASEED, 0.5f); + CompostingChanceRegistry.INSTANCE.add(ModItems.ITEM_CANOLA, 0.75f); + } + + private void registerLootTableChanges() { + LootTableEvents.MODIFY.register((key, tableBuilder, source, registries) -> { + if (source.isBuiltin()) { + if ("minecraft:blocks/short_grass".equals(key.getValue().toString())) { + tableBuilder.pool(LootPool.builder() + .with(ItemEntry.builder(ModItems.ITEM_COTTONSEED).weight(1)) + .with(ItemEntry.builder(Items.AIR).weight(4)) + .conditionally(SurvivesExplosionLootCondition.builder())); + } else if ("minecraft:blocks/tall_grass".equals(key.getValue().toString())) { + tableBuilder.pool(LootPool.builder() + .with(ItemEntry.builder(ModItems.ITEM_CANOLASEED).weight(1)) + .with(ItemEntry.builder(Items.AIR).weight(7)) + .conditionally(SurvivesExplosionLootCondition.builder())); + } + } + }); + } + + @Override + public void onInitialize() { + ModBlockentity.registerModBlockentities(); + List items = ModItems.registerModItems(); + List blocks = ModBlocks.registerModBlocks(); + ModFeatures.registerFeatures(); + registerComposterItems(); + registerLootTableChanges(); + ModItemGroup.registerItemGroup(items, blocks); + PlayerBlockBreakEvents.AFTER.register((world, player, pos, state, blockEntity) -> { + Block oldBlock = state.getBlock(); + new EventBlockBreak().doBreakBlock(world, pos, state, player, oldBlock); + }); + } +} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/quickiemod/QuickiemodClient.java b/src/main/java/de/jottyfan/quickiemod/QuickiemodClient.java new file mode 100644 index 0000000..6ceb67f --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/QuickiemodClient.java @@ -0,0 +1,20 @@ +package de.jottyfan.quickiemod; + +import de.jottyfan.quickiemod.block.ModBlocks; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.minecraft.client.render.RenderLayer; + +/** + * + * @author jotty + * + */ +public class QuickiemodClient implements ClientModInitializer { + + @Override + public void onInitializeClient() { + BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.BLOCK_COTTONPLANT, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.BLOCK_CANOLAPLANT, RenderLayer.getCutout()); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java b/src/main/java/de/jottyfan/quickiemod/QuickiemodDataGenerator.java similarity index 52% rename from src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java rename to src/main/java/de/jottyfan/quickiemod/QuickiemodDataGenerator.java index 395d3db..8ae8c88 100644 --- a/src/main/java/de/jottyfan/quickiemod/QuickieModDataGenerator.java +++ b/src/main/java/de/jottyfan/quickiemod/QuickiemodDataGenerator.java @@ -1,8 +1,5 @@ package de.jottyfan.quickiemod; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; @@ -11,13 +8,10 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; * @author jotty * */ -public class QuickieModDataGenerator implements DataGeneratorEntrypoint { - private static final Logger LOGGER = LoggerFactory.getLogger(QuickieMod.MODID); - +public class QuickiemodDataGenerator implements DataGeneratorEntrypoint { @Override public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { - // TODO: implement - LOGGER.debug("initializing data generator"); + } } diff --git a/src/main/java/de/jottyfan/quickiemod/api/Neighborhood.java b/src/main/java/de/jottyfan/quickiemod/api/Neighborhood.java deleted file mode 100644 index eea245a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/api/Neighborhood.java +++ /dev/null @@ -1,84 +0,0 @@ -package de.jottyfan.quickiemod.api; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.function.BiFunction; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class Neighborhood { - - /** - * find the same blocks that is next to the current position pos - * - * @param world the world to look for the blocks - * @param pos the starting position - * @param seekLimit the limit of seek operations - * @param checkLambda check functionality - * @return a set of found block positions - */ - public static final Set findEqualBlock(World world, BlockPos pos, int seekLimit, - BiFunction checkLambda) { - Set found = new HashSet<>(); - found.add(new NeighborhoodBean(pos, true)); - - while (pos != null && found.size() < seekLimit) { - findNewNeihgbor(world, pos.east(), found, checkLambda); - findNewNeihgbor(world, pos.south(), found, checkLambda); - findNewNeihgbor(world, pos.west(), found, checkLambda); - findNewNeihgbor(world, pos.north(), found, checkLambda); - pos = findNextUncheckedField(found); - } - - Set finals = new HashSet<>(); - for (NeighborhoodBean bean : found) { - finals.add(bean.getPos()); - } - return finals; - } - - private static final BlockPos findNextUncheckedField(Set found) { - Iterator i = found.iterator(); - while (i.hasNext()) { - NeighborhoodBean bean = i.next(); - if (!bean.isChecked()) { - bean.setChecked(true); - return bean.getPos(); - } - } - return null; - } - - /** - * find new neighbor at pos - * - * @param world the world - * @param pos the position - * @param found the set with all already found positions - * @return true or false - */ - private static final boolean findNewNeihgbor(World world, BlockPos pos, Set found, - BiFunction checkLambda) { - NeighborhoodBean bean = new NeighborhoodBean(pos); - if (found.contains(bean) || found.contains(bean.over()) || found.contains(bean.below())) { - return false; - } else if (checkLambda.apply(world, pos).booleanValue()) { - found.add(bean); - return true; - } else if (checkLambda.apply(world, pos.up()).booleanValue()) { - found.add(new NeighborhoodBean(pos.up())); - return true; - } else if (checkLambda.apply(world, pos.down()).booleanValue()) { - found.add(new NeighborhoodBean(pos.down())); - return true; - } - return false; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/api/NeighborhoodBean.java b/src/main/java/de/jottyfan/quickiemod/api/NeighborhoodBean.java deleted file mode 100644 index 0acf23a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/api/NeighborhoodBean.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.jottyfan.quickiemod.api; - -import java.util.Objects; - -import net.minecraft.util.math.BlockPos; - -/** - * - * @author jotty - * - */ -public class NeighborhoodBean { - private final BlockPos pos; - private boolean checked; - - public NeighborhoodBean(BlockPos pos, boolean checked) { - super(); - this.pos = pos; - this.checked = checked; - } - - public NeighborhoodBean(BlockPos pos) { - super(); - this.pos = pos; - this.checked = false; - } - - public NeighborhoodBean over() { - return new NeighborhoodBean(pos.up(), checked); - } - - public NeighborhoodBean below() { - return new NeighborhoodBean(pos.down(), checked); - } - - @Override - public int hashCode() { - return Objects.hash(pos); - } - - @Override - public boolean equals(Object obj) { - Boolean result = null; - if (this == obj) { - result = true; - } else if (obj == null) { - result = false; - } else if (getClass() != obj.getClass()) { - result = false; - } else { - NeighborhoodBean other = (NeighborhoodBean) obj; - result = Objects.equals(pos, other.pos); - } - return result; - } - - /** - * @return the checked - */ - public boolean isChecked() { - return checked; - } - - /** - * @param checked the checked to set - */ - public void setChecked(boolean checked) { - this.checked = checked; - } - - /** - * @return the pos - */ - public BlockPos getPos() { - return pos; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/block/AbstractIdentifiedBlock.java b/src/main/java/de/jottyfan/quickiemod/block/AbstractIdentifiedBlock.java new file mode 100644 index 0000000..fa1e77d --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/AbstractIdentifiedBlock.java @@ -0,0 +1,25 @@ +package de.jottyfan.quickiemod.block; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public abstract class AbstractIdentifiedBlock extends Block { + + public AbstractIdentifiedBlock(Identifier identifier) { + super(AbstractBlock.Settings.create().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + public AbstractIdentifiedBlock(Identifier identifier, float strength, float hardness) { + super(AbstractBlock.Settings.create().strength(strength).hardness(hardness).requiresTool() + .registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSpeedpowder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockBreakByTool.java similarity index 57% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockSpeedpowder.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockBreakByTool.java index 4b5a5e7..3cf71e8 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSpeedpowder.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockBreakByTool.java @@ -1,16 +1,15 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.Arrays; import java.util.List; import com.mojang.serialization.MapCodec; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.AbstractBlock; import net.minecraft.block.BlockState; import net.minecraft.block.FallingBlock; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.util.Identifier; import net.minecraft.world.explosion.Explosion; /** @@ -18,15 +17,19 @@ import net.minecraft.world.explosion.Explosion; * @author jotty * */ -public class BlockSpeedpowder extends FallingBlock { +public class BlockBreakByTool extends AbstractIdentifiedBlock { - public BlockSpeedpowder() { - super(AbstractBlock.Settings.create().luminance(state -> 12)); + private final ItemStack[] drops; + + public BlockBreakByTool(Identifier identifier, float strength, float hardness, ItemStack[] drops) { + super(identifier, strength, hardness); + + this.drops = drops; } @Override public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SPEEDPOWDER.getItem(), 9) }); + return Arrays.asList(drops); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java b/src/main/java/de/jottyfan/quickiemod/block/BlockDirtSalpeter.java similarity index 67% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockDirtSalpeter.java index 51c91f8..131fe61 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDirtSalpeter.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockDirtSalpeter.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.Arrays; import java.util.List; @@ -6,14 +6,17 @@ import java.util.Random; import com.mojang.serialization.MapCodec; -import de.jottyfan.quickiemod.items.QuickieItems; +import de.jottyfan.quickiemod.item.ModItems; import net.minecraft.block.AbstractBlock; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.FallingBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; /** * @@ -22,8 +25,8 @@ import net.minecraft.loot.context.LootContextParameterSet.Builder; */ public class BlockDirtSalpeter extends FallingBlock { - public BlockDirtSalpeter() { - super(AbstractBlock.Settings.create().hardness(3.1f)); + public BlockDirtSalpeter(Identifier identifier) { + super(AbstractBlock.Settings.create().hardness(3.1f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); } @Override @@ -31,7 +34,7 @@ public class BlockDirtSalpeter extends FallingBlock { Integer count = (Double.valueOf(new Random().nextDouble() * 10).intValue() / 4) + 1; boolean spawnBoneMeal = new Random().nextDouble() > 0.5f; ItemStack boneMealStack = new ItemStack(Items.BONE_MEAL); - ItemStack salpeterStack = new ItemStack(QuickieItems.SALPETER.getItem(), count); + ItemStack salpeterStack = new ItemStack(ModItems.ITEM_SALPETER, count); ItemStack dirtStack = new ItemStack(Blocks.DIRT); ItemStack[] spawnies = spawnBoneMeal ? new ItemStack[] { boneMealStack, salpeterStack, dirtStack } : new ItemStack[] { salpeterStack, dirtStack }; @@ -40,7 +43,6 @@ public class BlockDirtSalpeter extends FallingBlock { @Override protected MapCodec getCodec() { - // TODO Auto-generated method stub return null; } } diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java b/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java new file mode 100644 index 0000000..14335bd --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockDrill.java @@ -0,0 +1,112 @@ +package de.jottyfan.quickiemod.block; + +import java.util.HashMap; +import java.util.Map; + +import com.mojang.serialization.MapCodec; + +import de.jottyfan.quickiemod.blockentity.DrillBlockEntity; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockState; +import net.minecraft.block.FallingBlock; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityTicker; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.state.StateManager.Builder; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.IntProperty; +import net.minecraft.text.Text; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class BlockDrill extends FallingBlock implements BlockEntityProvider { + private static final Integer MAX_FUEL = 255; + public static final IntProperty FUEL = IntProperty.of("fuel", 0, MAX_FUEL); + public static final EnumProperty DIRECTION = EnumProperty.of("direction", Direction.class, Direction.values()); + + public BlockDrill(Identifier identifier, Direction direction) { + super(AbstractBlock.Settings.create().hardness(2.5f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + setDefaultState(getDefaultState().with(FUEL, 0).with(DIRECTION, direction)); + } + + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { + return new DrillBlockEntity(pos, blockState); + } + + @Override + public BlockEntityTicker getTicker(World world, BlockState state, + BlockEntityType type) { + return (world1, pos, state1, be) -> DrillBlockEntity.tick(world1, pos, state1, be); + } + + @Override + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; + } + + @Override + public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + Integer fuelLeft = state.get(FUEL); + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(ModItems.ITEM_CANOLABOTTLE, fuelLeft))); + return super.onBreak(world, pos, state, player); + } + + @Override + protected void appendProperties(Builder builder) { + builder.add(FUEL).add(DIRECTION); + } + + @Override + protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { + Map loadings = new HashMap<>(); + loadings.put(ModItems.ITEM_CANOLABOTTLE, 8); + loadings.put(ModItems.ITEM_CANOLABOTTLESTACK, 72); + ItemStack stack = player.getStackInHand(player.getActiveHand()); + Item item = stack.getItem(); + if (stack.isEmpty() || !loadings.containsKey(item)) { + if (world.isClient()) { + player.sendMessage(Text.translatable("msg.drill.fuelinfo", state.get(FUEL)), false); + } + } else { + Integer fuelWeight = loadings.get(item); + if (fuelWeight != null) { + Integer load = MAX_FUEL - state.get(FUEL); + if (load < fuelWeight) { + fuelWeight = load; + } + world.setBlockState(pos, state.with(FUEL, state.get(FUEL) + fuelWeight)); + if (item.equals(ModItems.ITEM_CANOLABOTTLE)) { + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 1))); + } else if (item.equals(ModItems.ITEM_CANOLABOTTLESTACK)) { + world.spawnEntity( + new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 9))); + } + stack.decrement(1); + } + } + return ActionResult.PASS; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockEmptyLavahoarder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockEmptyLavahoarder.java similarity index 62% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockEmptyLavahoarder.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockEmptyLavahoarder.java index 669debe..c347668 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockEmptyLavahoarder.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockEmptyLavahoarder.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.ArrayList; import java.util.HashSet; @@ -6,50 +6,57 @@ import java.util.List; import java.util.Random; import java.util.Set; -import de.jottyfan.quickiemod.blockentity.EmptyLavaHoarderBlockEntity; import net.minecraft.block.AbstractBlock; import net.minecraft.block.Block; -import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.ExperienceOrbEntity; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.tick.OrderedTick; /** * * @author jotty * */ -public class BlockEmptyLavahoarder extends Block implements BlockEntityProvider { +public class BlockEmptyLavahoarder extends Block { - public BlockEmptyLavahoarder() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new EmptyLavaHoarderBlockEntity(pos, blockState); - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> EmptyLavaHoarderBlockEntity.tick(world1, pos, state1, be); + public BlockEmptyLavahoarder(Identifier identifier) { + super(AbstractBlock.Settings.create().hardness(2.5f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); } @Override public List getDroppedStacks(BlockState state, Builder builder) { List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.EMPTYLAVAHOARDER.getBlock())); + list.add(new ItemStack(ModBlocks.BLOCK_EMPTYLAVAHOARDER)); return list; } + @Override + protected void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, + net.minecraft.util.math.random.Random random) { + boolean found = BlockLavahoarder.suckLava(world, pos.north()); + found = found || BlockLavahoarder.suckLava(world, pos.south()); + found = found || BlockLavahoarder.suckLava(world, pos.east()); + found = found || BlockLavahoarder.suckLava(world, pos.west()); + found = found || BlockLavahoarder.suckLava(world, pos.up()); + found = found || BlockLavahoarder.suckLava(world, pos.down()); + if (found) { + world.setBlockState(pos, ModBlocks.BLOCK_LAVAHOARDER.getDefaultState()); + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(ModBlocks.BLOCK_LAVAHOARDER, pos)); + } else { + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); + } + } + private static final String stringOf(BlockPos pos) { StringBuilder buf = new StringBuilder(); buf.append(pos.getX()).append(":"); @@ -106,7 +113,8 @@ public class BlockEmptyLavahoarder extends Block implements BlockEntityProvider world.setBlockState(blockPosOf(p), Blocks.AIR.getDefaultState()); } if (amount > 0) { - world.setBlockState(pos, QuickieBlocks.LAVAHOARDER.getBlock().getDefaultState()); + world.setBlockState(pos, ModBlocks.BLOCK_LAVAHOARDER.getDefaultState()); + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(ModBlocks.BLOCK_LAVAHOARDER, pos)); int count = 0; Random random = new Random(); for (int i = 0; i < amount; i++) { @@ -116,9 +124,12 @@ public class BlockEmptyLavahoarder extends Block implements BlockEntityProvider } BlockPos up = pos.up(); if (count > 0) { - EmptyLavaHoarderBlockEntity.spawnRandomItems(world, up, count); - world.spawnEntity(new ExperienceOrbEntity(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, count)); + BlockLavahoarder.spawnRandomItems(world, up, count); + world.spawnEntity(new ExperienceOrbEntity(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, + (double) pos.getZ() + 0.5D, count)); } + } else { + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); } } } diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockItemhoarder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockItemhoarder.java similarity index 86% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockItemhoarder.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockItemhoarder.java index 1091546..7e88b4e 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockItemhoarder.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockItemhoarder.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -16,11 +16,14 @@ import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; +import net.minecraft.util.Identifier; import net.minecraft.util.ItemScatterer; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -33,8 +36,8 @@ import net.minecraft.world.World; */ public class BlockItemhoarder extends Block implements BlockEntityProvider { - public BlockItemhoarder() { - super(AbstractBlock.Settings.create().hardness(2.5f)); + public BlockItemhoarder(Identifier identifier) { + super(AbstractBlock.Settings.create().hardness(2.5f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); } @Override @@ -56,7 +59,7 @@ public class BlockItemhoarder extends Block implements BlockEntityProvider { @Override public List getDroppedStacks(BlockState state, Builder builder) { List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.ITEMHOARDER.getBlock())); + list.add(new ItemStack(ModBlocks.BLOCK_ITEMHOARDER)); return list; } diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockLavahoarder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockLavahoarder.java new file mode 100644 index 0000000..3829846 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockLavahoarder.java @@ -0,0 +1,135 @@ +package de.jottyfan.quickiemod.block; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.tick.OrderedTick; + +/** + * + * @author jotty + * + */ +public class BlockLavahoarder extends Block { + + public BlockLavahoarder(Identifier identifier) { + super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> 15) + .registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + List list = new ArrayList<>(); + list.add(new ItemStack(ModBlocks.BLOCK_LAVAHOARDER)); + return list; + } + + public static final void spawnRandomItems(World world, BlockPos pos, Integer count) { + Integer which = new Random().nextInt(10); + if (which < 1) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), + new ItemStack(Items.DIAMOND, new Random().nextInt(count + 2)))); + } else if (which < 2) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), + new ItemStack(Items.EMERALD, new Random().nextInt(count + 1)))); + } else if (which < 3) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), + new ItemStack(Items.RAW_GOLD, new Random().nextInt(count)))); + } else if (which < 4) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), + new ItemStack(Items.RAW_IRON, new Random().nextInt(count + 1)))); + } else if (which < 5) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), + new ItemStack(Items.RAW_COPPER, new Random().nextInt(count + 2)))); + } else if (which < 6) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.OBSIDIAN))); + } else if (which < 7) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LAPIS_LAZULI))); + } else if (which < 8) { + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(ModItems.ITEM_SULFOR))); + } + } + + /** + * sucks the lava that touches the block + * + * @param world the world + * @param pos the pos + * @return true if lava was found + */ + public static final boolean suckLava(World world, BlockPos pos) { + if (world == null) { + return false; + } else if (Blocks.LAVA.equals(world.getBlockState(pos).getBlock())) { + world.setBlockState(pos, Blocks.AIR.getDefaultState()); + BlockPos up = pos.up(); + Random random = new Random(); + if (random.nextFloat() > 0.9f) { + spawnRandomItems(world, up, 2); + } + return true; + } + return false; + } + + @Override + protected void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, + net.minecraft.util.math.random.Random random) { + suckLava(world, pos.north()); + suckLava(world, pos.south()); + suckLava(world, pos.east()); + suckLava(world, pos.west()); + suckLava(world, pos.up()); + suckLava(world, pos.down()); + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); + } + + @Override + protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { + if (!world.isClient) { + Hand hand = player.getActiveHand(); + ItemStack handStack = player.getStackInHand(hand); + if (handStack != null && Items.BUCKET.equals(handStack.getItem())) { + Integer amount = handStack.getCount(); + ItemStack lavaBucketStack = new ItemStack(Items.LAVA_BUCKET, 1); + ItemStack emptyBucketStack = new ItemStack(Items.BUCKET, amount - 1); + if (emptyBucketStack.getCount() < 1) { + player.setStackInHand(hand, lavaBucketStack); + } else { + player.setStackInHand(hand, emptyBucketStack); + world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), lavaBucketStack)); + } + spawnRandomItems(world, pos, 2); + world.setBlockState(pos, ModBlocks.BLOCK_EMPTYLAVAHOARDER.getDefaultState()); + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(ModBlocks.BLOCK_EMPTYLAVAHOARDER, pos)); + } + } + return ActionResult.SUCCESS; // forbid to empty the just filled lava bucket + } + + @Override + public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java new file mode 100644 index 0000000..5e7d4a1 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java @@ -0,0 +1,89 @@ +package de.jottyfan.quickiemod.block; + +import java.util.List; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.mob.HostileEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.StateManager.Builder; +import net.minecraft.state.property.IntProperty; +import net.minecraft.text.Text; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import net.minecraft.world.tick.OrderedTick; + +/** + * + * @author jotty + * + */ +public class BlockMonsterhoarder extends Block { + + private static final IntProperty SUCKRADIUS = IntProperty.of("suckradius", 1, 15); + + public BlockMonsterhoarder(Identifier identifier) { + super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> state.get(BlockMonsterhoarder.SUCKRADIUS)) + .registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + setDefaultState(getDefaultState().with(SUCKRADIUS, 8)); + } + + @Override + protected void appendProperties(Builder builder) { + builder.add(SUCKRADIUS); + super.appendProperties(builder); + } + + @Override + protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { + if (!world.isClient()) { + world.setBlockState(pos, state.cycle(SUCKRADIUS)); + } else { + player.sendMessage(Text.translatable("msg.monsterhoarder.size", state.get(SUCKRADIUS)), false); + } + return ActionResult.SUCCESS; + } + + @Override + protected void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (!world.isClient) { + Box box = new Box(pos).expand(Double.valueOf(state.get(SUCKRADIUS))); + List entities = world.getOtherEntities(null, box); + for (Entity entity : entities) { + if (entity instanceof HostileEntity hostile) { + if (hostile.isFireImmune()) { + if (world instanceof ServerWorld serverWorld) { + hostile.kill(serverWorld); + } + } else { + hostile.setOnFireFor(90); + } + } + } + } + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); + } + + @Override + public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { + if (!world.isClient) { + world.getBlockTickScheduler().scheduleTick(OrderedTick.create(this, pos)); + world.playSound(null, pos, SoundEvents.UI_TOAST_CHALLENGE_COMPLETE, SoundCategory.PLAYERS, 1f, 1f); + } + super.onPlaced(world, pos, state, placer, itemStack); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSulphor.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSulphor.java new file mode 100644 index 0000000..4c3063a --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSulphor.java @@ -0,0 +1,33 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class BlockOreDeepslateSulphor extends ExperienceDroppingBlock { + + public BlockOreDeepslateSulphor(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND) + .requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SULFOR, 4) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreNetherSulphor.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreNetherSulphor.java new file mode 100644 index 0000000..6bdf663 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreNetherSulphor.java @@ -0,0 +1,33 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class BlockOreNetherSulphor extends ExperienceDroppingBlock { + + public BlockOreNetherSulphor(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.1f).sounds(BlockSoundGroup.SOUL_SAND) + .requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SULFOR) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreSalpeter.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSalpeter.java new file mode 100644 index 0000000..aec1a06 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSalpeter.java @@ -0,0 +1,34 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.random.Random; + +/** + * + * @author jotty + * + */ +public class BlockOreSalpeter extends ExperienceDroppingBlock { + + public BlockOreSalpeter(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND) + .requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SALPETER, 2 + Random.create().nextInt(3)) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSandSalpeter.java similarity index 51% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockOreSandSalpeter.java index fe9432b..368ba80 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSandSalpeter.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSandSalpeter.java @@ -1,16 +1,19 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.Arrays; import java.util.List; -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.ExperienceDroppingBlock; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; import net.minecraft.util.math.random.Random; /** @@ -20,12 +23,12 @@ import net.minecraft.util.math.random.Random; */ public class BlockOreSandSalpeter extends ExperienceDroppingBlock { - public BlockOreSandSalpeter() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); + public BlockOreSandSalpeter(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); } @Override public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 7 + Random.create().nextInt(4)), new ItemStack(Blocks.SAND) }); + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SALPETER, 7 + Random.create().nextInt(4)), new ItemStack(Blocks.SAND) }); } } diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreSulphor.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSulphor.java new file mode 100644 index 0000000..3b81fd7 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSulphor.java @@ -0,0 +1,33 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class BlockOreSulphor extends ExperienceDroppingBlock { + + public BlockOreSulphor(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND) + .requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SULFOR) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java b/src/main/java/de/jottyfan/quickiemod/block/BlockPlant.java similarity index 71% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockPlant.java index fe82b81..f662662 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockPlant.java @@ -1,28 +1,41 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.List; import java.util.Random; -import de.jottyfan.quickiemod.items.QuickieItems; import net.minecraft.block.AbstractBlock; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.CropBlock; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; import net.minecraft.util.ItemScatterer; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -public class BlockCottonplant extends CropBlock { +/** + * + * @author jotty + * + */ +public class BlockPlant extends CropBlock { - public BlockCottonplant() { - super(AbstractBlock.Settings.copy(Blocks.WHEAT)); + private Item seed; + private Item fruit; + + public BlockPlant(Identifier identifier, Item seed, Item fruit) { + super(AbstractBlock.Settings.copy(Blocks.WHEAT).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + this.seed = seed; + this.fruit = fruit; } @Override @@ -31,7 +44,7 @@ public class BlockCottonplant extends CropBlock { list.add(new ItemStack(getSeedsItem())); // the one from the seed if (isMature(state)) { list.add(new ItemStack(getSeedsItem(), new Random().nextInt(2))); - list.add(new ItemStack(QuickieItems.COTTON.getItem(), new Random().nextFloat() > 0.9f ? 2 : 1)); + list.add(new ItemStack(fruit, new Random().nextFloat() > 0.9f ? 2 : 1)); } return list; } @@ -52,7 +65,7 @@ public class BlockCottonplant extends CropBlock { @Override protected ItemConvertible getSeedsItem() { - return QuickieItems.COTTONSEED.getItem(); + return seed; } @Override @@ -63,4 +76,4 @@ public class BlockCottonplant extends CropBlock { } return ActionResult.PASS; } -} \ No newline at end of file +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockQuickiepowder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockPowder.java similarity index 54% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockQuickiepowder.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockPowder.java index 43a169a..f981d8f 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockQuickiepowder.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockPowder.java @@ -1,16 +1,18 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.Arrays; import java.util.List; import com.mojang.serialization.MapCodec; -import de.jottyfan.quickiemod.items.QuickieItems; import net.minecraft.block.AbstractBlock; import net.minecraft.block.BlockState; import net.minecraft.block.FallingBlock; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; import net.minecraft.world.explosion.Explosion; /** @@ -18,15 +20,18 @@ import net.minecraft.world.explosion.Explosion; * @author jotty * */ -public class BlockQuickiepowder extends FallingBlock { +public class BlockPowder extends FallingBlock { - public BlockQuickiepowder() { - super(AbstractBlock.Settings.create().luminance(state -> 12)); + private final ItemStack[] drops; + + public BlockPowder(Identifier identifier, ItemStack[] drops) { + super(AbstractBlock.Settings.create().luminance(state -> 12).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + this.drops = drops; } @Override public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.QUICKIEPOWDER.getItem(), 9) }); + return Arrays.asList(drops); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java b/src/main/java/de/jottyfan/quickiemod/block/BlockSandSalpeter.java similarity index 55% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockSandSalpeter.java index 50bc957..ab9637b 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSandSalpeter.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockSandSalpeter.java @@ -1,17 +1,20 @@ -package de.jottyfan.quickiemod.blocks; +package de.jottyfan.quickiemod.block; import java.util.Arrays; import java.util.List; import com.mojang.serialization.MapCodec; -import de.jottyfan.quickiemod.items.QuickieItems; +import de.jottyfan.quickiemod.item.ModItems; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.FallingBlock; import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; +import net.minecraft.loot.context.LootWorldContext.Builder; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; import net.minecraft.util.math.random.Random; /** @@ -21,13 +24,15 @@ import net.minecraft.util.math.random.Random; */ public class BlockSandSalpeter extends FallingBlock { - public BlockSandSalpeter() { - super(Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); + public BlockSandSalpeter(Identifier identifier) { + super(Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool() + .registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); } @Override public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 3 + Random.create().nextInt(2)), new ItemStack(Blocks.SAND) }); + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SALPETER, 3 + Random.create().nextInt(2)), + new ItemStack(Blocks.SAND) }); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockSlippery.java b/src/main/java/de/jottyfan/quickiemod/block/BlockSlippery.java new file mode 100644 index 0000000..23d6243 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockSlippery.java @@ -0,0 +1,22 @@ +package de.jottyfan.quickiemod.block; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class BlockSlippery extends Block { + + public BlockSlippery(Identifier identifier, float hardness, float slipperiness, BlockSoundGroup soundGroup) { + super(AbstractBlock.Settings.create().hardness(hardness).slipperiness(slipperiness).breakInstantly() + .sounds(soundGroup).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerDown.java b/src/main/java/de/jottyfan/quickiemod/block/BlockStacker.java similarity index 72% rename from src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerDown.java rename to src/main/java/de/jottyfan/quickiemod/block/BlockStacker.java index e306b03..a17dfc6 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerDown.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockStacker.java @@ -1,13 +1,11 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; +package de.jottyfan.quickiemod.block; import com.mojang.serialization.MapCodec; -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; +import de.jottyfan.quickiemod.blockentity.ModBlockentity; import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.BlockWithEntity; @@ -15,11 +13,11 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.screen.ScreenHandler; import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; import net.minecraft.util.ItemScatterer; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -31,20 +29,38 @@ import net.minecraft.world.World; * @author jotty * */ -public class BlockStackerDown extends BlockWithEntity implements BlockStacker { +public class BlockStacker extends BlockWithEntity implements BlockEntityProvider { - public BlockStackerDown() { - super(AbstractBlock.Settings.create().hardness(2.5f)); + private final Direction source; + private final Direction dest; + + public BlockStacker(Identifier identifier, Direction source, Direction dest) { + super(AbstractBlock.Settings.create().hardness(2.5f).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + this.source = source; + this.dest = dest; } @Override + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + /** + * define the source offset + * + * @return the direction of the source offset (1 block beside) + */ public Direction getSourceOffset() { - return Direction.UP; + return source; } - @Override + /** + * define the dest offset + * + * @return the direction of the dest offset (1 block beside) + */ public Direction getDestOffset() { - return Direction.DOWN; + return dest; } @Override @@ -53,19 +69,15 @@ public class BlockStackerDown extends BlockWithEntity implements BlockStacker { } @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKERDOWN.getBlock())); + protected MapCodec getCodec() { + // TODO Auto-generated method stub + return null; } @Override public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, + return validateTicker(type, ModBlockentity.BLOCKSTACKER_BLOCKENTITY, (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); } @@ -102,10 +114,4 @@ public class BlockStackerDown extends BlockWithEntity implements BlockStacker { public int getComparatorOutput(BlockState state, World world, BlockPos pos) { return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } } diff --git a/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java new file mode 100644 index 0000000..dd00aa1 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java @@ -0,0 +1,132 @@ +package de.jottyfan.quickiemod.block; + +import java.util.ArrayList; +import java.util.List; + +import de.jottyfan.quickiemod.Quickiemod; +import de.jottyfan.quickiemod.identifier.ModIdentifiers; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Direction; + +/** + * + * @author jotty + * + */ +public class ModBlocks { + + public static final Block BLOCK_QUICKIEPOWDER = registerBlock(ModIdentifiers.BLOCK_QUICKIEPOWDER, new BlockPowder( + ModIdentifiers.BLOCK_QUICKIEPOWDER, new ItemStack[] { new ItemStack(ModItems.ITEM_QUICKIEPOWDER, 9) })); + public static final Block BLOCK_SPEEDPOWDER = registerBlock(ModIdentifiers.BLOCK_SPEEDPOWDER, new BlockPowder( + ModIdentifiers.BLOCK_SPEEDPOWDER, new ItemStack[] { new ItemStack(ModItems.ITEM_SPEEDPOWDER, 9) })); + public static final Block BLOCK_SALPETER = registerBlock(ModIdentifiers.BLOCK_SALPETER, new BlockBreakByTool( + ModIdentifiers.BLOCK_SALPETER, 1.5f, 1.5f, new ItemStack[] { new ItemStack(ModItems.ITEM_SALPETER, 9) })); + public static final Block BLOCK_SULFOR = registerBlock(ModIdentifiers.BLOCK_SULFOR, new BlockBreakByTool( + ModIdentifiers.BLOCK_SULFOR, 1.5f, 1.5f, new ItemStack[] { new ItemStack(ModItems.ITEM_SULFOR, 9) })); + public static final Block BLOCK_MONSTERHOARDER = registerBlock(ModIdentifiers.BLOCK_MONSTERHOARDER, + new BlockMonsterhoarder(ModIdentifiers.BLOCK_MONSTERHOARDER)); + public static final Block BLOCK_LAVAHOARDER = registerBlock(ModIdentifiers.BLOCK_LAVAHOARDER, + new BlockLavahoarder(ModIdentifiers.BLOCK_LAVAHOARDER)); + public static final Block BLOCK_EMPTYLAVAHOARDER = registerBlock(ModIdentifiers.BLOCK_EMPTYLAVAHOARDER, + new BlockEmptyLavahoarder(ModIdentifiers.BLOCK_EMPTYLAVAHOARDER)); + public static final Block BLOCK_ITEMHOARDER = registerBlock(ModIdentifiers.BLOCK_ITEMHOARDER, + new BlockItemhoarder(ModIdentifiers.BLOCK_ITEMHOARDER)); + public static final Block BLOCK_DIRTSALPETER = registerBlock(ModIdentifiers.BLOCK_DIRTSALPETER, + new BlockDirtSalpeter(ModIdentifiers.BLOCK_DIRTSALPETER)); + public static final Block BLOCK_OREDEEPSLATESULFOR = registerBlock(ModIdentifiers.BLOCK_OREDEEPSLATESULFOR, + new BlockOreDeepslateSulphor(ModIdentifiers.BLOCK_OREDEEPSLATESULFOR)); + public static final Block BLOCK_ORENETHERSULFOR = registerBlock(ModIdentifiers.BLOCK_ORENETHERSULFOR, + new BlockOreNetherSulphor(ModIdentifiers.BLOCK_ORENETHERSULFOR)); + public static final Block BLOCK_ORESALPETER = registerBlock(ModIdentifiers.BLOCK_ORESALPETER, + new BlockOreSalpeter(ModIdentifiers.BLOCK_ORESALPETER)); + public static final Block BLOCK_ORESANDSALPETER = registerBlock(ModIdentifiers.BLOCK_ORESANDSALPETER, + new BlockOreSandSalpeter(ModIdentifiers.BLOCK_ORESANDSALPETER)); + public static final Block BLOCK_ORESULFOR = registerBlock(ModIdentifiers.BLOCK_ORESULFOR, + new BlockOreSulphor(ModIdentifiers.BLOCK_ORESULFOR)); + public static final Block BLOCK_SANDSALPETER = registerBlock(ModIdentifiers.BLOCK_SANDSALPETER, + new BlockSandSalpeter(ModIdentifiers.BLOCK_SANDSALPETER)); + public static final Block BLOCK_KELPSTACK = registerBlock(ModIdentifiers.BLOCK_KELPSTACK, + new BlockSlippery(ModIdentifiers.BLOCK_KELPSTACK, 0.1f, 1.0f, BlockSoundGroup.WET_GRASS)); + public static final Block BLOCK_COTTONPLANT = registerBlock(ModIdentifiers.BLOCK_COTTONPLANT, + new BlockPlant(ModIdentifiers.BLOCK_COTTONPLANT, ModItems.ITEM_COTTONSEED, ModItems.ITEM_COTTON), false); + public static final Block BLOCK_CANOLAPLANT = registerBlock(ModIdentifiers.BLOCK_CANOLAPLANT, + new BlockPlant(ModIdentifiers.BLOCK_CANOLAPLANT, ModItems.ITEM_CANOLASEED, ModItems.ITEM_CANOLA), false); + public static final Block BLOCK_DRILL_DOWN = registerBlock(ModIdentifiers.BLOCK_DRILLDOWN, + new BlockDrill(ModIdentifiers.BLOCK_DRILLDOWN, Direction.DOWN)); + public static final Block BLOCK_DRILL_EAST = registerBlock(ModIdentifiers.BLOCK_DRILLEAST, + new BlockDrill(ModIdentifiers.BLOCK_DRILLEAST, Direction.EAST)); + public static final Block BLOCK_DRILL_SOUTH = registerBlock(ModIdentifiers.BLOCK_DRILLSOUTH, + new BlockDrill(ModIdentifiers.BLOCK_DRILLSOUTH, Direction.SOUTH)); + public static final Block BLOCK_DRILL_WEST = registerBlock(ModIdentifiers.BLOCK_DRILLWEST, + new BlockDrill(ModIdentifiers.BLOCK_DRILLWEST, Direction.WEST)); + public static final Block BLOCK_DRILL_NORTH = registerBlock(ModIdentifiers.BLOCK_DRILLNORTH, + new BlockDrill(ModIdentifiers.BLOCK_DRILLNORTH, Direction.NORTH)); + public static final Block BLOCK_STACKER_DOWN = registerBlock(ModIdentifiers.BLOCK_STACKERDOWN, + new BlockStacker(ModIdentifiers.BLOCK_STACKERDOWN, Direction.UP, Direction.DOWN)); + public static final Block BLOCK_STACKER_EAST = registerBlock(ModIdentifiers.BLOCK_STACKEREAST, + new BlockStacker(ModIdentifiers.BLOCK_STACKEREAST, Direction.WEST, Direction.EAST)); + public static final Block BLOCK_STACKER_SOUTH = registerBlock(ModIdentifiers.BLOCK_STACKERSOUTH, + new BlockStacker(ModIdentifiers.BLOCK_STACKERSOUTH, Direction.NORTH, Direction.SOUTH)); + public static final Block BLOCK_STACKER_WEST = registerBlock(ModIdentifiers.BLOCK_STACKERWEST, + new BlockStacker(ModIdentifiers.BLOCK_STACKERWEST, Direction.EAST, Direction.WEST)); + public static final Block BLOCK_STACKER_NORTH = registerBlock(ModIdentifiers.BLOCK_STACKERNORTH, + new BlockStacker(ModIdentifiers.BLOCK_STACKERNORTH, Direction.SOUTH, Direction.NORTH)); + public static final Block BLOCK_STACKER_UP = registerBlock(ModIdentifiers.BLOCK_STACKERUP, + new BlockStacker(ModIdentifiers.BLOCK_STACKERUP, Direction.DOWN, Direction.UP)); + + private static final Block registerBlock(Identifier identifier, Block block) { + return registerBlock(identifier, block, true); + } + + private static final Block registerBlock(Identifier identifier, Block block, boolean registerAsItem) { + if (registerAsItem) { + Registry.register(Registries.ITEM, identifier, new BlockItem(block, new Item.Settings() + .registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)).useBlockPrefixedTranslationKey())); + } + return Registry.register(Registries.BLOCK, identifier, block); + } + + public static final List registerModBlocks() { + Quickiemod.LOGGER.info(String.format("registering blocks for %s", Quickiemod.MOD_ID)); + + List blocks = new ArrayList<>(); + blocks.add(BLOCK_QUICKIEPOWDER); + blocks.add(BLOCK_SPEEDPOWDER); + blocks.add(BLOCK_SALPETER); + blocks.add(BLOCK_SULFOR); + blocks.add(BLOCK_MONSTERHOARDER); + blocks.add(BLOCK_EMPTYLAVAHOARDER); + blocks.add(BLOCK_LAVAHOARDER); + blocks.add(BLOCK_ITEMHOARDER); + blocks.add(BLOCK_DIRTSALPETER); + blocks.add(BLOCK_OREDEEPSLATESULFOR); + blocks.add(BLOCK_ORENETHERSULFOR); + blocks.add(BLOCK_ORESALPETER); + blocks.add(BLOCK_ORESANDSALPETER); + blocks.add(BLOCK_ORESULFOR); + blocks.add(BLOCK_SANDSALPETER); + blocks.add(BLOCK_KELPSTACK); + blocks.add(BLOCK_DRILL_DOWN); + blocks.add(BLOCK_DRILL_EAST); + blocks.add(BLOCK_DRILL_SOUTH); + blocks.add(BLOCK_DRILL_WEST); + blocks.add(BLOCK_DRILL_NORTH); + blocks.add(BLOCK_STACKER_DOWN); + blocks.add(BLOCK_STACKER_EAST); + blocks.add(BLOCK_STACKER_SOUTH); + blocks.add(BLOCK_STACKER_WEST); + blocks.add(BLOCK_STACKER_NORTH); + blocks.add(BLOCK_STACKER_UP); + return blocks; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/StandardBlock.java b/src/main/java/de/jottyfan/quickiemod/block/StandardBlock.java new file mode 100644 index 0000000..a3fe187 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/StandardBlock.java @@ -0,0 +1,16 @@ +package de.jottyfan.quickiemod.block; + +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class StandardBlock extends AbstractIdentifiedBlock { + + public StandardBlock(Identifier identifier) { + super(identifier); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java b/src/main/java/de/jottyfan/quickiemod/block/help/IntProviderHelper.java similarity index 93% rename from src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java rename to src/main/java/de/jottyfan/quickiemod/block/help/IntProviderHelper.java index c73f186..56abe99 100644 --- a/src/main/java/de/jottyfan/quickiemod/blocks/help/IntProviderHelper.java +++ b/src/main/java/de/jottyfan/quickiemod/block/help/IntProviderHelper.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.blocks.help; +package de.jottyfan.quickiemod.block.help; import net.minecraft.util.math.intprovider.IntProvider; import net.minecraft.util.math.intprovider.IntProviderType; diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockEntityTypes.java b/src/main/java/de/jottyfan/quickiemod/blockentity/BlockEntityTypes.java deleted file mode 100644 index 9f1da77..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockEntityTypes.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import de.jottyfan.quickiemod.init.BlockEntityIdentity; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; - -/** - * - * @author jotty - * - */ -public class BlockEntityTypes { - public static final BlockEntityType EMPTYLAVAHOARDER = Registry.register(Registries.BLOCK_ENTITY_TYPE, - BlockEntityIdentity.EMPTYLAVALHOARDER, BlockEntityType.Builder - .create(EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER.getBlock(), QuickieBlocks.LAVAHOARDER.getBlock()).build(null)); - public static final BlockEntityType ITEMHOARDER = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.ITEMHOARDER, - BlockEntityType.Builder.create(ItemHoarderBlockEntity::new, QuickieBlocks.ITEMHOARDER.getBlock()).build(null)); - public static final BlockEntityType MONSTERHOARDER = Registry.register(Registries.BLOCK_ENTITY_TYPE, - BlockEntityIdentity.MONSTERHOARDER, BlockEntityType.Builder.create(MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER.getBlock()).build(null)); - public static final BlockEntityType DRILL_DOWN = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.DRILL_DOWN, - BlockEntityType.Builder.create(DrillBlockDownEntity::new, QuickieBlocks.DRILL_DOWN.getBlock()).build(null)); - public static final BlockEntityType DRILL_EAST = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.DRILL_EAST, - BlockEntityType.Builder.create(DrillBlockEastEntity::new, QuickieBlocks.DRILL_EAST.getBlock()).build(null)); - public static final BlockEntityType DRILL_SOUTH = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.DRILL_SOUTH, - BlockEntityType.Builder.create(DrillBlockSouthEntity::new, QuickieBlocks.DRILL_SOUTH.getBlock()).build(null)); - public static final BlockEntityType DRILL_WEST = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.DRILL_WEST, - BlockEntityType.Builder.create(DrillBlockWestEntity::new, QuickieBlocks.DRILL_WEST.getBlock()).build(null)); - public static final BlockEntityType DRILL_NORTH = Registry.register(Registries.BLOCK_ENTITY_TYPE, BlockEntityIdentity.DRILL_NORTH, - BlockEntityType.Builder.create(DrillBlockNorthEntity::new, QuickieBlocks.DRILL_NORTH.getBlock()).build(null)); - public static final BlockEntityType BLOCKSTACKER_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, - BlockEntityIdentity.BLOCKSTACKERUP, - BlockEntityType.Builder.create(BlockStackerEntity::new, QuickieBlocks.BLOCKSTACKERUP.getBlock(), QuickieBlocks.BLOCKSTACKERDOWN.getBlock(), - QuickieBlocks.BLOCKSTACKEREAST.getBlock(), QuickieBlocks.BLOCKSTACKERWEST.getBlock(), QuickieBlocks.BLOCKSTACKERNORTH.getBlock(), - QuickieBlocks.BLOCKSTACKERSOUTH.getBlock()).build(null)); -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockMonsterhoarder.java b/src/main/java/de/jottyfan/quickiemod/blockentity/BlockMonsterhoarder.java deleted file mode 100644 index 0c6572a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockMonsterhoarder.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockMonsterhoarder extends Block implements BlockEntityProvider { - - - public BlockMonsterhoarder() { - super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> 15)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new MonsterHoarderBlockEntity(pos, blockState); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> MonsterHoarderBlockEntity.tick(world1, pos, state1, be); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.MONSTERHOARDER.getBlock())); - return list; - } - - @Override - public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { - if (!world.isClient) { - world.playSound(null, pos, SoundEvents.UI_TOAST_CHALLENGE_COMPLETE, SoundCategory.PLAYERS, 1f, 1f); - } - super.onPlaced(world, pos, state, placer, itemStack); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockStackerEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/BlockStackerEntity.java index 09d380b..e08f396 100644 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/BlockStackerEntity.java +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/BlockStackerEntity.java @@ -3,11 +3,8 @@ package de.jottyfan.quickiemod.blockentity; import java.util.ArrayList; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import de.jottyfan.quickiemod.QuickieMod; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; +import de.jottyfan.quickiemod.Quickiemod; +import de.jottyfan.quickiemod.block.BlockStacker; import de.jottyfan.quickiemod.container.BlockStackerScreenHandler; import de.jottyfan.quickiemod.container.ImplementedInventory; import net.minecraft.block.BlockState; @@ -34,12 +31,11 @@ import net.minecraft.world.World; * */ public class BlockStackerEntity extends BlockEntity implements NamedScreenHandlerFactory, ImplementedInventory { - private static final Logger LOGGER = LoggerFactory.getLogger(QuickieMod.MODID); private final DefaultedList inventory = DefaultedList.ofSize(BlockStackerScreenHandler.SLOTSIZE, ItemStack.EMPTY); public BlockStackerEntity(BlockPos blockPos, BlockState blockState) { - super(BlockEntityTypes.BLOCKSTACKER_ENTITY, blockPos, blockState); + super(ModBlockentity.BLOCKSTACKER_BLOCKENTITY, blockPos, blockState); } @Override @@ -165,7 +161,7 @@ public class BlockStackerEntity extends BlockEntity implements NamedScreenHandle Integer candidates = source.getStack(sourceSlot).getCount(); Integer travellers = candidates > free ? free : candidates; if (travellers > 0) { - LOGGER.debug("transfer {}/{} of {} from slot {} to slot {} on top of {} ones", travellers, candidates, + Quickiemod.LOGGER.debug("transfer {}/{} of {} from slot {} to slot {} on top of {} ones", travellers, candidates, source.getStack(sourceSlot).getItem().toString(), sourceSlot, destSlot, occupied); source.getStack(sourceSlot).decrement(travellers); if (source.getStack(sourceSlot).getCount() < 1) { @@ -177,7 +173,7 @@ public class BlockStackerEntity extends BlockEntity implements NamedScreenHandle } else { Integer destFreeSlot = findItemStackPos(dest, true); if (destFreeSlot != null) { - LOGGER.debug("transfer all of {} from slot {} to slot {}", source.getStack(sourceSlot).getItem().toString(), + Quickiemod.LOGGER.debug("transfer all of {} from slot {} to slot {}", source.getStack(sourceSlot).getItem().toString(), sourceSlot, destSlot); dest.setStack(destFreeSlot, source.removeStack(sourceSlot)); result = true; @@ -236,7 +232,7 @@ public class BlockStackerEntity extends BlockEntity implements NamedScreenHandle private static final Integer findItemStackPos(LootableContainerBlockEntity lcbe, List filterItems, Boolean whitelist) { if (whitelist == null) { whitelist = true; - LOGGER.error("whitelist is null"); + Quickiemod.LOGGER.error("whitelist is null"); } if (filterItems == null || filterItems.size() < 1) { if (whitelist) { diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockDownEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockDownEntity.java deleted file mode 100644 index 0af0101..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockDownEntity.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class DrillBlockDownEntity extends DrillBlockEntity { - - private static final Integer MAXDRILLSTEP = 20; - - public DrillBlockDownEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.DRILL_DOWN, pos, state, MAXDRILLSTEP); - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof DrillBlockDownEntity) { - DrillBlockDownEntity dbe = (DrillBlockDownEntity) be; - DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, generateBlockPos(pos)); - } - } - - public static final List generateBlockPos(BlockPos pos) { - List list = new ArrayList<>(); - Integer tracesMod = pos.getY() % 8; - tracesMod = tracesMod < 0 ? tracesMod * -1 : tracesMod; // lower that 0 makes it negative - if (tracesMod != 0) { - list.add(pos.north()); - } - if (tracesMod != 1) { - list.add(pos.north().west()); - } - if (tracesMod != 2) { - list.add(pos.west()); - } - if (tracesMod != 3) { - list.add(pos.south().west()); - } - if (tracesMod != 4) { - list.add(pos.south()); - } - if (tracesMod != 5) { - list.add(pos.south().east()); - } - if (tracesMod != 6) { - list.add(pos.east()); - } - if (tracesMod != 7) { - list.add(pos.north().east()); - } - list.add(pos.down()); // must be last position - return list; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEastEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEastEntity.java deleted file mode 100644 index 2d1fa31..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEastEntity.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class DrillBlockEastEntity extends DrillBlockEntity { - - private static final Integer MAXDRILLSTEP = 24; - - public DrillBlockEastEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.DRILL_EAST, pos, state, MAXDRILLSTEP); - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof DrillBlockEastEntity) { - DrillBlockEastEntity dbe = (DrillBlockEastEntity) be; - List list = new ArrayList<>(); - list.add(pos.east()); - list.add(pos.east().up()); - list.add(pos.east().up().up()); - list.add(pos.east().up().up().up()); - list.add(pos.east().down()); // must be last position - DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java index df6d2fb..29e5563 100644 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockEntity.java @@ -1,23 +1,94 @@ package de.jottyfan.quickiemod.blockentity; +import java.util.ArrayList; import java.util.List; -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; +import de.jottyfan.quickiemod.block.BlockDrill; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; import net.minecraft.world.World; -public abstract class DrillBlockEntity extends BlockEntity { +/** + * + * @author jotty + * + */ +public class DrillBlockEntity extends BlockEntity { + + private static final Integer MAXDRILLSTEP = 20; + private Integer drillstep; private final Integer maxDrillStep; - public DrillBlockEntity(BlockEntityType type, BlockPos pos, BlockState state, Integer maxDrillStep) { - super(type, pos, state); - this.maxDrillStep = maxDrillStep; + public DrillBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockentity.DRILL_BLOCKENTITY, pos, state); + this.maxDrillStep = MAXDRILLSTEP; + } + + public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { + if (be instanceof DrillBlockEntity dbe) { + Direction dir = state.get(BlockDrill.DIRECTION); + List list = new ArrayList<>(); + if (Direction.DOWN.equals(dir)) { + list = downFrom(pos); + } else if (Direction.EAST.equals(dir)) { + list = directedFrom(pos.east()); + } else if (Direction.SOUTH.equals(dir)) { + list = directedFrom(pos.south()); + } else if (Direction.WEST.equals(dir)) { + list = directedFrom(pos.west()); + } else if (Direction.NORTH.equals(dir)) { + list = directedFrom(pos.north()); + } + DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); + } + } + + public static final List directedFrom(BlockPos pos) { +// Quickiemod.LOGGER.info("directed"); + List list = new ArrayList<>(); + list.add(pos); + list.add(pos.up()); + list.add(pos.up().up()); + list.add(pos.up().up().up()); + list.add(pos.down()); // must be last position + return list; + } + + public static final List downFrom(BlockPos pos) { +// Quickiemod.LOGGER.info("down"); + List list = new ArrayList<>(); + Integer tracesMod = pos.getY() % 8; + tracesMod = tracesMod < 0 ? tracesMod * -1 : tracesMod; // lower that 0 makes it negative + if (tracesMod != 0) { + list.add(pos.north()); + } + if (tracesMod != 1) { + list.add(pos.north().west()); + } + if (tracesMod != 2) { + list.add(pos.west()); + } + if (tracesMod != 3) { + list.add(pos.south().west()); + } + if (tracesMod != 4) { + list.add(pos.south()); + } + if (tracesMod != 5) { + list.add(pos.south().east()); + } + if (tracesMod != 6) { + list.add(pos.east()); + } + if (tracesMod != 7) { + list.add(pos.north().east()); + } + list.add(pos.down()); // must be last position + return list; } protected static final void moveBlockWithEntity(BlockPos from, BlockPos to, World world) { @@ -25,9 +96,8 @@ public abstract class DrillBlockEntity extends BlockEntity { BlockState bs = world.getBlockState(from); if (be != null) { world.setBlockState(from, Blocks.AIR.getDefaultState()); - Integer newFuel = bs.get(DrillBlock.FUEL) - 1; - world.setBlockState(to, bs.with(DrillBlock.FUEL, newFuel)); - world.addBlockEntity(be); + Integer newFuel = bs.get(BlockDrill.FUEL) - 1; + world.setBlockState(to, bs.with(BlockDrill.FUEL, newFuel)); world.removeBlockEntity(from); } } @@ -35,11 +105,11 @@ public abstract class DrillBlockEntity extends BlockEntity { protected static final Boolean drill(BlockPos pos, List toList, World world) { Boolean lastSuccess = false; for (BlockPos to : toList) { - if (!world.getBlockState(to).isOf(Blocks.BEDROCK) && !world.getBlockState(to).isOf(QuickieBlocks.DRILLSTOP.getBlock())) { + if (!world.getBlockState(to).isOf(Blocks.BEDROCK)) { world.breakBlock(to, true); lastSuccess = pos.down() != to; // no need for the falling one } else { - lastSuccess = false; // in case that the last one is a bedrock or a drillstop + lastSuccess = false; // in case that the last one is a bedrock } } return lastSuccess; @@ -47,7 +117,7 @@ public abstract class DrillBlockEntity extends BlockEntity { public static void tick(World world, BlockPos pos, BlockState state, DrillBlockEntity be, Integer maxDrillStep, List drillPosition) { - if (state.get(DrillBlock.FUEL) > 0) { + if (state.get(BlockDrill.FUEL) > 0) { if (be.getDrillstep() < 1) { be.setDrillstep(maxDrillStep); if (drill(pos, drillPosition, world)) { diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockNorthEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockNorthEntity.java deleted file mode 100644 index fa11e24..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockNorthEntity.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class DrillBlockNorthEntity extends DrillBlockEntity { - - private static final Integer MAXDRILLSTEP = 24; - - public DrillBlockNorthEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.DRILL_NORTH, pos, state, MAXDRILLSTEP); - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof DrillBlockNorthEntity) { - DrillBlockNorthEntity dbe = (DrillBlockNorthEntity) be; - List list = new ArrayList<>(); - list.add(pos.north()); - list.add(pos.north().up()); - list.add(pos.north().up().up()); - list.add(pos.north().up().up().up()); - list.add(pos.north().down()); // must be last position - DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockSouthEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockSouthEntity.java deleted file mode 100644 index 1be1bb9..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockSouthEntity.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class DrillBlockSouthEntity extends DrillBlockEntity { - private static final Integer MAXDRILLSTEP = 24; - - public DrillBlockSouthEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.DRILL_SOUTH, pos, state, MAXDRILLSTEP); - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof DrillBlockSouthEntity) { - DrillBlockSouthEntity dbe = (DrillBlockSouthEntity) be; - List list = new ArrayList<>(); - list.add(pos.south()); - list.add(pos.south().up()); - list.add(pos.south().up().up()); - list.add(pos.south().up().up().up()); - list.add(pos.south().down()); // must be last position - DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockWestEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockWestEntity.java deleted file mode 100644 index c894240..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/DrillBlockWestEntity.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class DrillBlockWestEntity extends DrillBlockEntity { - - private static final Integer MAXDRILLSTEP = 24; - - public DrillBlockWestEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.DRILL_WEST, pos, state, MAXDRILLSTEP); - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof DrillBlockWestEntity) { - DrillBlockWestEntity dbe = (DrillBlockWestEntity) be; - List list = new ArrayList<>(); - list.add(pos.west()); - list.add(pos.west().up()); - list.add(pos.west().up().up()); - list.add(pos.west().up().up().up()); - list.add(pos.west().down()); // must be last position - DrillBlockEntity.tick(world, pos, state, dbe, MAXDRILLSTEP, list); - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/EmptyLavaHoarderBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/EmptyLavaHoarderBlockEntity.java deleted file mode 100644 index 468889c..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/EmptyLavaHoarderBlockEntity.java +++ /dev/null @@ -1,84 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.Random; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class EmptyLavaHoarderBlockEntity extends BlockEntity { - - public EmptyLavaHoarderBlockEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.EMPTYLAVAHOARDER, pos, state); - } - - public static final void spawnRandomItems(World world, BlockPos pos, Integer count) { - Integer which = new Random().nextInt(10); - if (which < 1) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.DIAMOND, new Random().nextInt(count + 2)))); - } else if (which < 2) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.EMERALD, new Random().nextInt(count + 1)))); - } else if (which < 3) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.RAW_GOLD, new Random().nextInt(count)))); - } else if (which < 4) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.RAW_IRON, new Random().nextInt(count + 1)))); - } else if (which < 5) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.RAW_COPPER, new Random().nextInt(count + 2)))); - } else if (which < 6) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.OBSIDIAN))); - } else if (which < 7) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LAPIS_LAZULI))); - } else if (which < 8) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(QuickieItems.SULPHOR.getItem()))); - } - } - - /** - * sucks the lava that touches the block - * - * @param world the world - * @param pos the pos - * @return true if lava was found - */ - private boolean suckLava(World world, BlockPos pos) { - if (world == null) { - return false; - } else if (Blocks.LAVA.equals(world.getBlockState(pos).getBlock())) { - world.setBlockState(pos, Blocks.AIR.getDefaultState()); - BlockPos up = pos.up(); - Random random = new Random(); - if (random.nextFloat() > 0.9f) { - spawnRandomItems(world, up, 2); - } - return true; - } - return false; - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof EmptyLavaHoarderBlockEntity) { - EmptyLavaHoarderBlockEntity elhbe = (EmptyLavaHoarderBlockEntity) be; - boolean found = elhbe.suckLava(world, pos.north()); - found = found || elhbe.suckLava(world, pos.south()); - found = found || elhbe.suckLava(world, pos.east()); - found = found || elhbe.suckLava(world, pos.west()); - found = found || elhbe.suckLava(world, pos.up()); - found = found || elhbe.suckLava(world, pos.down()); - if (found) { - world.setBlockState(pos, QuickieBlocks.LAVAHOARDER.getBlock().getDefaultState()); - } - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java index a14665c..6376f66 100644 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java @@ -3,7 +3,6 @@ package de.jottyfan.quickiemod.blockentity; import java.util.ArrayList; import java.util.List; -import de.jottyfan.quickiemod.text.PrefixedText; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.LootableContainerBlockEntity; @@ -30,13 +29,15 @@ import net.minecraft.world.World; * */ public class ItemHoarderBlockEntity extends LootableContainerBlockEntity { + + private DefaultedList stacks; private float suckradius; public ItemHoarderBlockEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.ITEMHOARDER, pos, state); + super(ModBlockentity.ITEM_HOARDER_BLOCKENTITY, pos, state); stacks = DefaultedList.ofSize(54, ItemStack.EMPTY); - setSuckradius(4f); // TODO: make it level up - able and start with 2 + setSuckradius(4f); } // TODO: see https://fabricmc.net/wiki/tutorial:containers for a real chest @@ -136,8 +137,7 @@ public class ItemHoarderBlockEntity extends LootableContainerBlockEntity { for (ItemStack stack : stacks) { Item item = stack.getItem(); if (item != Items.AIR) { - Text text = PrefixedText.instance(String.format("%dx ", stack.getCount()).concat("%s"), - Text.translatable(stack.getTranslationKey())); + Text text = Text.of(String.format("%dx %s", stack.getCount(), Text.translatable(stack.getItem().getTranslationKey()))); list.add(text); } } diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java new file mode 100644 index 0000000..7617111 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/ModBlockentity.java @@ -0,0 +1,31 @@ +package de.jottyfan.quickiemod.blockentity; + +import de.jottyfan.quickiemod.block.ModBlocks; +import de.jottyfan.quickiemod.identifier.ModIdentifiers; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; + +/** + * + * @author jotty + * + */ +public class ModBlockentity { + public static final BlockEntityType ITEM_HOARDER_BLOCKENTITY = Registry.register( + Registries.BLOCK_ENTITY_TYPE, ModIdentifiers.BLOCKENTITY_ITEMHOARDER, + FabricBlockEntityTypeBuilder.create(ItemHoarderBlockEntity::new, ModBlocks.BLOCK_ITEMHOARDER).build()); + public static final BlockEntityType DRILL_BLOCKENTITY = Registry.register( + Registries.BLOCK_ENTITY_TYPE, ModIdentifiers.BLOCKENTITY_DRILL, + FabricBlockEntityTypeBuilder.create(DrillBlockEntity::new, ModBlocks.BLOCK_DRILL_DOWN, ModBlocks.BLOCK_DRILL_EAST, + ModBlocks.BLOCK_DRILL_SOUTH, ModBlocks.BLOCK_DRILL_WEST, ModBlocks.BLOCK_DRILL_NORTH).build()); + public static final BlockEntityType BLOCKSTACKER_BLOCKENTITY = Registry.register( + Registries.BLOCK_ENTITY_TYPE, ModIdentifiers.BLOCKENTITY_BLOCKSTACKER, + FabricBlockEntityTypeBuilder.create(BlockStackerEntity::new, ModBlocks.BLOCK_STACKER_DOWN, + ModBlocks.BLOCK_STACKER_EAST, ModBlocks.BLOCK_STACKER_SOUTH, ModBlocks.BLOCK_STACKER_WEST, + ModBlocks.BLOCK_STACKER_NORTH, ModBlocks.BLOCK_STACKER_UP).build()); + + public static final void registerModBlockentities() { + }; +} diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/MonsterHoarderBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/MonsterHoarderBlockEntity.java deleted file mode 100644 index 9cf34b6..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/MonsterHoarderBlockEntity.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.jottyfan.quickiemod.blockentity; - -import java.util.List; - -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.mob.HostileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class MonsterHoarderBlockEntity extends BlockEntity { - - private float suckradius; - - public MonsterHoarderBlockEntity(BlockPos pos, BlockState state) { - super(BlockEntityTypes.MONSTERHOARDER, pos, state); - setSuckradius(8f); // TODO: make it level up - able and start with 2 - } - - public static void tick(World world, BlockPos pos, BlockState state, BlockEntity be) { - if (be instanceof MonsterHoarderBlockEntity) { - MonsterHoarderBlockEntity mhbe = (MonsterHoarderBlockEntity) be; - Box box = new Box(pos).expand(mhbe.getSuckradius()); - List entities = world.getOtherEntities(null, box); - for (Entity entity : entities) { - if (entity instanceof HostileEntity) { - if (entity.isFireImmune()) { - entity.kill(); - } else { - entity.setOnFireFor(90); - } - } - } - } - } - - public float getSuckradius() { - return suckradius; - } - - public void setSuckradius(float suckradius) { - this.suckradius = suckradius; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java deleted file mode 100644 index 9def8ee..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java +++ /dev/null @@ -1,66 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; -import java.util.Random; - -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.CropBlock; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemConvertible; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BlockCanolaplant extends CropBlock { - - public BlockCanolaplant() { - super(AbstractBlock.Settings.copy(Blocks.WHEAT)); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - DefaultedList list = DefaultedList.of(); - list.add(new ItemStack(getSeedsItem())); // the one from the seed - if (isMature(state)) { - list.add(new ItemStack(getSeedsItem(), new Random().nextInt(2))); - list.add(new ItemStack(QuickieItems.CANOLA.getItem(), new Random().nextFloat() > 0.9f ? 2 : 1)); - } - return list; - } - - private void spawnHarvested(World world, BlockPos pos, BlockState state) { - DefaultedList list = DefaultedList.of(); - getDroppedStacks(state, null).forEach(itemStack -> { - list.add(itemStack); - }); - ItemScatterer.spawn(world, pos, list); - } - - @Override - public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { - spawnHarvested(world, pos, state); - return super.onBreak(world, pos, state, player); - } - - @Override - protected ItemConvertible getSeedsItem() { - return QuickieItems.CANOLASEED.getItem(); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient && isMature(state)) { - spawnHarvested(world, pos, state); - world.setBlockState(pos, state.with(AGE, 0)); - } - return ActionResult.PASS; - } -} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillDown.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillDown.java deleted file mode 100644 index 765f6be..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillDown.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.DrillBlockDownEntity; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockDrillDown extends DrillBlock implements BlockEntityProvider { - - public BlockDrillDown() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new DrillBlockDownEntity(pos, blockState); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILL_DOWN.getBlock())); - return list; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return (world1, pos, state1, be) -> DrillBlockDownEntity.tick(world1, pos, state1, be); - } - - @Override - protected MapCodec getCodec() { - return null; // TODO: what to return here? - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillEast.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillEast.java deleted file mode 100644 index faafa38..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillEast.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.DrillBlockEastEntity; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockDrillEast extends DrillBlock implements BlockEntityProvider { - - public BlockDrillEast() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new DrillBlockEastEntity(pos, blockState); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILL_EAST.getBlock())); - return list; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> DrillBlockEastEntity.tick(world1, pos, state1, be); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillNorth.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillNorth.java deleted file mode 100644 index b226876..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillNorth.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.DrillBlockNorthEntity; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockDrillNorth extends DrillBlock implements BlockEntityProvider { - - public BlockDrillNorth() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new DrillBlockNorthEntity(pos, blockState); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILL_NORTH.getBlock())); - return list; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> DrillBlockNorthEntity.tick(world1, pos, state1, be); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillSouth.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillSouth.java deleted file mode 100644 index 92b73bb..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillSouth.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.DrillBlockSouthEntity; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockDrillSouth extends DrillBlock implements BlockEntityProvider { - - public BlockDrillSouth() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new DrillBlockSouthEntity(pos, blockState); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILL_SOUTH.getBlock())); - return list; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> DrillBlockSouthEntity.tick(world1, pos, state1, be); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillWest.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillWest.java deleted file mode 100644 index d602e9a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillWest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.DrillBlockWestEntity; -import de.jottyfan.quickiemod.blocks.help.DrillBlock; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockDrillWest extends DrillBlock implements BlockEntityProvider { - - public BlockDrillWest() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new DrillBlockWestEntity(pos, blockState); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILL_WEST.getBlock())); - return list; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> DrillBlockWestEntity.tick(world1, pos, state1, be); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillstop.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillstop.java deleted file mode 100644 index f5fc456..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockDrillstop.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; - - -/** - * - * @author jotty - * - */ -public class BlockDrillstop extends Block { - - public BlockDrillstop() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.DRILLSTOP.getBlock())); - return list; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java deleted file mode 100644 index 8d84f20..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockKelpstack.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - -/** - * - * @author jotty - * - */ -public class BlockKelpstack extends FallingBlock { - - public BlockKelpstack() { - super(AbstractBlock.Settings.create().hardness(0.1f).slipperiness(1.0f) - .breakInstantly().sounds(BlockSoundGroup.WET_GRASS)); - } - - @Override - public List getDroppedStacks(BlockState blockState, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(Items.KELP, 9) }); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockLavahoarder.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockLavahoarder.java deleted file mode 100644 index a7b3291..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockLavahoarder.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import de.jottyfan.quickiemod.blockentity.EmptyLavaHoarderBlockEntity; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -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; - -/** - * - * @author jotty - * - */ -public class BlockLavahoarder extends Block implements BlockEntityProvider { - - public BlockLavahoarder() { - super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> 15)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new EmptyLavaHoarderBlockEntity(pos, blockState); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return (world1, pos, state1, be) -> EmptyLavaHoarderBlockEntity.tick(world1, pos, state1, be); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.LAVAHOARDER.getBlock())); - return list; - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - Hand hand = player.getActiveHand(); - ItemStack handStack = player.getStackInHand(hand); - if (handStack != null && Items.BUCKET.equals(handStack.getItem())) { - Integer amount = handStack.getCount(); - ItemStack lavaBucketStack = new ItemStack(Items.LAVA_BUCKET, 1); - ItemStack emptyBucketStack = new ItemStack(Items.BUCKET, amount - 1); - if (emptyBucketStack.getCount() < 1) { - player.setStackInHand(hand, lavaBucketStack); - } else { - player.setStackInHand(hand, emptyBucketStack); - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), lavaBucketStack)); - } - EmptyLavaHoarderBlockEntity.spawnRandomItems(world, pos, 2); - world.setBlockState(pos, QuickieBlocks.EMPTYLAVAHOARDER.getBlock().getDefaultState()); - } - } - return ActionResult.SUCCESS; // forbid to empty the just filled lava bucket - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockMonsterhoarder.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockMonsterhoarder.java deleted file mode 100644 index f635838..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockMonsterhoarder.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.ArrayList; -import java.util.List; - -import de.jottyfan.quickiemod.blockentity.MonsterHoarderBlockEntity; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockMonsterhoarder extends Block implements BlockEntityProvider { - - - public BlockMonsterhoarder() { - super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> 15)); - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { - return new MonsterHoarderBlockEntity(pos, blockState); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ - return (world1, pos, state1, be) -> MonsterHoarderBlockEntity.tick(world1, pos, state1, be); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - List list = new ArrayList<>(); - list.add(new ItemStack(QuickieBlocks.MONSTERHOARDER.getBlock())); - return list; - } - - @Override - public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { - if (!world.isClient) { - world.playSound(null, pos, SoundEvents.UI_TOAST_CHALLENGE_COMPLETE, SoundCategory.PLAYERS, 1f, 1f); - } - super.onPlaced(world, pos, state, placer, itemStack); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java deleted file mode 100644 index 77bf6cd..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreDeepslateSulphor.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - - -/** - * - * @author jotty - * - */ -public class BlockOreDeepslateSulphor extends ExperienceDroppingBlock { - - public BlockOreDeepslateSulphor() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem(), 4) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java deleted file mode 100644 index 8a5da41..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreNetherSulphor.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - -/** - * - * @author jotty - * - */ -public class BlockOreNetherSulphor extends ExperienceDroppingBlock { - - public BlockOreNetherSulphor() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(2.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem()) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java deleted file mode 100644 index ff5f183..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSalpeter.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.util.math.random.Random; - -/** - * - * @author jotty - * - */ -public class BlockOreSalpeter extends ExperienceDroppingBlock { - - public BlockOreSalpeter() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(3.1f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 2 + Random.create().nextInt(3)) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java deleted file mode 100644 index b6c8930..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockOreSulphor.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - - -/** - * - * @author jotty - * - */ -public class BlockOreSulphor extends ExperienceDroppingBlock { - - public BlockOreSulphor() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem()) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java deleted file mode 100644 index daf245d..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSalpeter.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - -/** - * - * @author jotty - * - */ -public class BlockSalpeter extends ExperienceDroppingBlock { - - public BlockSalpeter() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(0.5f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SALPETER.getItem(), 9) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerEast.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerEast.java deleted file mode 100644 index 605726c..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerEast.java +++ /dev/null @@ -1,111 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockStackerEast extends BlockWithEntity implements BlockStacker { - - public BlockStackerEast() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public Direction getSourceOffset() { - return Direction.WEST; - } - - @Override - public Direction getDestOffset() { - return Direction.EAST; - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new BlockStackerEntity(pos, state); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKEREAST.getBlock())); - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, - (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); - if (screenHandlerFactory != null) { - player.openHandledScreen(screenHandlerFactory); - } - } - return ActionResult.SUCCESS; - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof BlockStackerEntity) { - ItemScatterer.spawn(world, pos, (BlockStackerEntity) blockEntity); - // update comparators - world.updateComparators(pos, this); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerNorth.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerNorth.java deleted file mode 100644 index c34cda7..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerNorth.java +++ /dev/null @@ -1,111 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockStackerNorth extends BlockWithEntity implements BlockStacker { - - public BlockStackerNorth() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public Direction getSourceOffset() { - return Direction.SOUTH; - } - - @Override - public Direction getDestOffset() { - return Direction.NORTH; - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new BlockStackerEntity(pos, state); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKERNORTH.getBlock())); - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, - (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); - if (screenHandlerFactory != null) { - player.openHandledScreen(screenHandlerFactory); - } - } - return ActionResult.SUCCESS; - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof BlockStackerEntity) { - ItemScatterer.spawn(world, pos, (BlockStackerEntity) blockEntity); - // update comparators - world.updateComparators(pos, this); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerSouth.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerSouth.java deleted file mode 100644 index afbb7b2..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerSouth.java +++ /dev/null @@ -1,111 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockStackerSouth extends BlockWithEntity implements BlockStacker { - - public BlockStackerSouth() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public Direction getSourceOffset() { - return Direction.NORTH; - } - - @Override - public Direction getDestOffset() { - return Direction.SOUTH; - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new BlockStackerEntity(pos, state); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKERSOUTH.getBlock())); - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, - (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); - if (screenHandlerFactory != null) { - player.openHandledScreen(screenHandlerFactory); - } - } - return ActionResult.SUCCESS; - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof BlockStackerEntity) { - ItemScatterer.spawn(world, pos, (BlockStackerEntity) blockEntity); - // update comparators - world.updateComparators(pos, this); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerUp.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerUp.java deleted file mode 100644 index 67d13e8..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerUp.java +++ /dev/null @@ -1,111 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockStackerUp extends BlockWithEntity implements BlockStacker { - - public BlockStackerUp() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public Direction getSourceOffset() { - return Direction.DOWN; - } - - @Override - public Direction getDestOffset() { - return Direction.UP; - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new BlockStackerEntity(pos, state); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKERUP.getBlock())); - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, - (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); - if (screenHandlerFactory != null) { - player.openHandledScreen(screenHandlerFactory); - } - } - return ActionResult.SUCCESS; - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof BlockStackerEntity) { - ItemScatterer.spawn(world, pos, (BlockStackerEntity) blockEntity); - // update comparators - world.updateComparators(pos, this); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerWest.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerWest.java deleted file mode 100644 index f970db8..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockStackerWest.java +++ /dev/null @@ -1,111 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.List; - -import com.mojang.serialization.MapCodec; - -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blockentity.BlockStackerEntity; -import de.jottyfan.quickiemod.blocks.help.BlockStacker; -import net.minecraft.block.AbstractBlock; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class BlockStackerWest extends BlockWithEntity implements BlockStacker { - - public BlockStackerWest() { - super(AbstractBlock.Settings.create().hardness(2.5f)); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return List.of(new ItemStack(QuickieBlocks.BLOCKSTACKERWEST.getBlock())); - } - - @Override - public Direction getSourceOffset() { - return Direction.EAST; - } - - @Override - public Direction getDestOffset() { - return Direction.WEST; - } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new BlockStackerEntity(pos, state); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public BlockEntityTicker getTicker(World world, BlockState state, - BlockEntityType type) { - return validateTicker(type, BlockEntityTypes.BLOCKSTACKER_ENTITY, - (world1, pos, state1, be) -> BlockStackerEntity.tick(world1, pos, state1, be)); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - if (!world.isClient) { - NamedScreenHandlerFactory screenHandlerFactory = state.createScreenHandlerFactory(world, pos); - if (screenHandlerFactory != null) { - player.openHandledScreen(screenHandlerFactory); - } - } - return ActionResult.SUCCESS; - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (state.getBlock() != newState.getBlock()) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof BlockStackerEntity) { - ItemScatterer.spawn(world, pos, (BlockStackerEntity) blockEntity); - // update comparators - world.updateComparators(pos, this); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - - @Override - protected MapCodec getCodec() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java deleted file mode 100644 index cfe8dd0..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/BlockSulphor.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import java.util.Arrays; -import java.util.List; - -import de.jottyfan.quickiemod.blocks.help.IntProviderHelper; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.ExperienceDroppingBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContextParameterSet.Builder; -import net.minecraft.sound.BlockSoundGroup; - -/** - * - * @author jotty - * - */ -public class BlockSulphor extends ExperienceDroppingBlock { - - public BlockSulphor() { - super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(0.5f).sounds(BlockSoundGroup.SOUL_SAND).requiresTool()); - } - - @Override - public List getDroppedStacks(BlockState state, Builder builder) { - return Arrays.asList(new ItemStack[] { new ItemStack(QuickieItems.SULPHOR.getItem(), 9) }); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java deleted file mode 100644 index 9e34c6a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java +++ /dev/null @@ -1,69 +0,0 @@ -package de.jottyfan.quickiemod.blocks; - -import net.minecraft.block.Block; - -/** - * - * @author jotty - * - */ -public enum QuickieBlocks { - // @formatter:off - BLOCKSTACKERUP(new BlockStackerUp(), "blockstackerup"), - BLOCKSTACKERDOWN(new BlockStackerDown(), "blockstackerdown"), - BLOCKSTACKEREAST(new BlockStackerEast(), "blockstackereast"), - BLOCKSTACKERWEST(new BlockStackerWest(), "blockstackerwest"), - BLOCKSTACKERNORTH(new BlockStackerNorth(), "blockstackernorth"), - BLOCKSTACKERSOUTH(new BlockStackerSouth(), "blockstackersouth"), - DRILL_DOWN(new BlockDrillDown(), "drill"), - DRILL_EAST(new BlockDrillEast(), "drilleast"), - DRILL_SOUTH(new BlockDrillSouth(), "drillsouth"), - DRILL_WEST(new BlockDrillWest(), "drillwest"), - DRILL_NORTH(new BlockDrillNorth(), "drillnorth"), - DRILLSTOP(new BlockDrillstop(), "drillstop"), - MONSTERHOARDER(new BlockMonsterhoarder(), "monsterhoarder"), - ITEMHOARDER(new BlockItemhoarder(), "itemhoarder"), - LAVAHOARDER(new BlockLavahoarder(), "lavahoarder", false), - EMPTYLAVAHOARDER(new BlockEmptyLavahoarder(), "emptylavahoarder"), - KELPSTACK(new BlockKelpstack(), "kelpstack"), - COTTONPLANT(new BlockCottonplant(), "cottonplant", false), - CANOLAPLANT(new BlockCanolaplant(), "canolaplant", false), - DIRTSALPETER(new BlockDirtSalpeter(), "dirtsalpeter"), - ORE_NETHER_SULPHOR(new BlockOreNetherSulphor(), "orenethersulphor"), - ORE_SALPETER(new BlockOreSalpeter(), "oresalpeter"), - ORE_SAND_SALPETER(new BlockSandSalpeter(), "oresandsalpeter"), - ORE_SULPHOR(new BlockOreSulphor(), "oresulphor"), - ORE_DEEPSLATESULPHOR(new BlockOreDeepslateSulphor(), "oredeepslatesulphor"), - SANDSALPETER(new BlockSandSalpeter(), "sandsalpeter"), - BLOCKSULPHOR(new BlockSulphor(), "blocksulphor"), - BLOCKSALPETER(new BlockSalpeter(), "blocksalpeter"), - BLOCKSPEEDPOWDER(new BlockSpeedpowder(), "blockspeedpowder"), - BLOCKQUICKIEPOWDER(new BlockQuickiepowder(), "blockquickiepowder"); - // @formatter:on - - private final Block block; - private final String name; - private final Boolean add2BlockPanel; - - private QuickieBlocks(Block block, String name) { - this(block, name, true); - } - - private QuickieBlocks(Block block, String name, Boolean add2BlockPanel) { - this.block = block; - this.name = name; - this.add2BlockPanel = add2BlockPanel; - } - - public final Block getBlock() { - return block; - } - - public final String getName() { - return name; - } - - public final Boolean getAdd2BlockPanel() { - return add2BlockPanel; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/help/BlockStacker.java b/src/main/java/de/jottyfan/quickiemod/blocks/help/BlockStacker.java deleted file mode 100644 index 582ea1c..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/help/BlockStacker.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.jottyfan.quickiemod.blocks.help; - -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.util.math.Direction; - -/** - * - * @author jotty - * - */ -public interface BlockStacker extends BlockEntityProvider { - /** - * define the source offset - * - * @return the direction of the source offset (1 block beside) - */ - public Direction getSourceOffset(); - - /** - * define the dest offset - * - * @return the direction of the dest offset (1 block beside) - */ - public Direction getDestOffset(); -} diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/help/DrillBlock.java b/src/main/java/de/jottyfan/quickiemod/blocks/help/DrillBlock.java deleted file mode 100644 index 9b5123d..0000000 --- a/src/main/java/de/jottyfan/quickiemod/blocks/help/DrillBlock.java +++ /dev/null @@ -1,78 +0,0 @@ -package de.jottyfan.quickiemod.blocks.help; - -import java.util.HashMap; -import java.util.Map; - -import de.jottyfan.quickiemod.items.QuickieItems; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.state.property.IntProperty; -import net.minecraft.text.Text; -import net.minecraft.util.ActionResult; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public abstract class DrillBlock extends FallingBlock { - private static final Integer MAX_FUEL = 255; - public static final IntProperty FUEL = IntProperty.of("fuel", 0, MAX_FUEL); - - public DrillBlock(Settings settings) { - super(settings); - setDefaultState(getDefaultState().with(FUEL, 0)); - } - - @Override - public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { - Integer fuelLeft = state.get(FUEL); - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(QuickieItems.CANOLABOTTLE.getItem(), fuelLeft))); - return super.onBreak(world, pos, state, player); - } - - @Override - protected void appendProperties(net.minecraft.state.StateManager.Builder builder) { - builder.add(FUEL); - } - - @Override - protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { - Map loadings = new HashMap<>(); - loadings.put(QuickieItems.CANOLABOTTLE.getItem(), 8); - loadings.put(QuickieItems.CANOLABOTTLESTACK.getItem(), 72); - ItemStack stack = player.getStackInHand(player.getActiveHand()); - Item item = stack.getItem(); - if (stack.isEmpty() || !loadings.containsKey(item) ) { - if (world.isClient()) { - player.sendMessage(Text.translatable("msg.drill.fuelinfo", state.get(FUEL))); - } - } else { - Integer fuelWeight = loadings.get(item); - if (fuelWeight != null) { - Integer load = MAX_FUEL - state.get(FUEL); - if (load < fuelWeight) { -// Integer numberOfTooMuchLoad = fuelWeight - load; - fuelWeight = load; - } - world.setBlockState(pos, state.with(FUEL, state.get(FUEL) + fuelWeight)); - if (item.equals(QuickieItems.CANOLABOTTLE.getItem())) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 1))); - } else if (item.equals(QuickieItems.CANOLABOTTLESTACK.getItem())) { - world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.GLASS_BOTTLE, 9))); - } - stack.decrement(1); - } - } - return ActionResult.PASS; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/container/BlockStackerScreen.java b/src/main/java/de/jottyfan/quickiemod/container/BlockStackerScreen.java index d860c97..98a9f35 100644 --- a/src/main/java/de/jottyfan/quickiemod/container/BlockStackerScreen.java +++ b/src/main/java/de/jottyfan/quickiemod/container/BlockStackerScreen.java @@ -1,6 +1,6 @@ package de.jottyfan.quickiemod.container; -import de.jottyfan.quickiemod.QuickieMod; +import de.jottyfan.quickiemod.Quickiemod; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.DrawContext; @@ -18,7 +18,7 @@ import net.minecraft.util.Identifier; @Environment(EnvType.CLIENT) public class BlockStackerScreen extends HandledScreen implements ScreenHandlerProvider { - private final static Identifier TEXTURE = Identifier.of(QuickieMod.MODID, "textures/gui/blockstacker.png"); + private final static Identifier TEXTURE = Identifier.of(Quickiemod.MOD_ID, "textures/gui/blockstacker.png"); private final Integer containerHeight = 222; private final Integer containerWidth = 176; @@ -39,6 +39,6 @@ public class BlockStackerScreen extends HandledScreen int guiX = (this.width - this.containerWidth) / 2; int guiY = (this.height - this.containerHeight) / 2; super.renderInGameBackground(context); - context.drawTexture(TEXTURE, guiX, guiY, 0, 0, containerWidth, containerHeight); +// context.drawTexture(TEXTURE, guiX, guiY, 0f, 0f, containerWidth, containerHeight, 0, 0); } } diff --git a/src/main/java/de/jottyfan/quickiemod/event/BreakBlockCallback.java b/src/main/java/de/jottyfan/quickiemod/event/BreakBlockCallback.java deleted file mode 100644 index b1ab672..0000000 --- a/src/main/java/de/jottyfan/quickiemod/event/BreakBlockCallback.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.jottyfan.quickiemod.event; - -import net.fabricmc.fabric.api.event.Event; -import net.fabricmc.fabric.api.event.EventFactory; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public interface BreakBlockCallback { - Event EVENT = EventFactory.createArrayBacked(BreakBlockCallback.class, - (listeners) -> (world, blockPos, blockState, playerEntity) -> { - for (BreakBlockCallback listener : listeners) { - ActionResult result = listener.injectBlockBreakCallback(world, blockPos, blockState, playerEntity); - if (result != ActionResult.PASS) { - return result; - } - } - return ActionResult.PASS; - }); - - ActionResult injectBlockBreakCallback(World world, BlockPos blockPos, BlockState blockState, PlayerEntity playerEntity); -} diff --git a/src/main/java/de/jottyfan/quickiemod/event/EventBlockBreak.java b/src/main/java/de/jottyfan/quickiemod/event/EventBlockBreak.java index 19620bf..e0de73e 100644 --- a/src/main/java/de/jottyfan/quickiemod/event/EventBlockBreak.java +++ b/src/main/java/de/jottyfan/quickiemod/event/EventBlockBreak.java @@ -3,13 +3,10 @@ package de.jottyfan.quickiemod.event; import java.util.ArrayList; import java.util.List; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import de.jottyfan.quickiemod.QuickieMod; -import de.jottyfan.quickiemod.items.HarvestRange; -import de.jottyfan.quickiemod.items.QuickieItems; -import de.jottyfan.quickiemod.items.ToolRangeable; +import de.jottyfan.quickiemod.item.HarvestRange; +import de.jottyfan.quickiemod.item.ModItems; +import de.jottyfan.quickiemod.item.ToolRangeable; +import de.jottyfan.quickiemod.item.ToolSpeedpowderAxe; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -27,20 +24,21 @@ import net.minecraft.world.World; * */ public class EventBlockBreak { - private static final Logger LOGGER = LogManager.getLogger(QuickieMod.MODID); - private enum BlockBreakDirection { UPWARDS, ALL; } - public void doBreakBlock(World world, BlockPos blockPos, BlockState blockState, PlayerEntity playerEntity) { + public void doBreakBlock(World world, BlockPos blockPos, BlockState blockState, PlayerEntity playerEntity, Block oldBlock) { ItemStack mainHandItemStack = playerEntity.getEquippedStack(EquipmentSlot.MAINHAND); if (mainHandItemStack != null) { Item item = mainHandItemStack.getItem(); if (item instanceof ToolRangeable) { ToolRangeable tool = (ToolRangeable) item; - Block block = blockState.getBlock(); - int handled = handleRangeableTools(tool, mainHandItemStack, world, block, blockPos, playerEntity); + if (!world.getBlockState(blockPos).getBlock().equals(oldBlock)) { + // recreate old block to make it breakable; otherwise, the recursive algorithm stops directly + world.setBlockState(blockPos, oldBlock.getDefaultState()); + } + int handled = handleRangeableTools(tool, mainHandItemStack, world, oldBlock, blockPos, playerEntity); if (handled >= 255) { // reward for using rangeable tool very successful world.spawnEntity( @@ -65,32 +63,30 @@ public class EventBlockBreak { BlockPos pos, PlayerEntity player) { List validBlocks = tool.getBlockList(currentBlock); HarvestRange range = tool.getRange(itemStack); - - LOGGER.debug("current tool: {}", tool); - - if (QuickieItems.SPEEDPOWDERAXE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS, + List visitedBlocks = new ArrayList<>(); + if (tool instanceof ToolSpeedpowderAxe) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS, player, true); - } else if (QuickieItems.SPEEDPOWDERPICKAXE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_SPEEDPOWDERPICKAXE.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); - } else if (QuickieItems.SPEEDPOWDERSHOVEL.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_SPEEDPOWDERSHOVEL.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); - } else if (QuickieItems.SPEEDPOWDERHOE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_SPEEDPOWDERHOE.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); - } else if (QuickieItems.QUICKIEPOWDERAXE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS, + } else if (ModItems.TOOL_QUICKIEPOWDERAXE.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.UPWARDS, player, true); - } else if (QuickieItems.QUICKIEPOWDERPICKAXE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_QUICKIEPOWDERPICKAXE.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); - } else if (QuickieItems.QUICKIEPOWDERSHOVEL.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_QUICKIEPOWDERSHOVEL.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); - } else if (QuickieItems.QUICKIEPOWDERHOE.getItem().equals(tool)) { - return breakBlockRecursive(new ArrayList<>(), world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, + } else if (ModItems.TOOL_QUICKIEPOWDERHOE.getName().equals(tool.getName())) { + return breakBlockRecursive(visitedBlocks, world, validBlocks, pos, tool, range, BlockBreakDirection.ALL, player, false); } else { return 0; @@ -113,6 +109,7 @@ public class EventBlockBreak { private int breakBlockRecursive(List visitedBlocks, World world, List validBlocks, BlockPos pos, ToolRangeable tool, HarvestRange range, BlockBreakDirection blockBreakDirection, PlayerEntity player, boolean breakLeaves) { + boolean ignoreSpawn = visitedBlocks.size() < 1; // with this, the already broken block can be omitted to spawn if (visitedBlocks.contains(pos.toString())) { return 0; } else if (validBlocks == null) { @@ -125,7 +122,9 @@ public class EventBlockBreak { if (tool.canBreakNeighbors(blockState)) { Block currentBlock = blockState.getBlock(); if (validBlocks.contains(currentBlock)) { - Block.dropStacks(blockState, world, pos); // includes xorbs + if (!ignoreSpawn) { + Block.dropStacks(blockState, world, pos); // includes xorbs + } affected += 1; world.setBlockState(pos, Blocks.AIR.getDefaultState()); if (range == null || range.getxRange() > 1 || range.getyRange() > 1 || range.getzRange() > 1) { diff --git a/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java b/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java new file mode 100644 index 0000000..30350e4 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java @@ -0,0 +1,66 @@ +package de.jottyfan.quickiemod.feature; + +import de.jottyfan.quickiemod.Quickiemod; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.fabricmc.fabric.api.biome.v1.ModificationPhase; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.PlacedFeature; + +/** + * + * @author jotty + * + */ +public class ModFeatures { + + public static final RegistryKey> CF_ORESULFUR = genCf("oresulphor"); + public static final RegistryKey> CF_OREDEEPSLATESULFUR = genCf("oredepslatesulphor"); + public static final RegistryKey> CF_ORESALPETER = genCf("oresalpeter"); + public static final RegistryKey> CF_ORENETHERSULPHOR = genCf("orenethersulphore"); + public static final RegistryKey> CF_BLOCKSULPHOR = genCf("blocksulphor"); + public static final RegistryKey> CF_DIRTSALPETER = genCf("dirtsalpeter"); + public static final RegistryKey> CF_SANDSALPETER = genCf("sandsalpeter"); + public static final RegistryKey> CF_ORESANDSALPETER = genCf("oresandsalpeter"); + + public static final RegistryKey PF_ORESULPHOR = genPf("oresulphor"); + public static final RegistryKey PF_OREDEEPSLATESULPHOR = genPf("oredeepslatesulphor"); + public static final RegistryKey PF_ORESALPETER = genPf("oresalpeter"); + public static final RegistryKey PF_ORENETHERSULPHOR = genPf("orenethersulphor"); + public static final RegistryKey PF_BLOCKSULPHOR = genPf("blocksulphor"); + public static final RegistryKey PF_DIRTSALPETER = genPf("dirtsalpeter"); + public static final RegistryKey PF_SANDSALPETER = genPf("sandsalpeter"); + public static final RegistryKey PF_ORESANDSALPETER = genPf("oresandsalpeter"); + + private static final RegistryKey> genCf(String name) { + return RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, Identifier.of(Quickiemod.MOD_ID, name)); + } + + private static final RegistryKey genPf(String name) { + return RegistryKey.of(RegistryKeys.PLACED_FEATURE, Identifier.of(Quickiemod.MOD_ID, name)); + } + + public static final void registerFeatures() { + // Overworld features + BiomeModifications.create(Identifier.of(Quickiemod.MOD_ID, "features")).add(ModificationPhase.ADDITIONS, + BiomeSelectors.foundInOverworld(), (bsc, bmc) -> { + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESULPHOR); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_DIRTSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_SANDSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESANDSALPETER); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_OREDEEPSLATESULPHOR); + }); + + // Nether features + BiomeModifications.create(Identifier.of(Quickiemod.MOD_ID, "nether_features")).add(ModificationPhase.ADDITIONS, + BiomeSelectors.foundInTheNether(), (bsc, bmc) -> { + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORENETHERSULPHOR); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR); + }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java new file mode 100644 index 0000000..6efffe8 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java @@ -0,0 +1,77 @@ +package de.jottyfan.quickiemod.identifier; + +import de.jottyfan.quickiemod.Quickiemod; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ModIdentifiers { + public static final Identifier ITEM_STUB = Identifier.of(Quickiemod.MOD_ID, "stub"); + public static final Identifier ITEM_SPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "speedpowder"); + public static final Identifier ITEM_QUICKIEPOWDER = Identifier.of(Quickiemod.MOD_ID, "quickiepowder"); + public static final Identifier ITEM_SALPETER = Identifier.of(Quickiemod.MOD_ID, "salpeter"); + public static final Identifier ITEM_SULFOR = Identifier.of(Quickiemod.MOD_ID, "sulphor"); + public static final Identifier ITEM_OXIDIZEDCOPPERPOWDER = Identifier.of(Quickiemod.MOD_ID, "oxidizedcopperpowder"); + public static final Identifier ITEM_SPEEDINGOT = Identifier.of(Quickiemod.MOD_ID, "speedingot"); + public static final Identifier ITEM_QUICKIEINGOT = Identifier.of(Quickiemod.MOD_ID, "quickieingot"); + public static final Identifier ITEM_CARROTSTACK = Identifier.of(Quickiemod.MOD_ID, "carrotstack"); + public static final Identifier ITEM_ROTTENFLESHSTRIPES = Identifier.of(Quickiemod.MOD_ID, "rotten_flesh_stripes"); + public static final Identifier ITEM_COTTON = Identifier.of(Quickiemod.MOD_ID, "cotton"); + public static final Identifier ITEM_COTTONPLANT = Identifier.of(Quickiemod.MOD_ID, "cottonplant"); + public static final Identifier ITEM_COTTONSEED = Identifier.of(Quickiemod.MOD_ID, "cottonseed"); + public static final Identifier ITEM_CANOLA = Identifier.of(Quickiemod.MOD_ID, "canola"); + public static final Identifier ITEM_CANOLAPLANT = Identifier.of(Quickiemod.MOD_ID, "canolaplant"); + public static final Identifier ITEM_CANOLASEED = Identifier.of(Quickiemod.MOD_ID, "canolaseed"); + public static final Identifier ITEM_CANOLABOTTLE = Identifier.of(Quickiemod.MOD_ID, "canolabottle"); + public static final Identifier ITEM_CANOLABOTTLESTACK = Identifier.of(Quickiemod.MOD_ID, "canolabottlestack"); + + public static final Identifier TOOL_SPEEDPOWDERAXE = Identifier.of(Quickiemod.MOD_ID, "speedpowderaxe"); + public static final Identifier TOOL_SPEEDPOWDERHOE = Identifier.of(Quickiemod.MOD_ID, "speedpowderhoe"); + public static final Identifier TOOL_SPEEDPOWDERPICKAXE = Identifier.of(Quickiemod.MOD_ID, "speedpowderpickaxe"); + public static final Identifier TOOL_SPEEDPOWDERSHEARS = Identifier.of(Quickiemod.MOD_ID, "speedpowdershears"); + public static final Identifier TOOL_SPEEDPOWDERSHOVEL = Identifier.of(Quickiemod.MOD_ID, "speedpowdershovel"); + public static final Identifier TOOL_SPEEDPOWDERWATERHOE = Identifier.of(Quickiemod.MOD_ID, "speedpowderwaterhoe"); + public static final Identifier TOOL_QUICKIEPOWDERAXE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderaxe"); + public static final Identifier TOOL_QUICKIEPOWDERHOE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderhoe"); + public static final Identifier TOOL_QUICKIEPOWDERPICKAXE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderpickaxe"); + public static final Identifier TOOL_QUICKIEPOWDERSHOVEL = Identifier.of(Quickiemod.MOD_ID, "quickiepowdershovel"); + public static final Identifier TOOL_QUICKIEPOWDERWATERHOE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderwaterhoe"); + + public static final Identifier BLOCK_QUICKIEPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockquickiepowder"); + public static final Identifier BLOCK_SPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockspeedpowder"); + public static final Identifier BLOCK_SALPETER = Identifier.of(Quickiemod.MOD_ID, "blocksalpeter"); + public static final Identifier BLOCK_SULFOR = Identifier.of(Quickiemod.MOD_ID, "blocksulphor"); + public static final Identifier BLOCK_MONSTERHOARDER = Identifier.of(Quickiemod.MOD_ID, "monsterhoarder"); + public static final Identifier BLOCK_LAVAHOARDER = Identifier.of(Quickiemod.MOD_ID, "lavahoarder"); + public static final Identifier BLOCK_EMPTYLAVAHOARDER = Identifier.of(Quickiemod.MOD_ID, "emptylavahoarder"); + public static final Identifier BLOCK_ITEMHOARDER = Identifier.of(Quickiemod.MOD_ID, "itemhoarder"); + public static final Identifier BLOCK_DIRTSALPETER = Identifier.of(Quickiemod.MOD_ID, "dirtsalpeter"); + public static final Identifier BLOCK_OREDEEPSLATESULFOR = Identifier.of(Quickiemod.MOD_ID, "oredeepslatesulphor"); + public static final Identifier BLOCK_ORENETHERSULFOR = Identifier.of(Quickiemod.MOD_ID, "orenethersulphor"); + public static final Identifier BLOCK_ORESALPETER = Identifier.of(Quickiemod.MOD_ID, "oresalpeter"); + public static final Identifier BLOCK_ORESANDSALPETER = Identifier.of(Quickiemod.MOD_ID, "oresandsalpeter"); + public static final Identifier BLOCK_ORESULFOR = Identifier.of(Quickiemod.MOD_ID, "oresulphor"); + public static final Identifier BLOCK_SANDSALPETER = Identifier.of(Quickiemod.MOD_ID, "sandsalpeter"); + public static final Identifier BLOCK_KELPSTACK = Identifier.of(Quickiemod.MOD_ID, "kelpstack"); + public static final Identifier BLOCK_COTTONPLANT = Identifier.of(Quickiemod.MOD_ID, "blockcottonplant"); + public static final Identifier BLOCK_CANOLAPLANT = Identifier.of(Quickiemod.MOD_ID, "blockcanolaplant"); + public static final Identifier BLOCK_DRILLDOWN = Identifier.of(Quickiemod.MOD_ID, "drill"); + public static final Identifier BLOCK_DRILLEAST = Identifier.of(Quickiemod.MOD_ID, "drilleast"); + public static final Identifier BLOCK_DRILLSOUTH = Identifier.of(Quickiemod.MOD_ID, "drillsouth"); + public static final Identifier BLOCK_DRILLWEST = Identifier.of(Quickiemod.MOD_ID, "drillwest"); + public static final Identifier BLOCK_DRILLNORTH = Identifier.of(Quickiemod.MOD_ID, "drillnorth"); + public static final Identifier BLOCK_STACKERDOWN = Identifier.of(Quickiemod.MOD_ID, "blockstackerdown"); + public static final Identifier BLOCK_STACKEREAST = Identifier.of(Quickiemod.MOD_ID, "blockstackereast"); + public static final Identifier BLOCK_STACKERSOUTH = Identifier.of(Quickiemod.MOD_ID, "blockstackersouth"); + public static final Identifier BLOCK_STACKERWEST = Identifier.of(Quickiemod.MOD_ID, "blockstackerwest"); + public static final Identifier BLOCK_STACKERNORTH = Identifier.of(Quickiemod.MOD_ID, "blockstackernorth"); + public static final Identifier BLOCK_STACKERUP = Identifier.of(Quickiemod.MOD_ID, "blockstackerup"); + + public static final Identifier BLOCKENTITY_ITEMHOARDER = Identifier.of(Quickiemod.MOD_ID, "itemhoarderblockentity"); + public static final Identifier BLOCKENTITY_BLOCKSTACKER = Identifier.of(Quickiemod.MOD_ID, "blockstackerblockentity"); + public static final Identifier BLOCKENTITY_DRILL = Identifier.of(Quickiemod.MOD_ID, "drillblockentity"); + public static final Identifier BLOCKSTACKERUP = Identifier.of(Quickiemod.MOD_ID, "blockstackerblockentity"); +} diff --git a/src/main/java/de/jottyfan/quickiemod/init/BlockEntityIdentity.java b/src/main/java/de/jottyfan/quickiemod/init/BlockEntityIdentity.java deleted file mode 100644 index 99d22b3..0000000 --- a/src/main/java/de/jottyfan/quickiemod/init/BlockEntityIdentity.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.jottyfan.quickiemod.init; - -import de.jottyfan.quickiemod.QuickieMod; -import net.minecraft.util.Identifier; - -/** - * - * @author jotty - * - */ -public class BlockEntityIdentity { - public static final Identifier ITEMHOARDER = Identifier.of(QuickieMod.MODID, "itemhoarderblockentity"); - public static final Identifier BLOCKSPREADER = Identifier.of(QuickieMod.MODID, "blockspreaderblockentity"); - public static final Identifier BLOCKSTACKERUP = Identifier.of(QuickieMod.MODID, "blockstackerblockentity"); - public static final Identifier MONSTERHOARDER = Identifier.of(QuickieMod.MODID, "monsterhoarderblockentity"); - public static final Identifier EMPTYLAVALHOARDER = Identifier.of(QuickieMod.MODID, "emptylavahoarderblockentity"); - public static final Identifier DRILL_DOWN = Identifier.of(QuickieMod.MODID, "drillblockdownblockentity"); - public static final Identifier DRILL_EAST = Identifier.of(QuickieMod.MODID, "drillblockeastblockentity"); - public static final Identifier DRILL_SOUTH = Identifier.of(QuickieMod.MODID, "drillblocksouthblockentity"); - public static final Identifier DRILL_WEST = Identifier.of(QuickieMod.MODID, "drillblockwestblockentity"); - public static final Identifier DRILL_NORTH = Identifier.of(QuickieMod.MODID, "drillblocknorthblockentity"); -} diff --git a/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java b/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java deleted file mode 100644 index 234881b..0000000 --- a/src/main/java/de/jottyfan/quickiemod/init/FeaturesManager.java +++ /dev/null @@ -1,66 +0,0 @@ -package de.jottyfan.quickiemod.init; - -import java.util.function.BiConsumer; - -import de.jottyfan.quickiemod.QuickieMod; -import net.fabricmc.fabric.api.biome.v1.BiomeModificationContext; -import net.fabricmc.fabric.api.biome.v1.BiomeSelectionContext; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.ConfiguredFeature; -import net.minecraft.world.gen.feature.PlacedFeature; - -/** - * - * @author jotty - * - */ -public class FeaturesManager { - - public static final RegistryKey> CF_ORESULFUR = genCf("oresulphor"); - public static final RegistryKey> CF_OREDEEPSLATESULFUR = genCf("oredepslatesulphor"); - public static final RegistryKey> CF_ORESALPETER = genCf("oresalpeter"); - public static final RegistryKey> CF_ORENETHERSULPHOR = genCf("orenethersulphore"); - public static final RegistryKey> CF_BLOCKSULPHOR = genCf("blocksulphor"); - public static final RegistryKey> CF_DIRTSALPETER = genCf("dirtsalpeter"); - public static final RegistryKey> CF_SANDSALPETER = genCf("sandsalpeter"); - public static final RegistryKey> CF_ORESANDSALPETER = genCf("oresandsalpeter"); - - public static final RegistryKey PF_ORESULPHOR = genPf("oresulphor"); - public static final RegistryKey PF_OREDEEPSLATESULPHOR = genPf("oredeepslatesulphor"); - public static final RegistryKey PF_ORESALPETER = genPf("oresalpeter"); - public static final RegistryKey PF_ORENETHERSULPHOR = genPf("orenethersulphor"); - public static final RegistryKey PF_BLOCKSULPHOR = genPf("blocksulphor"); - public static final RegistryKey PF_DIRTSALPETER = genPf("dirtsalpeter"); - public static final RegistryKey PF_SANDSALPETER = genPf("sandsalpeter"); - public static final RegistryKey PF_ORESANDSALPETER = genPf("oresandsalpeter"); - - private static final RegistryKey> genCf(String name) { - return RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, Identifier.of(QuickieMod.MODID, name)); - } - - private static final RegistryKey genPf(String name) { - return RegistryKey.of(RegistryKeys.PLACED_FEATURE, Identifier.of(QuickieMod.MODID, name)); - } - - protected static final BiConsumer overworldOres() { - return (bsc, bmc) -> { - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESULPHOR); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESALPETER); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_DIRTSALPETER); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_SANDSALPETER); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESANDSALPETER); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_OREDEEPSLATESULPHOR); - }; - } - - protected static final BiConsumer netherOres() { - return (bsc, bmc) -> { - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORENETHERSULPHOR); - bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_BLOCKSULPHOR); - }; - } - -} diff --git a/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java b/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java deleted file mode 100644 index 02e3f3a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java +++ /dev/null @@ -1,102 +0,0 @@ -package de.jottyfan.quickiemod.init; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import de.jottyfan.quickiemod.QuickieMod; -import de.jottyfan.quickiemod.blockentity.BlockEntityTypes; -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import de.jottyfan.quickiemod.event.BreakBlockCallback; -import de.jottyfan.quickiemod.event.EventBlockBreak; -import de.jottyfan.quickiemod.items.QuickieItems; -import net.fabricmc.fabric.api.biome.v1.BiomeModifications; -import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; -import net.fabricmc.fabric.api.biome.v1.ModificationPhase; -import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; -import net.fabricmc.fabric.api.registry.FuelRegistry; -import net.minecraft.block.ComposterBlock; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item.Settings; -import net.minecraft.item.ItemStack; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.text.Text; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Identifier; - -/** - * - * @author jotty - * - */ -public class RegistryManager { - private static final Logger LOGGER = LoggerFactory.getLogger(QuickieMod.MODID); - - public static final void registerItemGroup() { - Registry.register(Registries.ITEM_GROUP, RegistryKey.of(RegistryKeys.ITEM_GROUP, Identifier.of(QuickieMod.MODID, "itemgroups")), - FabricItemGroup.builder().icon(() -> new ItemStack(QuickieItems.ROTTEN_FLESH_STRIPES.getItem())).displayName(Text.literal(QuickieMod.MODID)) - .entries((enabledFeatures, stacks) -> { - for (QuickieItems i : QuickieItems.values()) { - stacks.add(new ItemStack(i.getItem())); - } - for (QuickieBlocks b : QuickieBlocks.values()) { - if (b.getAdd2BlockPanel()) { - stacks.add(new ItemStack(b.getBlock())); - } - } - }).build()); - } - - public static final void registerItems() { - LOGGER.info("registering items"); - for (QuickieItems i : QuickieItems.values()) { - Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, i.getName()), i.getItem()); - } - ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTONSEED.getItem(), 0.5f); - ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTON.getItem(), 0.75f); - ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.CANOLASEED.getItem(), 0.5f); - ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.CANOLA.getItem(), 0.75f); - FuelRegistry.INSTANCE.add(QuickieItems.SULPHOR.getItem(), 200); - FuelRegistry.INSTANCE.add(QuickieBlocks.BLOCKSULPHOR.getBlock(), 2000); - } - - public static final void registerBlocks() { - LOGGER.info("registering blocks"); - for (QuickieBlocks b : QuickieBlocks.values()) { - Registry.register(Registries.BLOCK, Identifier.of(QuickieMod.MODID, b.getName()), b.getBlock()); - Registry.register(Registries.ITEM, Identifier.of(QuickieMod.MODID, b.getName()), new BlockItem(b.getBlock(), new Settings())); - } - } - - public static final void registerFeatures() { - // Overworld features - BiomeModifications.create(Identifier.of(QuickieMod.MODID, "features")).add(ModificationPhase.ADDITIONS, BiomeSelectors.foundInOverworld(), - FeaturesManager.overworldOres()); - - // Nether features - BiomeModifications.create(Identifier.of(QuickieMod.MODID, "nether_features")).add(ModificationPhase.ADDITIONS, BiomeSelectors.foundInTheNether(), - FeaturesManager.netherOres()); - } - - public static final void registerEvents() { - LOGGER.info("registering events"); - BreakBlockCallback.EVENT.register((world, blockPos, blockState, playerEntity) -> { - new EventBlockBreak().doBreakBlock(world, blockPos, blockState, playerEntity); - return ActionResult.SUCCESS; - }); - } - - public static final void registerBlockEntityTypes() { - try { - Class.forName(BlockEntityTypes.class.getName()); - LOGGER.info("registering block entity types"); - } catch (ClassNotFoundException e) { - LOGGER.error("class BlockEntityType not loaded", e); - } - } - - public static final void registerScreenHandlerTypes() { - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/item/AbstractIdentifiedItem.java b/src/main/java/de/jottyfan/quickiemod/item/AbstractIdentifiedItem.java new file mode 100644 index 0000000..0bc8bda --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/AbstractIdentifiedItem.java @@ -0,0 +1,20 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.item.Item; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public abstract class AbstractIdentifiedItem extends Item { + + public AbstractIdentifiedItem(Identifier identifier, Integer maxCount) { + super(new Item.Settings().maxCount(maxCount).useItemPrefixedTranslationKey() + .registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/HarvestRange.java b/src/main/java/de/jottyfan/quickiemod/item/HarvestRange.java similarity index 86% rename from src/main/java/de/jottyfan/quickiemod/items/HarvestRange.java rename to src/main/java/de/jottyfan/quickiemod/item/HarvestRange.java index 4e5efc3..5cc17e1 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/HarvestRange.java +++ b/src/main/java/de/jottyfan/quickiemod/item/HarvestRange.java @@ -1,9 +1,9 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.io.Serializable; /** - * + * * @author jotty * */ @@ -19,7 +19,7 @@ public class HarvestRange implements Serializable { this.yRange = xyzRange; this.zRange = xyzRange; } - + public HarvestRange(int[] xyzRange) { super(); this.xRange = xyzRange[0]; @@ -34,9 +34,18 @@ public class HarvestRange implements Serializable { this.zRange = zRange; } + @Override + public String toString() { + StringBuilder buf = new StringBuilder(); + buf.append(xRange).append(":"); + buf.append(yRange).append(":"); + buf.append(zRange).append(":"); + return buf.toString(); + } + /** * add i to x, y and z and return the resulting class as a new one - * + * * @param i * the summand * @return the new class @@ -44,10 +53,10 @@ public class HarvestRange implements Serializable { public HarvestRange addXYZ(int i) { return new HarvestRange(xRange + i, yRange + i, zRange + i); } - + /** * get range as int array - * + * * @return the int array */ public int[] getRangeAsArray() { diff --git a/src/main/java/de/jottyfan/quickiemod/item/Item64Stack.java b/src/main/java/de/jottyfan/quickiemod/item/Item64Stack.java new file mode 100644 index 0000000..2ca2b1d --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/Item64Stack.java @@ -0,0 +1,16 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class Item64Stack extends AbstractIdentifiedItem { + + public Item64Stack(Identifier identifier) { + super(identifier, 64); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ItemSeed.java b/src/main/java/de/jottyfan/quickiemod/item/ItemSeed.java new file mode 100644 index 0000000..e79bfdf --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ItemSeed.java @@ -0,0 +1,45 @@ +package de.jottyfan.quickiemod.item; + +import de.jottyfan.quickiemod.Quickiemod; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.registry.Registries; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class ItemSeed extends Item64Stack { + + private Identifier plant; + + public ItemSeed(Identifier identifier, Identifier plant) { + super(identifier); + this.plant = plant; + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + BlockPos pos = context.getBlockPos(); + World world = context.getWorld(); + if (this.asItem().equals(context.getStack().getItem())) { + BlockState state = world.getBlockState(pos); + if (Registries.BLOCK.containsId(plant)) { + if (Blocks.FARMLAND.equals(state.getBlock()) && world.getBlockState(pos.up()).isAir()) { + world.setBlockState(pos.up(), Registries.BLOCK.get(plant).getDefaultState()); + context.getStack().decrement(1); + } else { + Quickiemod.LOGGER.error("could not find block {} in Registries...", plant.toShortTranslationKey()); + } + } + } + return super.useOnBlock(context); + } + +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ModItems.java b/src/main/java/de/jottyfan/quickiemod/item/ModItems.java new file mode 100644 index 0000000..e3626ee --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ModItems.java @@ -0,0 +1,117 @@ +package de.jottyfan.quickiemod.item; + +import java.util.ArrayList; +import java.util.List; + +import de.jottyfan.quickiemod.Quickiemod; +import de.jottyfan.quickiemod.identifier.ModIdentifiers; +import net.minecraft.item.Item; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ModItems { + public static final Item ITEM_STUB = registerItem(ModIdentifiers.ITEM_STUB, + new Item64Stack(ModIdentifiers.ITEM_STUB)); + public static final Item ITEM_SPEEDPOWDER = registerItem(ModIdentifiers.ITEM_SPEEDPOWDER, + new Item64Stack(ModIdentifiers.ITEM_SPEEDPOWDER)); + public static final Item ITEM_QUICKIEPOWDER = registerItem(ModIdentifiers.ITEM_QUICKIEPOWDER, + new Item64Stack(ModIdentifiers.ITEM_QUICKIEPOWDER)); + public static final Item ITEM_SALPETER = registerItem(ModIdentifiers.ITEM_SALPETER, + new Item64Stack(ModIdentifiers.ITEM_SALPETER)); + public static final Item ITEM_SULFOR = registerItem(ModIdentifiers.ITEM_SULFOR, + new Item64Stack(ModIdentifiers.ITEM_SULFOR)); + public static final Item ITEM_OXIDIZEDCOPPERPOWDER = registerItem(ModIdentifiers.ITEM_OXIDIZEDCOPPERPOWDER, + new Item64Stack(ModIdentifiers.ITEM_OXIDIZEDCOPPERPOWDER)); + public static final Item ITEM_SPEEDINGOT = registerItem(ModIdentifiers.ITEM_SPEEDINGOT, + new Item64Stack(ModIdentifiers.ITEM_SPEEDINGOT)); + public static final Item ITEM_QUICKIEINGOT = registerItem(ModIdentifiers.ITEM_QUICKIEINGOT, + new Item64Stack(ModIdentifiers.ITEM_QUICKIEINGOT)); + public static final Item ITEM_CARROTSTACK = registerItem(ModIdentifiers.ITEM_CARROTSTACK, + new Item64Stack(ModIdentifiers.ITEM_CARROTSTACK)); + public static final Item ITEM_ROTTENFLESHSTRIPES = registerItem(ModIdentifiers.ITEM_ROTTENFLESHSTRIPES, + new Item64Stack(ModIdentifiers.ITEM_ROTTENFLESHSTRIPES)); + public static final Item ITEM_COTTON = registerItem(ModIdentifiers.ITEM_COTTON, + new Item64Stack(ModIdentifiers.ITEM_COTTON)); + public static final Item ITEM_COTTONPLANT = registerItem(ModIdentifiers.ITEM_COTTONPLANT, + new Item64Stack(ModIdentifiers.BLOCK_COTTONPLANT)); + public static final Item ITEM_COTTONSEED = registerItem(ModIdentifiers.ITEM_COTTONSEED, + new ItemSeed(ModIdentifiers.ITEM_COTTONSEED, ModIdentifiers.BLOCK_COTTONPLANT)); + public static final Item ITEM_CANOLA = registerItem(ModIdentifiers.ITEM_CANOLA, + new Item64Stack(ModIdentifiers.ITEM_CANOLA)); + public static final Item ITEM_CANOLAPLANT = registerItem(ModIdentifiers.ITEM_CANOLAPLANT, + new Item64Stack(ModIdentifiers.BLOCK_CANOLAPLANT)); + public static final Item ITEM_CANOLASEED = registerItem(ModIdentifiers.ITEM_CANOLASEED, + new ItemSeed(ModIdentifiers.ITEM_CANOLASEED, ModIdentifiers.BLOCK_CANOLAPLANT)); + public static final Item ITEM_CANOLABOTTLE = registerItem(ModIdentifiers.ITEM_CANOLABOTTLE, + new Item64Stack(ModIdentifiers.ITEM_CANOLABOTTLE)); + public static final Item ITEM_CANOLABOTTLESTACK = registerItem(ModIdentifiers.ITEM_CANOLABOTTLESTACK, + new Item64Stack(ModIdentifiers.ITEM_CANOLABOTTLESTACK)); + + public static final Item TOOL_SPEEDPOWDERAXE = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERAXE, + new ToolSpeedpowderAxe(ModIdentifiers.TOOL_SPEEDPOWDERAXE)); + public static final Item TOOL_SPEEDPOWDERHOE = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERHOE, + new ToolSpeedpowderHoe(ModIdentifiers.TOOL_SPEEDPOWDERHOE)); + public static final Item TOOL_SPEEDPOWDERPICKAXE = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERPICKAXE, + new ToolSpeedpowderPickaxe(ModIdentifiers.TOOL_SPEEDPOWDERPICKAXE)); + public static final Item TOOL_SPEEDPOWDERSHEARS = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERSHEARS, + new ToolSpeedpowderShears(ModIdentifiers.TOOL_SPEEDPOWDERSHEARS)); + public static final Item TOOL_SPEEDPOWDERSHOVEL = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERSHOVEL, + new ToolSpeedpowderShovel(ModIdentifiers.TOOL_SPEEDPOWDERSHOVEL)); + public static final Item TOOL_SPEEDPOWDERWATERHOE = registerItem(ModIdentifiers.TOOL_SPEEDPOWDERWATERHOE, + new ToolSpeedpowderWaterHoe(ModIdentifiers.TOOL_SPEEDPOWDERWATERHOE)); + public static final Item TOOL_QUICKIEPOWDERAXE = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERAXE, + new ToolQuickiepowderAxe(ModIdentifiers.TOOL_QUICKIEPOWDERAXE)); + public static final Item TOOL_QUICKIEPOWDERHOE = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERHOE, + new ToolQuickiepowderHoe(ModIdentifiers.TOOL_QUICKIEPOWDERHOE)); + public static final Item TOOL_QUICKIEPOWDERPICKAXE = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERPICKAXE, + new ToolQuickiepowderPickaxe(ModIdentifiers.TOOL_QUICKIEPOWDERPICKAXE)); + public static final Item TOOL_QUICKIEPOWDERSHOVEL = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERSHOVEL, + new ToolQuickiepowderShovel(ModIdentifiers.TOOL_QUICKIEPOWDERSHOVEL)); + public static final Item TOOL_QUICKIEPOWDERWATERHOE = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERWATERHOE, + new ToolQuickiepowderWaterHoe(ModIdentifiers.TOOL_QUICKIEPOWDERWATERHOE)); + + private static final Item registerItem(Identifier identifier, Item item) { + return Registry.register(Registries.ITEM, identifier, item); + } + + public static final List registerModItems() { + Quickiemod.LOGGER.debug(String.format("registering item %s", Quickiemod.MOD_ID)); + + List items = new ArrayList<>(); + items.add(ITEM_STUB); + items.add(ITEM_SPEEDPOWDER); + items.add(ITEM_QUICKIEPOWDER); + items.add(ITEM_SALPETER); + items.add(ITEM_SULFOR); + items.add(ITEM_OXIDIZEDCOPPERPOWDER); + items.add(ITEM_SPEEDINGOT); + items.add(ITEM_QUICKIEINGOT); + items.add(ITEM_CARROTSTACK); + items.add(ITEM_ROTTENFLESHSTRIPES); + items.add(ITEM_COTTON); + items.add(ITEM_COTTONSEED); + items.add(ITEM_CANOLA); + items.add(ITEM_CANOLASEED); + items.add(ITEM_CANOLABOTTLE); + items.add(ITEM_CANOLABOTTLESTACK); + + items.add(TOOL_SPEEDPOWDERPICKAXE); + items.add(TOOL_SPEEDPOWDERAXE); + items.add(TOOL_SPEEDPOWDERSHOVEL); + items.add(TOOL_SPEEDPOWDERHOE); + items.add(TOOL_SPEEDPOWDERWATERHOE); + items.add(TOOL_SPEEDPOWDERSHEARS); + items.add(TOOL_QUICKIEPOWDERPICKAXE); + items.add(TOOL_QUICKIEPOWDERAXE); + items.add(TOOL_QUICKIEPOWDERSHOVEL); + items.add(TOOL_QUICKIEPOWDERHOE); + items.add(TOOL_QUICKIEPOWDERWATERHOE); + return items; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java b/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java deleted file mode 100644 index 8e98bc6..0000000 --- a/src/main/java/de/jottyfan/quickiemod/item/ModdedItemUsageContext.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.jottyfan.quickiemod.item; - -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class ModdedItemUsageContext extends ItemUsageContext { - - public ModdedItemUsageContext(World world, PlayerEntity player, Hand hand, ItemStack stack, BlockHitResult hit) { - super(world, player, hand, stack, hit); - } - -} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderAxe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderAxe.java new file mode 100644 index 0000000..a4ca1d3 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderAxe.java @@ -0,0 +1,30 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ToolQuickiepowderAxe extends ToolRangeableAxe { + + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 2400, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); + + public ToolQuickiepowderAxe(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); + } + + @Override + public HarvestRange getRange(ItemStack stack) { + // TODO: get the range from the stack + return new HarvestRange(64, 128, 64); // trees bigger than that are too heavy for one small axe... + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderHoe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderHoe.java new file mode 100644 index 0000000..d1ef870 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderHoe.java @@ -0,0 +1,24 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ToolQuickiepowderHoe extends ToolRangeableHoe { + + public static final Integer DEFAULT_PLOW_RANGE = 4; + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 2400, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); + + public ToolQuickiepowderHoe(Identifier identifier) { + super(MATERIAL, 7F, -3.1f, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)), new HarvestRange(DEFAULT_PLOW_RANGE)); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderPickaxe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderPickaxe.java similarity index 62% rename from src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderPickaxe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderPickaxe.java index dc1dbcc..2054ece 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderPickaxe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderPickaxe.java @@ -1,15 +1,20 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; import com.google.common.collect.Lists; -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; /** * @@ -19,10 +24,15 @@ import net.minecraft.item.PickaxeItem; public class ToolQuickiepowderPickaxe extends PickaxeItem implements ToolRangeable { public static final int[] DEFAULT_HARVEST_RANGE = new int[] { 6, 6, 6 }; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 2400, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); - public ToolQuickiepowderPickaxe() { - super(MATERIAL, new Item.Settings().attributeModifiers(PickaxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F))); + public ToolQuickiepowderPickaxe(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); + } + + @Override + public boolean isCorrectForDrops(ItemStack stack, BlockState state) { + return super.isCorrectForDrops(stack, state); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderShovel.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShovel.java similarity index 82% rename from src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderShovel.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShovel.java index 3ee6f49..83232bf 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderShovel.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShovel.java @@ -1,17 +1,22 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; import com.google.common.collect.Lists; -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; import net.minecraft.item.ShovelItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; @@ -23,11 +28,11 @@ import net.minecraft.world.World; */ public class ToolQuickiepowderShovel extends ShovelItem implements ToolRangeable { public static final Integer DEFAULT_HARVEST_RANGE = 6; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 2400, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); public HarvestRange range; - public ToolQuickiepowderShovel() { - super(MATERIAL, new Item.Settings().attributeModifiers(ShovelItem.createAttributeModifiers(MATERIAL, 7F, -3.1F))); + public ToolQuickiepowderShovel(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); this.range = new HarvestRange(DEFAULT_HARVEST_RANGE); } diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderWaterHoe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderWaterHoe.java similarity index 84% rename from src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderWaterHoe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderWaterHoe.java index 4d9189e..36245a9 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderWaterHoe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderWaterHoe.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -8,6 +8,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -17,6 +18,10 @@ import net.minecraft.world.World; * */ public class ToolQuickiepowderWaterHoe extends ToolQuickiepowderHoe { + public ToolQuickiepowderWaterHoe(Identifier identifier) { + super(identifier); + } + @Override public ActionResult useOnBlock(ItemUsageContext context) { ActionResult res = super.useOnBlock(context); @@ -28,7 +33,7 @@ public class ToolQuickiepowderWaterHoe extends ToolQuickiepowderHoe { Hand hand = context.getHand(); PlayerEntity player = context.getPlayer(); ItemStack oldTool = player.getStackInHand(hand); - ItemStack newTool = new ItemStack(QuickieItems.QUICKIEPOWDERHOE.getItem()); + ItemStack newTool = new ItemStack(ModItems.TOOL_QUICKIEPOWDERHOE); newTool.setDamage(oldTool.getDamage()); world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(oldBlockState.getBlock()))); player.setStackInHand(hand, newTool); diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeable.java b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeable.java similarity index 81% rename from src/main/java/de/jottyfan/quickiemod/items/ToolRangeable.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolRangeable.java index a793612..48e2937 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeable.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeable.java @@ -1,10 +1,11 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; /** * @@ -13,6 +14,13 @@ import net.minecraft.item.ItemStack; */ public interface ToolRangeable { + /** + * dummy to have a getName method that comes with the item + * + * @return the name + */ + public Text getName(); + /** * @param stack the item stack that keeps the range * @return range of blocks to be harvested diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeableAxe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeableAxe.java similarity index 83% rename from src/main/java/de/jottyfan/quickiemod/items/ToolRangeableAxe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolRangeableAxe.java index 253011c..bdaa856 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeableAxe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeableAxe.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; @@ -20,8 +20,8 @@ import net.minecraft.registry.tag.BlockTags; */ public abstract class ToolRangeableAxe extends AxeItem implements ToolRangeable { - protected ToolRangeableAxe(ToolMaterial material, Item.Settings settings) { - super(material, settings); + protected ToolRangeableAxe(ToolMaterial material, float attackDamage, float attackSpeed, Item.Settings settings) { + super(material, attackDamage, attackSpeed, settings); } @Override @@ -53,7 +53,7 @@ public abstract class ToolRangeableAxe extends AxeItem implements ToolRangeable @Override public boolean canBreakNeighbors(BlockState blockIn) { - return new ItemStack(this).isSuitableFor(blockIn) || isLeavesBlock(blockIn) || blockIn.isIn(BlockTags.LOGS); + return new ItemStack(this).isSuitableFor(blockIn) || isLeavesBlock(blockIn) || blockIn.isIn(BlockTags.LOGS); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeableHoe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeableHoe.java similarity index 93% rename from src/main/java/de/jottyfan/quickiemod/items/ToolRangeableHoe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolRangeableHoe.java index 51d3b3f..ad84ed8 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolRangeableHoe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolRangeableHoe.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; @@ -28,8 +28,8 @@ public abstract class ToolRangeableHoe extends HoeItem implements ToolRangeable public HarvestRange range; - public ToolRangeableHoe(ToolMaterial material, Settings settings, HarvestRange range) { - super(material, settings); + public ToolRangeableHoe(ToolMaterial material, float attackDamage, float attackSpeed, Settings settings, HarvestRange range) { + super(material, attackDamage, attackSpeed, settings); this.range = range; } diff --git a/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderAxe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderAxe.java new file mode 100644 index 0000000..cd70e76 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderAxe.java @@ -0,0 +1,30 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ToolSpeedpowderAxe extends ToolRangeableAxe { + + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 800, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); + + public ToolSpeedpowderAxe(Identifier identifier) { + super(MATERIAL, 7f, -3.1f, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); + } + + @Override + public HarvestRange getRange(ItemStack stack) { + // TODO: get the range from the stack + return new HarvestRange(32, 64, 32); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderHoe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderHoe.java new file mode 100644 index 0000000..9970559 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderHoe.java @@ -0,0 +1,24 @@ +package de.jottyfan.quickiemod.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ToolSpeedpowderHoe extends ToolRangeableHoe { + + public static final Integer DEFAULT_PLOW_RANGE = 2; + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 800, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); + + public ToolSpeedpowderHoe(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)), new HarvestRange(DEFAULT_PLOW_RANGE)); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderPickaxe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderPickaxe.java similarity index 66% rename from src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderPickaxe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderPickaxe.java index 2d5d3de..04691cb 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderPickaxe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderPickaxe.java @@ -1,16 +1,20 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; import com.google.common.collect.Lists; -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.item.AxeItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; /** * @@ -20,10 +24,10 @@ import net.minecraft.item.PickaxeItem; public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable { public static final int[] DEFAULT_HARVEST_RANGE = new int[] { 3, 3, 3 }; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 800, 7.0F, 1.0F, 15, ItemTags.DIAMOND_TOOL_MATERIALS); - public ToolSpeedpowderPickaxe() { - super(MATERIAL, new Item.Settings().attributeModifiers(AxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F))); + public ToolSpeedpowderPickaxe(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShears.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java similarity index 91% rename from src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShears.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java index ae75d84..170c56a 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShears.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.Random; @@ -14,9 +14,12 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.ShearsItem; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.util.ActionResult; import net.minecraft.util.DyeColor; import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3d; /** @@ -26,8 +29,8 @@ import net.minecraft.util.math.Vec3d; */ public class ToolSpeedpowderShears extends ShearsItem { - public ToolSpeedpowderShears() { - super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent())); + public ToolSpeedpowderShears(Identifier identifier) { + super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent()).useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); } @Override diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShovel.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShovel.java similarity index 81% rename from src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShovel.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShovel.java index b26e527..a6e17d1 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderShovel.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShovel.java @@ -1,17 +1,22 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import java.util.List; import com.google.common.collect.Lists; -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; import net.minecraft.item.ShovelItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; @@ -23,11 +28,11 @@ import net.minecraft.world.World; */ public class ToolSpeedpowderShovel extends ShovelItem implements ToolRangeable { public static final Integer DEFAULT_HARVEST_RANGE = 3; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); + private final static ToolMaterial MATERIAL = new ToolMaterial(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 800, 7f, 1f, 15, ItemTags.DIAMOND_TOOL_MATERIALS); public HarvestRange range; - public ToolSpeedpowderShovel() { - super(MATERIAL, new Item.Settings().attributeModifiers(ShovelItem.createAttributeModifiers(MATERIAL, 7F, -3.1F))); + public ToolSpeedpowderShovel(Identifier identifier) { + super(MATERIAL, 7F, -3.1F, new Item.Settings().useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); this.range = new HarvestRange(DEFAULT_HARVEST_RANGE); } diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderWaterHoe.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderWaterHoe.java similarity index 84% rename from src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderWaterHoe.java rename to src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderWaterHoe.java index c7381fb..ca0b714 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderWaterHoe.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderWaterHoe.java @@ -1,4 +1,4 @@ -package de.jottyfan.quickiemod.items; +package de.jottyfan.quickiemod.item; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -8,6 +8,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -17,6 +18,10 @@ import net.minecraft.world.World; * */ public class ToolSpeedpowderWaterHoe extends ToolSpeedpowderHoe { + public ToolSpeedpowderWaterHoe(Identifier identifier) { + super(identifier); + } + @Override public ActionResult useOnBlock(ItemUsageContext context) { ActionResult res = super.useOnBlock(context); @@ -28,7 +33,7 @@ public class ToolSpeedpowderWaterHoe extends ToolSpeedpowderHoe { Hand hand = context.getHand(); PlayerEntity player = context.getPlayer(); ItemStack oldTool = player.getStackInHand(hand); - ItemStack newTool = new ItemStack(QuickieItems.SPEEDPOWDERHOE.getItem()); + ItemStack newTool = new ItemStack(ModItems.TOOL_SPEEDPOWDERHOE); newTool.setDamage(oldTool.getDamage()); world.spawnEntity(new ItemEntity(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(oldBlockState.getBlock()))); player.setStackInHand(hand, newTool); diff --git a/src/main/java/de/jottyfan/quickiemod/itemgroup/ModItemGroup.java b/src/main/java/de/jottyfan/quickiemod/itemgroup/ModItemGroup.java new file mode 100644 index 0000000..effb6fa --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/itemgroup/ModItemGroup.java @@ -0,0 +1,38 @@ +package de.jottyfan.quickiemod.itemgroup; + +import java.util.List; + +import de.jottyfan.quickiemod.Quickiemod; +import de.jottyfan.quickiemod.item.ModItems; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ModItemGroup { + + public static final void registerItemGroup(List items, List blocks) { + Registry.register(Registries.ITEM_GROUP, + RegistryKey.of(RegistryKeys.ITEM_GROUP, Identifier.of(Quickiemod.MOD_ID, "itemgroup")), + FabricItemGroup.builder().icon(() -> new ItemStack(ModItems.ITEM_SPEEDPOWDER)) + .displayName(Text.literal(Quickiemod.MOD_ID)).entries((enabledFeatures, stacks) -> { + for (Item item : items) { + stacks.add(new ItemStack(item)); + } + for (Block block : blocks) { + stacks.add(new ItemStack(block)); + } + }).build()); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java deleted file mode 100644 index 67130f1..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemCanola extends Item { - - public ItemCanola() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java deleted file mode 100644 index 0d6b717..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemCanolabottle extends Item { - - public ItemCanolabottle() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java deleted file mode 100644 index 2793024..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemCanolabottlestack extends Item { - - public ItemCanolabottlestack() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java deleted file mode 100644 index 3e852fe..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.util.ActionResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class ItemCanolaseed extends Item { - - public ItemCanolaseed() { - super(new Item.Settings().maxCount(64)); - } - - @Override - public ActionResult useOnBlock(ItemUsageContext context) { - BlockPos pos = context.getBlockPos(); - World world = context.getWorld(); - if (QuickieItems.CANOLASEED.getItem().equals(context.getStack().getItem())) { - BlockState state = world.getBlockState(pos); - if (Blocks.FARMLAND.equals(state.getBlock()) && world.getBlockState(pos.up()).isAir()) { - world.setBlockState(pos.up(), QuickieBlocks.CANOLAPLANT.getBlock().getDefaultState()); - context.getStack().decrement(1); - } - } - return super.useOnBlock(context); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java deleted file mode 100644 index a79f52e..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCarrotstack.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.component.type.FoodComponent; -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemCarrotstack extends Item { - - public ItemCarrotstack() { - super(new Item.Settings().maxCount(64) - .food(new FoodComponent.Builder().nutrition(12).saturationModifier(0.6F).build())); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java deleted file mode 100644 index aaf61b1..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemCotton extends Item { - - public ItemCotton() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java deleted file mode 100644 index 20448a9..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.blocks.QuickieBlocks; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.util.ActionResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class ItemCottonseed extends Item { - - public ItemCottonseed() { - super(new Item.Settings().maxCount(64)); - } - - @Override - public ActionResult useOnBlock(ItemUsageContext context) { - BlockPos pos = context.getBlockPos(); - World world = context.getWorld(); - if (QuickieItems.COTTONSEED.getItem().equals(context.getStack().getItem())) { - BlockState state = world.getBlockState(pos); - if (Blocks.FARMLAND.equals(state.getBlock()) && world.getBlockState(pos.up()).isAir()) { - world.setBlockState(pos.up(), QuickieBlocks.COTTONPLANT.getBlock().getDefaultState()); - context.getStack().decrement(1); - } - } - return super.useOnBlock(context); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemOxidizedcopperpowder.java b/src/main/java/de/jottyfan/quickiemod/items/ItemOxidizedcopperpowder.java deleted file mode 100644 index 317428b..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemOxidizedcopperpowder.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemOxidizedcopperpowder extends Item { - - public ItemOxidizedcopperpowder() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemQuickieingot.java b/src/main/java/de/jottyfan/quickiemod/items/ItemQuickieingot.java deleted file mode 100644 index e1c9fb6..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemQuickieingot.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemQuickieingot extends Item { - - public ItemQuickieingot() { - super(new Item.Settings()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemQuickiepowder.java b/src/main/java/de/jottyfan/quickiemod/items/ItemQuickiepowder.java deleted file mode 100644 index 9ac56ca..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemQuickiepowder.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemQuickiepowder extends Item { - - public ItemQuickiepowder() { - super(new Item.Settings()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java b/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java deleted file mode 100644 index 2a6f385..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemRottenFleshStripes.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemRottenFleshStripes extends Item { - - public ItemRottenFleshStripes() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java deleted file mode 100644 index 96a0760..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemSalpeter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemSalpeter extends Item { - - public ItemSalpeter() { - super(new Item.Settings()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedingot.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedingot.java deleted file mode 100644 index 04c739a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedingot.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemSpeedingot extends Item { - - public ItemSpeedingot() { - super(new Item.Settings()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowder.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowder.java deleted file mode 100644 index ee5e92b..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowder.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemSpeedpowder extends Item { - - public ItemSpeedpowder() { - super(new Item.Settings()); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java deleted file mode 100644 index b586307..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import java.util.Random; - -import net.minecraft.component.DataComponentTypes; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.passive.ChickenEntity; -import net.minecraft.entity.passive.CowEntity; -import net.minecraft.entity.passive.HorseEntity; -import net.minecraft.entity.passive.SheepEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.item.ShearsItem; -import net.minecraft.util.ActionResult; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Hand; -import net.minecraft.util.math.Vec3d; - -/** - * - * @author jotty - * - */ -public class ItemSpeedpowdershears extends ShearsItem { - - public ItemSpeedpowdershears() { - super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent())); - } - - @Override - public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { - Vec3d pos = entity.getPos(); - Integer amount = 3 + new Random().nextInt(4); - if (entity instanceof SheepEntity) { - SheepEntity sheep = (SheepEntity) entity; - if (sheep.isShearable()) { - sheep.setSheared(true); - sheep.playAmbientSound(); - DyeColor color = sheep.getColor(); - Item item = Items.WHITE_WOOL; - if (color.equals(DyeColor.BLACK)) { - item = Items.BLACK_WOOL; - } else if (color.equals(DyeColor.GRAY)) { - item = Items.GRAY_WOOL; - } else if (color.equals(DyeColor.LIGHT_GRAY)) { - item = Items.LIGHT_GRAY_WOOL; - } else if (color.equals(DyeColor.BROWN)) { - item = Items.BROWN_WOOL; - } else if (color.equals(DyeColor.BLUE)) { - item = Items.BLUE_WOOL; - } else if (color.equals(DyeColor.LIGHT_BLUE)) { - item = Items.LIGHT_BLUE_WOOL; - } else if (color.equals(DyeColor.GREEN)) { - item = Items.GREEN_WOOL; - } else if (color.equals(DyeColor.LIME)) { - item = Items.LIME_WOOL; - } else if (color.equals(DyeColor.CYAN)) { - item = Items.CYAN_WOOL; - } else if (color.equals(DyeColor.MAGENTA)) { - item = Items.MAGENTA_WOOL; - } else if (color.equals(DyeColor.ORANGE)) { - item = Items.ORANGE_WOOL; - } else if (color.equals(DyeColor.PINK)) { - item = Items.PINK_WOOL; - } else if (color.equals(DyeColor.PURPLE)) { - item = Items.PURPLE_WOOL; - } else if (color.equals(DyeColor.RED)) { - item = Items.RED_WOOL; - } else if (color.equals(DyeColor.YELLOW)) { - item = Items.YELLOW_WOOL; - } - user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(item, amount))); - return ActionResult.SUCCESS; - } - } else if (entity instanceof HorseEntity) { - HorseEntity horse = (HorseEntity) entity; - horse.playAmbientSound(); - user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount))); - return ActionResult.SUCCESS; - } else if (entity instanceof CowEntity) { - CowEntity cow = (CowEntity) entity; - cow.playAmbientSound(); - user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount))); - return ActionResult.SUCCESS; - } else if (entity instanceof ChickenEntity) { - ChickenEntity cow = (ChickenEntity) entity; - cow.playAmbientSound(); - user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.FEATHER, amount))); - return ActionResult.SUCCESS; - } - return ActionResult.PASS; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java b/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java deleted file mode 100644 index e4d7850..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemStub.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ItemStub extends Item { - public ItemStub() { - super(new Item.Settings().maxCount(64)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java deleted file mode 100644 index bf7cc5e..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ItemSulphor.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -public class ItemSulphor extends Item { - - public ItemSulphor() { - super(new Item.Settings()); - } - - @Override - public TypedActionResult use(World world, PlayerEntity user, Hand hand) { - ItemStack itemStack = user.getStackInHand(hand); - // TODO: reactivate when sulforpad is available -// BlockHitResult hitResult = BoatItem.raycast(world, user, RaycastContext.FluidHandling.SOURCE_ONLY); -// if (((HitResult) hitResult).getType() == HitResult.Type.MISS) { -// return TypedActionResult.pass(itemStack); -// } -// if (((HitResult) hitResult).getType() == HitResult.Type.BLOCK) { -// if (!world.isClient) { -// BlockPos pos = hitResult.getBlockPos(); -// if (BlockSulforpad.getAllowedBlockHolder().contains(world.getBlockState(pos).getBlock()) && world.getBlockState(pos.up()).isAir()) { -// world.setBlockState(pos.up(), QuickieBlocks.SULFORPAD.getDefaultState()); -// itemStack.decrement(1); -// } -// } -// return TypedActionResult.success(itemStack, world.isClient()); -// } - return TypedActionResult.pass(itemStack); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java deleted file mode 100644 index cb9ae0e..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public enum QuickieItems { - // @formatter:off - SPEEDPOWDER(new ItemSpeedpowder(), "speedpowder"), - QUICKIEPOWDER(new ItemQuickiepowder(), "quickiepowder"), - OXIDIZEDCOPPERPOWDER(new ItemOxidizedcopperpowder(), "oxidizedcopperpowder"), - SPEEDINGOT(new ItemSpeedingot(), "speedingot"), - QUICKIEINGOT(new ItemQuickieingot(), "quickieingot"), - SPEEDPOWDERAXE(new ToolSpeedpowderAxe(), "speedpowderaxe"), - SPEEDPOWDERPICKAXE(new ToolSpeedpowderPickaxe(), "speedpowderpickaxe"), - SPEEDPOWDERSHOVEL(new ToolSpeedpowderShovel(), "speedpowdershovel"), - SPEEDPOWDERHOE(new ToolSpeedpowderHoe(), "speedpowderhoe"), - SPEEDPOWDERWATERHOE(new ToolSpeedpowderWaterHoe(), "speedpowderwaterhoe"), - SPEEDPOWDERSHEARS(new ToolSpeedpowderShears(), "speedpowdershears"), - QUICKIEPOWDERAXE(new ToolQuickiepowderAxe(), "quickiepowderaxe"), - QUICKIEPOWDERPICKAXE(new ToolQuickiepowderPickaxe(), "quickiepowderpickaxe"), - QUICKIEPOWDERSHOVEL(new ToolQuickiepowderShovel(), "quickiepowdershovel"), - QUICKIEPOWDERHOE(new ToolQuickiepowderHoe(), "quickiepowderhoe"), - QUICKIEPOWDERWATERHOE(new ToolQuickiepowderWaterHoe(), "quickiepowderwaterhoe"), - ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"), - CARROTSTACK(new ItemCarrotstack(), "carrotstack"), - COTTON(new ItemCotton(), "cotton"), - COTTONSEED(new ItemCottonseed(), "cottonseed"), - CANOLA(new ItemCanola(), "canola"), - CANOLASEED(new ItemCanolaseed(), "canolaseed"), - CANOLABOTTLE(new ItemCanolabottle(), "canolabottle"), - CANOLABOTTLESTACK(new ItemCanolabottlestack(), "canolabottlestack"), - STUB(new ItemStub(), "stub"), - SALPETER(new ItemSalpeter(), "salpeter"), - SULPHOR(new ItemSulphor(), "sulphor"); - // @formatter:on - - private final Item item; - private final String name; - - private QuickieItems(Item item, String name) { - this.item = item; - this.name = name; - } - - public final Item getItem() { - return item; - } - - public final String getName() { - return name; - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderAxe.java b/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderAxe.java deleted file mode 100644 index 74829f4..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderAxe.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; -import net.minecraft.item.AxeItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -/** - * - * @author jotty - * - */ -public class ToolQuickiepowderAxe extends ToolRangeableAxe { - - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); - - public ToolQuickiepowderAxe() { - super(MATERIAL, new Item.Settings().attributeModifiers(AxeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F))); - } - - @Override - public HarvestRange getRange(ItemStack stack) { - // TODO: get the range from the stack - return new HarvestRange(64, 128, 64); // trees bigger than that are too heavy for one small axe... - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderHoe.java b/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderHoe.java deleted file mode 100644 index a036c49..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolQuickiepowderHoe.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; -import net.minecraft.item.HoeItem; -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ToolQuickiepowderHoe extends ToolRangeableHoe { - - public static final Integer DEFAULT_PLOW_RANGE = 4; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 2400, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); - - public ToolQuickiepowderHoe() { - super(MATERIAL, new Item.Settings().attributeModifiers(HoeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)), new HarvestRange(DEFAULT_PLOW_RANGE)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderAxe.java b/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderAxe.java deleted file mode 100644 index 73e926a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderAxe.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.PickaxeItem; - -/** - * - * @author jotty - * - */ -public class ToolSpeedpowderAxe extends ToolRangeableAxe { - - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); - - public ToolSpeedpowderAxe() { - super(MATERIAL, new Item.Settings().attributeModifiers(PickaxeItem.createAttributeModifiers(MATERIAL, 7f, -3.1f))); - } - - @Override - public HarvestRange getRange(ItemStack stack) { - // TODO: get the range from the stack - return new HarvestRange(32, 64, 32); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderHoe.java b/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderHoe.java deleted file mode 100644 index 14edd2a..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/ToolSpeedpowderHoe.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.jottyfan.quickiemod.items; - -import de.jottyfan.quickiemod.items.mat.QuickieToolMaterial; -import net.minecraft.item.HoeItem; -import net.minecraft.item.Item; - -/** - * - * @author jotty - * - */ -public class ToolSpeedpowderHoe extends ToolRangeableHoe { - - public static final Integer DEFAULT_PLOW_RANGE = 2; - private final static QuickieToolMaterial MATERIAL = QuickieToolMaterial.of(7f, 800, 15, 1f, QuickieItems.SPEEDINGOT.getItem()); - - public ToolSpeedpowderHoe() { - super(MATERIAL, new Item.Settings().attributeModifiers(HoeItem.createAttributeModifiers(MATERIAL, 7F, -3.1F)), new HarvestRange(DEFAULT_PLOW_RANGE)); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/items/mat/QuickieToolMaterial.java b/src/main/java/de/jottyfan/quickiemod/items/mat/QuickieToolMaterial.java deleted file mode 100644 index dc7028d..0000000 --- a/src/main/java/de/jottyfan/quickiemod/items/mat/QuickieToolMaterial.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.jottyfan.quickiemod.items.mat; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ToolMaterial; -import net.minecraft.recipe.Ingredient; -import net.minecraft.registry.tag.BlockTags; -import net.minecraft.registry.tag.TagKey; - -/** - * - * @author jotty - * - */ -public class QuickieToolMaterial implements ToolMaterial { - - private final float attackDamage; - private final int durability; - private final int enchantability; - private final float miningSpeedMuliplier; - private final Item item; - - private QuickieToolMaterial(float attackDamage, int durability, int enchantability, float miningSpeedMultiplier, Item item) { - this.attackDamage = attackDamage; - this.durability = durability; - this.enchantability = enchantability; - this.miningSpeedMuliplier = miningSpeedMultiplier; - this.item = item; - } - - public static final QuickieToolMaterial of(float attackDamage, int durability, int enchantability, float miningSpeedMultiplier, Item item) { - return new QuickieToolMaterial(attackDamage, durability, enchantability, miningSpeedMultiplier, item); - } - - @Override - public float getAttackDamage() { - return attackDamage; - } - - @Override - public int getDurability() { - return durability; - } - - @Override - public int getEnchantability() { - return enchantability; - } - - @Override - public TagKey getInverseTag() { - return BlockTags.INCORRECT_FOR_IRON_TOOL; - } - - @Override - public float getMiningSpeedMultiplier() { - return miningSpeedMuliplier; - } - - @Override - public Ingredient getRepairIngredient() { - return Ingredient.ofItems(item); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/mixin/BlockBreakMixin.java b/src/main/java/de/jottyfan/quickiemod/mixin/BlockBreakMixin.java deleted file mode 100644 index 537dca3..0000000 --- a/src/main/java/de/jottyfan/quickiemod/mixin/BlockBreakMixin.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.jottyfan.quickiemod.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import de.jottyfan.quickiemod.event.BreakBlockCallback; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -/** - * - * @author jotty - * - */ -@Mixin(Block.class) -public class BlockBreakMixin { - - @Inject(at = @At("HEAD"), method = "onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/block/BlockState;") - private void onBreak(final World world, final BlockPos blockPos, final BlockState blockState, - final PlayerEntity playerEntity, final CallbackInfoReturnable info) { - ActionResult result = BreakBlockCallback.EVENT.invoker().injectBlockBreakCallback(world, blockPos, blockState, - playerEntity); - if (result == ActionResult.FAIL) { - info.cancel(); - } - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java b/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java deleted file mode 100644 index 175229b..0000000 --- a/src/main/java/de/jottyfan/quickiemod/text/PrefixedText.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.jottyfan.quickiemod.text; - -import java.util.List; - -import net.minecraft.text.OrderedText; -import net.minecraft.text.Style; -import net.minecraft.text.Text; -import net.minecraft.text.TextContent; - -/** - * - * @author jotty - * - */ -public class PrefixedText implements Text { - - private final String pattern; - private final Text text; - - private PrefixedText(String pattern, Text text) { - this.pattern = pattern; - this.text = text; - } - - public final static PrefixedText instance(String pattern, Text text) { - return new PrefixedText(pattern, text); - } - - private Text generateText() { - return Text.of(pattern.replace("%s", text.getString())); - } - - @Override - public OrderedText asOrderedText() { - return generateText().asOrderedText(); - } - - @Override - public TextContent getContent() { - return generateText().getContent(); - } - - @Override - public List getSiblings() { - return generateText().getSiblings(); - } - - @Override - public Style getStyle() { - return text.getStyle(); - } -} diff --git a/src/main/java/de/jottyfan/quickiemod/util/ModTags.java b/src/main/java/de/jottyfan/quickiemod/util/ModTags.java new file mode 100644 index 0000000..8a17ec4 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/util/ModTags.java @@ -0,0 +1,28 @@ +package de.jottyfan.quickiemod.util; + +import de.jottyfan.quickiemod.Quickiemod; +import net.minecraft.block.Block; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; + +/** + * + * @author jotty + * + */ +public class ModTags { + + public static final class Blocks { + public static final TagKey SPEEDPOWDER_TOOL = createTag("speedpowder_tool"); + public static final TagKey QUICKIEPOWDER_TOOL = createTag("quickiepowder_tool"); + + private static final TagKey createTag(String name) { + return TagKey.of(RegistryKeys.BLOCK, Identifier.of(Quickiemod.MOD_ID, name)); + } + } + + public static final class Items { + + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/canolaplant.json b/src/main/resources/assets/quickiemod/blockstates/blockcanolaplant.json similarity index 100% rename from src/main/resources/assets/quickiemod/blockstates/canolaplant.json rename to src/main/resources/assets/quickiemod/blockstates/blockcanolaplant.json diff --git a/src/main/resources/assets/quickiemod/blockstates/cottonplant.json b/src/main/resources/assets/quickiemod/blockstates/blockcottonplant.json similarity index 100% rename from src/main/resources/assets/quickiemod/blockstates/cottonplant.json rename to src/main/resources/assets/quickiemod/blockstates/blockcottonplant.json diff --git a/src/main/resources/assets/quickiemod/blockstates/drillstop.json b/src/main/resources/assets/quickiemod/blockstates/drillstop.json deleted file mode 100644 index 52645fe..0000000 --- a/src/main/resources/assets/quickiemod/blockstates/drillstop.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "quickiemod:block/drillstop" - } - } -} diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json index 92ec985..e211fb9 100644 --- a/src/main/resources/assets/quickiemod/lang/de_de.json +++ b/src/main/resources/assets/quickiemod/lang/de_de.json @@ -69,8 +69,8 @@ "block.quickiemod.itemhoarder": "Itemsauger", "block.quickiemod.monsterhoarder": "Monstersauger", "block.quickiemod.kelpstack": "Seegrassbündel", - "block.quickiemod.cottonplant": "Baumwollpflanze", - "block.quickiemod.canolaplant": "Canolapflanze", + "block.quickiemod.blockcottonplant": "Baumwollpflanze", + "block.quickiemod.blockcanolaplant": "Canolapflanze", "block.quickiemod.blocksulphor": "Schwefelblock", "block.quickiemod.blocksalpeter": "Salpeterblock", "block.quickiemod.blockspeedpowder": "Fluchtpulverblock", @@ -103,6 +103,7 @@ "msg.buildingplan.failonblock": "Der Bau wurde abgelehnt, es ist im Weg: %s", "msg.buildingplan.failonplayer": "Der Bau wurde abgelehnt, um Spieler %s nicht zu gefährden.", "msg.itemhoarder.summary": "Der Itemsauger enthält: %s", + "msg.monsterhoarder.size": "Der Radius für diesen Monstersauger beträgt jetzt %d.", "msg.notyetimplemented": "leider noch nicht verfügbar", "msg.backpack.transfer.filled": "Der Rucksack wurde befüllt.", "msg.backpack.transfer.cleared": "Der Rucksackinhalt wurde soweit möglich geleert.", diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json index f3cca6f..a5b3ef0 100644 --- a/src/main/resources/assets/quickiemod/lang/en_us.json +++ b/src/main/resources/assets/quickiemod/lang/en_us.json @@ -69,8 +69,8 @@ "block.quickiemod.itemhoarder": "item hoarder", "block.quickiemod.monsterhoarder": "monster hoarder", "block.quickiemod.kelpstack": "kelp bundle", - "block.quickiemod.cottonplant": "cotton plant", - "block.quickiemod.canolaplant": "canola plant", + "block.quickiemod.blockcottonplant": "cotton plant", + "block.quickiemod.blockcanolaplant": "canola plant", "block.quickiemod.blocksulphor": "block of sulfur", "block.quickiemod.blocksalpeter": "block of salpeter", "block.quickiemod.blockspeedpowder": "block of speedpowder", @@ -103,6 +103,7 @@ "msg.buildingplan.failonblock": "The building execution was rejected because of %s", "msg.buildingplan.failonplayer": "The building execution was rejected because of %s who could be injured.", "msg.itemhoarder.summary": "The item hoarder contains: %s", + "msg.monsterhoarder.size": "The radius for this monster hoarder is %d from now on.", "msg.notyetimplemented": "not yet implemented", "msg.backpack.transfer.filled": "Filled the backpack.", "msg.backpack.transfer.cleared": "Cleared the backpack as much as possible.", diff --git a/src/main/resources/assets/quickiemod/models/block/blockstackerdown.json b/src/main/resources/assets/quickiemod/models/block/blockstackerdown.json index 1de4eb6..d42110b 100644 --- a/src/main/resources/assets/quickiemod/models/block/blockstackerdown.json +++ b/src/main/resources/assets/quickiemod/models/block/blockstackerdown.json @@ -1,5 +1,5 @@ { - "parent": "block/cube_bottom_top", + "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "quickiemod:block/blockstackerout", "side": "quickiemod:block/blockstackerdown", diff --git a/src/main/resources/assets/quickiemod/models/block/drillstop.json b/src/main/resources/assets/quickiemod/models/block/drillstop.json deleted file mode 100644 index bd29447..0000000 --- a/src/main/resources/assets/quickiemod/models/block/drillstop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "quickiemod:block/drillstop" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/drillstop.json b/src/main/resources/assets/quickiemod/models/item/drillstop.json deleted file mode 100644 index f9b6069..0000000 --- a/src/main/resources/assets/quickiemod/models/item/drillstop.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "quickiemod:block/drillstop", - "display": { - "thirdperson": { - "rotation": [ 10, -45, 170 ], - "translation": [ 0, 1.5, -2.75 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/kelpstack.json b/src/main/resources/assets/quickiemod/models/item/kelpstack.json index b3c3481..7a09f11 100644 --- a/src/main/resources/assets/quickiemod/models/item/kelpstack.json +++ b/src/main/resources/assets/quickiemod/models/item/kelpstack.json @@ -1,10 +1,25 @@ { - "parent": "quickiemod:block/kelpstack", - "display": { - "thirdperson": { - "rotation": [ 10, -45, 170 ], - "translation": [ 0, 1.5, -2.75 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - } -} \ No newline at end of file + "parent": "block/block", + "textures": { + "particle": "quickiemod:block/kelpstack_side", + "down": "quickiemod:block/kelpstack_bottom", + "up": "quickiemod:block/kelpstack_top", + "north": "quickiemod:block/kelpstack_side", + "east": "quickiemod:block/kelpstack_side", + "south": "quickiemod:block/kelpstack_side", + "west": "quickiemod:block/kelpstack_side" + }, + "elements": [ + { "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#down", "cullface": "down" }, + "up": { "texture": "#up", "cullface": "up" }, + "north": { "texture": "#north", "cullface": "north" }, + "south": { "uv": [16, 0, 0, 16], "texture": "#south", "cullface": "south" }, + "west": { "texture": "#west", "cullface": "west" }, + "east": { "uv": [16, 0, 0, 16], "texture": "#east", "cullface": "east" } + } + } + ] +} diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png index d19a189..6ce03a4 100644 Binary files a/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png and b/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png index 4cd6a05..81cd078 100644 Binary files a/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png and b/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png index b50f8d1..677923b 100644 Binary files a/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png and b/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png differ diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png index 9ed2608..c8cacf4 100644 Binary files a/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png and b/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png differ diff --git a/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json index 406d026..d22f488 100644 --- a/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -1,6 +1,11 @@ { "replace": false, "values": [ + "quickiemod:blocksulphor", + "quickiemod:blocksalpeter", + "quickiemod:monsterhoarder", + "quickiemod:lavahoarder", + "quickiemod:emptylavahoarder", "quickiemod:oresulphor", "quickiemod:oredeepslatesulphor", "quickiemod:orenethersulphor", diff --git a/src/main/resources/data/minecraft/tags/items/enchantable/durability.json b/src/main/resources/data/minecraft/tags/items/enchantable/durability.json deleted file mode 100644 index dcf56cf..0000000 --- a/src/main/resources/data/minecraft/tags/items/enchantable/durability.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "quickiemod:speedpowdershears" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/enchantable/mining.json b/src/main/resources/data/minecraft/tags/items/enchantable/mining.json deleted file mode 100644 index dcf56cf..0000000 --- a/src/main/resources/data/minecraft/tags/items/enchantable/mining.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "quickiemod:speedpowdershears" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/advancements/recipes/tools/salpeterblock.json b/src/main/resources/data/quickiemod/advancements/recipes/tools/salpeterblock.json deleted file mode 100644 index 2914a6d..0000000 --- a/src/main/resources/data/quickiemod/advancements/recipes/tools/salpeterblock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "rewards": { - "recipes": [ - "quickiemod:blocksalpeter" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "quickiemod:blocksalpeter" - } - } - }, - "requirements": [ - [ - "has_the_recipe" - ] - ] -} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder1.json b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder1.json index 46d49fb..2d9f8d1 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder1.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder1.json @@ -1,8 +1,6 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "minecraft:oxidized_copper" - }, + "ingredient": "minecraft:oxidized_copper", "result": { "id": "quickiemod:oxidizedcopperpowder" }, diff --git a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder2.json b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder2.json index 027803b..bc54ecb 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder2.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder2.json @@ -1,8 +1,6 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "minecraft:oxidized_cut_copper" - }, + "ingredient": "minecraft:oxidized_cut_copper", "result": { "id": "quickiemod:oxidizedcopperpowder" }, diff --git a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder3.json b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder3.json index f6f5e2e..396069b 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder3.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder3.json @@ -1,13 +1,8 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "minecraft:oxidized_cut_copper_stairs" - }, + "ingredient": "minecraft:oxidized_cut_copper_stairs", "result": { "id": "quickiemod:oxidizedcopperpowder"}, "experience": 0.1, "cookingtime": 200 -}, - "experience": 0.1, - "cookingtime": 200 } \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder4.json b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder4.json index ed29978..02e8286 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder4.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_oxidized_copper_powder4.json @@ -1,8 +1,6 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "minecraft:oxidized_cut_copper_slab" - }, + "ingredient": "minecraft:oxidized_cut_copper_slab", "result": { "id": "quickiemod:oxidizedcopperpowder"}, "experience": 0.1, diff --git a/src/main/resources/data/quickiemod/recipe/blasting_quickieingot.json b/src/main/resources/data/quickiemod/recipe/blasting_quickieingot.json index 771c171..dbe9a7b 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_quickieingot.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_quickieingot.json @@ -1,8 +1,6 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "quickiemod:quickiepowder" - }, + "ingredient": "quickiemod:quickiepowder", "result": {"id":"quickiemod:quickieingot"}, "experience": 0.1, "cookingtime": 200 diff --git a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_brain_coral.json b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_brain_coral.json index 0b889dd..3f50d1c 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_brain_coral.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_brain_coral.json @@ -2,9 +2,7 @@ "type": "minecraft:blasting", "group": "ores", "ingredient": [ - { - "item": "minecraft:dead_brain_coral_block" - } + "minecraft:dead_brain_coral_block" ], "result": { "id":"quickiemod:salpeter" diff --git a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_bubble_coral.json b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_bubble_coral.json index 520fe09..a3f776d 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_bubble_coral.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_bubble_coral.json @@ -2,9 +2,7 @@ "type": "minecraft:blasting", "group": "ores", "ingredient": [ - { - "item": "minecraft:dead_bubble_coral_block" - } + "minecraft:dead_bubble_coral_block" ], "result": { "id":"quickiemod:salpeter" diff --git a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_fire_coral.json b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_fire_coral.json index c73e6bf..a669b0e 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_fire_coral.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_fire_coral.json @@ -2,9 +2,7 @@ "type": "minecraft:blasting", "group": "ores", "ingredient": [ - { - "item": "minecraft:dead_fire_coral_block" - } + "minecraft:dead_fire_coral_block" ], "result": { "id":"quickiemod:salpeter" diff --git a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_horn_coral.json b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_horn_coral.json index 387ae41..2d45886 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_horn_coral.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_horn_coral.json @@ -2,9 +2,7 @@ "type": "minecraft:blasting", "group": "ores", "ingredient": [ - { - "item": "minecraft:dead_horn_coral_block" - } + "minecraft:dead_horn_coral_block" ], "result": { "id":"quickiemod:salpeter" diff --git a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_tube_coral.json b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_tube_coral.json index d960c8e..d7012c3 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_tube_coral.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_salpeter_from_tube_coral.json @@ -2,9 +2,7 @@ "type": "minecraft:blasting", "group": "ores", "ingredient": [ - { - "item": "minecraft:dead_tube_coral_block" - } + "minecraft:dead_tube_coral_block" ], "result": { "id":"quickiemod:salpeter" diff --git a/src/main/resources/data/quickiemod/recipe/blasting_speedingot.json b/src/main/resources/data/quickiemod/recipe/blasting_speedingot.json index d7fbc43..fcf1b50 100644 --- a/src/main/resources/data/quickiemod/recipe/blasting_speedingot.json +++ b/src/main/resources/data/quickiemod/recipe/blasting_speedingot.json @@ -1,8 +1,6 @@ { "type": "minecraft:blasting", - "ingredient": { - "item": "quickiemod:speedpowder" - }, + "ingredient": "quickiemod:speedpowder", "result": {"id":"quickiemod:speedingot"}, "experience": 0.1, "cookingtime": 200 diff --git a/src/main/resources/data/quickiemod/recipe/campfire_dried_kelpblock.json b/src/main/resources/data/quickiemod/recipe/campfire_dried_kelpblock.json index 7f8a3cf..8983b9b 100644 --- a/src/main/resources/data/quickiemod/recipe/campfire_dried_kelpblock.json +++ b/src/main/resources/data/quickiemod/recipe/campfire_dried_kelpblock.json @@ -1,8 +1,6 @@ { "type": "minecraft:campfire_cooking", - "ingredient": { - "item": "quickiemod:kelpstack" - }, + "ingredient": "quickiemod:kelpstack", "result": { "id": "minecraft:dried_kelp_block" }, diff --git a/src/main/resources/data/quickiemod/recipe/campfire_torch.json b/src/main/resources/data/quickiemod/recipe/campfire_torch.json index 4921fb6..513f00b 100644 --- a/src/main/resources/data/quickiemod/recipe/campfire_torch.json +++ b/src/main/resources/data/quickiemod/recipe/campfire_torch.json @@ -1,10 +1,8 @@ { "type": "minecraft:campfire_cooking", - "ingredient": { - "item": "quickiemod:stub" - }, + "ingredient": "quickiemod:stub", "result": { - "id":"minecraft:torch" + "id": "minecraft:torch" }, "experience": 0.1, "cookingtime": 20 diff --git a/src/main/resources/data/quickiemod/recipe/shaped_blockquickiepowder_from_quickiepowder.json b/src/main/resources/data/quickiemod/recipe/shaped_blockquickiepowder_from_quickiepowder.json index 1b97cae..789b11e 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_blockquickiepowder_from_quickiepowder.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_blockquickiepowder_from_quickiepowder.json @@ -6,9 +6,7 @@ "sss" ], "key": { - "s": { - "item": "quickiemod:quickiepowder" - } + "s": "quickiemod:quickiepowder" }, "result": { "id": "quickiemod:blockquickiepowder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_blocksalpeter.json b/src/main/resources/data/quickiemod/recipe/shaped_blocksalpeter.json index 6803764..b844259 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_blocksalpeter.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_blocksalpeter.json @@ -6,9 +6,7 @@ "sss" ], "key": { - "s": { - "item": "quickiemod:salpeter" - } + "s": "quickiemod:salpeter" }, "result": { "id": "quickiemod:blocksalpeter", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_blockspeedpowder_from_speedpowder.json b/src/main/resources/data/quickiemod/recipe/shaped_blockspeedpowder_from_speedpowder.json index 1ecacc2..2e45eb2 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_blockspeedpowder_from_speedpowder.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_blockspeedpowder_from_speedpowder.json @@ -6,9 +6,7 @@ "sss" ], "key": { - "s": { - "item": "quickiemod:speedpowder" - } + "s": "quickiemod:speedpowder" }, "result": { "id": "quickiemod:blockspeedpowder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_blockstacker.json b/src/main/resources/data/quickiemod/recipe/shaped_blockstacker.json index 9153079..6452dfe 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_blockstacker.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_blockstacker.json @@ -6,12 +6,11 @@ " s " ], "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "c": { - "tag": "c:chests" - } + "s": "quickiemod:speedingot", + "c": [ + "minecraft:chest", + "minecraft:barrel" + ] }, "result": { "id": "quickiemod:blockstackerdown", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_blocksulphor.json b/src/main/resources/data/quickiemod/recipe/shaped_blocksulphor.json index 5fb16d7..e915464 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_blocksulphor.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_blocksulphor.json @@ -6,9 +6,7 @@ "sss" ], "key": { - "s": { - "item": "quickiemod:sulphor" - } + "s": "quickiemod:sulphor" }, "result": { "id": "quickiemod:blocksulphor", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_canolabottlestack.json b/src/main/resources/data/quickiemod/recipe/shaped_canolabottlestack.json index 64db6f2..2b01214 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_canolabottlestack.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_canolabottlestack.json @@ -6,9 +6,7 @@ "ccc" ], "key": { - "c": { - "item": "quickiemod:canolabottle" - } + "c":"quickiemod:canolabottle" }, "result": { "id": "quickiemod:canolabottlestack", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_carrotstack_from_carrots.json b/src/main/resources/data/quickiemod/recipe/shaped_carrotstack_from_carrots.json index cb32703..5b53443 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_carrotstack_from_carrots.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_carrotstack_from_carrots.json @@ -5,9 +5,7 @@ "cc" ], "key": { - "c": { - "item": "minecraft:carrot" - } + "c": "minecraft:carrot" }, "result": { "id": "quickiemod:carrotstack" diff --git a/src/main/resources/data/quickiemod/recipe/shaped_drill.json b/src/main/resources/data/quickiemod/recipe/shaped_drill.json index df2930d..df1cf51 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_drill.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_drill.json @@ -1,17 +1,14 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "q q", + "qbq", "dqd", " d " ], "key": { - "q": { - "item": "quickiemod:quickieingot" - }, - "d": { - "item": "minecraft:diamond" - } + "q": "quickiemod:quickieingot", + "d": "minecraft:diamond", + "b": "minecraft:barrel" }, "result": { "id": "quickiemod:drill", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_drillstop.json b/src/main/resources/data/quickiemod/recipe/shaped_drillstop.json deleted file mode 100644 index f941aa7..0000000 --- a/src/main/resources/data/quickiemod/recipe/shaped_drillstop.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "ooo", - "oso", - "ooo" - ], - "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "o": { - "item": "minecraft:obsidian" - } - }, - "result": { - "id": "quickiemod:drillstop", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/data/quickiemod/recipe/shaped_emptylavahoarder.json b/src/main/resources/data/quickiemod/recipe/shaped_emptylavahoarder.json index bfa6deb..0ed4ddc 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_emptylavahoarder.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_emptylavahoarder.json @@ -1,17 +1,14 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "ooo", - "obo", - "ooo" + "oio", + "ibi", + "oio" ], "key": { - "o": { - "item": "minecraft:obsidian" - }, - "b": { - "item": "minecraft:bucket" - } + "o": "minecraft:obsidian", + "i": "quickiemod:quickieingot", + "b": "minecraft:bucket" }, "result": { "id": "quickiemod:emptylavahoarder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_barrel.json b/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_barrel.json index 0f40891..252da90 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_barrel.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_barrel.json @@ -2,16 +2,12 @@ "type": "minecraft:crafting_shaped", "pattern": [ "ooo", - "oso", + "obo", "ooo" ], "key": { - "o": { - "item": "quickiemod:speedpowder" - }, - "s": { - "item": "minecraft:barrel" - } + "o": "quickiemod:speedingot", + "b": "minecraft:barrel" }, "result": { "id": "quickiemod:itemhoarder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_chest.json b/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_chest.json index c344759..d6ddc24 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_chest.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_itemhoarder_from_chest.json @@ -2,16 +2,12 @@ "type": "minecraft:crafting_shaped", "pattern": [ "ooo", - "oso", + "oco", "ooo" ], "key": { - "o": { - "item": "quickiemod:speedpowder" - }, - "s": { - "tag": "c:chests" - } + "o": "quickiemod:speedingot", + "c": "minecraft:chest" }, "result": { "id": "quickiemod:itemhoarder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_kelpstack_from_kelp.json b/src/main/resources/data/quickiemod/recipe/shaped_kelpstack_from_kelp.json index 785c73f..22f5530 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_kelpstack_from_kelp.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_kelpstack_from_kelp.json @@ -6,9 +6,7 @@ "kkk" ], "key": { - "k": { - "item": "minecraft:kelp" - } + "k": "minecraft:kelp" }, "result": { "id": "quickiemod:kelpstack", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_monsterhoarder.json b/src/main/resources/data/quickiemod/recipe/shaped_monsterhoarder.json index 4360b7d..d19381d 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_monsterhoarder.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_monsterhoarder.json @@ -1,17 +1,14 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "qqq", + "oqo", "qtq", - "qqq" + "oqo" ], "key": { - "q": { - "item": "quickiemod:quickieingot" - }, - "t": { - "item": "minecraft:torch" - } + "q": "quickiemod:quickieingot", + "t": "minecraft:torch", + "o": "minecraft:obsidian" }, "result": { "id": "quickiemod:monsterhoarder", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderaxe.json b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderaxe.json index 74ad2d4..2de441b 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderaxe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderaxe.json @@ -7,12 +7,8 @@ " |" ], "key": { - "s": { - "item": "quickiemod:quickieingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:quickieingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:quickiepowderaxe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderhoe.json b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderhoe.json index 18155a1..defdd14 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderhoe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderhoe.json @@ -7,12 +7,8 @@ " |" ], "key": { - "s": { - "item": "quickiemod:quickieingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:quickieingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:quickiepowderhoe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderpickaxe.json b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderpickaxe.json index 45cae5e..99c0879 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderpickaxe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowderpickaxe.json @@ -7,12 +7,8 @@ " | " ], "key": { - "s": { - "item": "quickiemod:quickieingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:quickieingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:quickiepowderpickaxe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowdershovel.json b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowdershovel.json index e53cf7c..6e4a73d 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowdershovel.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowdershovel.json @@ -7,12 +7,8 @@ "|" ], "key": { - "s": { - "item": "quickiemod:quickieingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:quickieingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:quickiepowdershovel", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_speedpowder_shears.json b/src/main/resources/data/quickiemod/recipe/shaped_speedpowder_shears.json index 74d7164..e440505 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_speedpowder_shears.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_speedpowder_shears.json @@ -6,9 +6,7 @@ "# " ], "key": { - "#": { - "item": "quickiemod:speedingot" - } + "#": "quickiemod:speedingot" }, "result": { "id": "quickiemod:speedpowdershears" diff --git a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderaxe.json b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderaxe.json index 7e152ca..cd9cf5d 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderaxe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderaxe.json @@ -7,12 +7,8 @@ " |" ], "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:speedingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:speedpowderaxe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderhoe.json b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderhoe.json index b92631a..9f7ea07 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderhoe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderhoe.json @@ -7,12 +7,8 @@ " |" ], "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:speedingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:speedpowderhoe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderpickaxe.json b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderpickaxe.json index 9feb58c..9e8dd92 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_speedpowderpickaxe.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_speedpowderpickaxe.json @@ -7,12 +7,8 @@ " | " ], "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:speedingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:speedpowderpickaxe", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_speedpowdershovel.json b/src/main/resources/data/quickiemod/recipe/shaped_speedpowdershovel.json index 604e513..0e62864 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_speedpowdershovel.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_speedpowdershovel.json @@ -7,12 +7,8 @@ "|" ], "key": { - "s": { - "item": "quickiemod:speedingot" - }, - "|": { - "item": "minecraft:stick" - } + "s": "quickiemod:speedingot", + "|": "minecraft:stick" }, "result": { "id": "quickiemod:speedpowdershovel", diff --git a/src/main/resources/data/quickiemod/recipe/shaped_string_from_cotton.json b/src/main/resources/data/quickiemod/recipe/shaped_string_from_cotton.json index 2194e58..6038fe9 100644 --- a/src/main/resources/data/quickiemod/recipe/shaped_string_from_cotton.json +++ b/src/main/resources/data/quickiemod/recipe/shaped_string_from_cotton.json @@ -6,9 +6,7 @@ "c" ], "key": { - "c": { - "item": "quickiemod:cotton" - } + "c": "quickiemod:cotton" }, "result": { "id": "minecraft:string", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockquickiepowder_from_slimeblockandspeedpowderblock.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockquickiepowder_from_slimeblockandspeedpowderblock.json index efac6dd..38d0b09 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockquickiepowder_from_slimeblockandspeedpowderblock.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockquickiepowder_from_slimeblockandspeedpowderblock.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:slime_block" - }, - { - "item": "quickiemod:blockspeedpowder" - } + "minecraft:slime_block", + "quickiemod:blockspeedpowder" ], "result": { "id": "quickiemod:blockquickiepowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockspeedpowder_from_salpetersulforcoalblock.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockspeedpowder_from_salpetersulforcoalblock.json index 20c05cc..ee32948 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockspeedpowder_from_salpetersulforcoalblock.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockspeedpowder_from_salpetersulforcoalblock.json @@ -1,13 +1,10 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blocksalpeter" - },{ - "item": "quickiemod:blocksulphor" - },{ - "item": "minecraft:coal_block" - } + "quickiemod:blocksalpeter", + "quickiemod:blocksulphor", + "minecraft:coal_block", + "minecraft:redstone_block" ], "result": { "id": "quickiemod:blockspeedpowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerdown_up.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerdown_up.json index 4c7ed96..c58eb39 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerdown_up.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerdown_up.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackerup" - } + "quickiemod:blockstackerup" ], "result": { "id": "quickiemod:blockstackerdown", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackereast_down.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackereast_down.json index e2f8413..0a68da2 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackereast_down.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackereast_down.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackerdown" - } + "quickiemod:blockstackerdown" ], "result": { "id": "quickiemod:blockstackereast", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackernorth_west.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackernorth_west.json index c78e9e2..b2f5c4b 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackernorth_west.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackernorth_west.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackerwest" - } + "quickiemod:blockstackerwest" ], "result": { "id": "quickiemod:blockstackernorth", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackersouth_east.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackersouth_east.json index 4f1a3c3..2195e1a 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackersouth_east.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackersouth_east.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackereast" - } + "quickiemod:blockstackereast" ], "result": { "id": "quickiemod:blockstackersouth", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerup_north.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerup_north.json index c95b9bd..a0d15f1 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerup_north.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerup_north.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackernorth" - } + "quickiemod:blockstackernorth" ], "result": { "id": "quickiemod:blockstackerup", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerwest_south.json b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerwest_south.json index 89abf70..597e266 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerwest_south.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_blockstackerwest_south.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockstackersouth" - } + "quickiemod:blockstackersouth" ], "result": { "id": "quickiemod:blockstackerwest", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle.json b/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle.json index a930687..88f8760 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:glass_bottle" - }, - { - "item": "quickiemod:canola" - } + "minecraft:glass_bottle", + "quickiemod:canola" ], "result": { "id": "quickiemod:canolabottle", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle_from_stack.json b/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle_from_stack.json index 432f1b0..b8b8a59 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle_from_stack.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_canolabottle_from_stack.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:canolabottlestack" - } + "quickiemod:canolabottlestack" ], "result": { "id": "quickiemod:canolabottle", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_carrots_from_carrotstack.json b/src/main/resources/data/quickiemod/recipe/shapeless_carrots_from_carrotstack.json index 0724312..9f3e63d 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_carrots_from_carrotstack.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_carrots_from_carrotstack.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:carrotstack" - } + "quickiemod:carrotstack" ], "result": { "id": "minecraft:carrot", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drilleast_fromdrill.json b/src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json similarity index 76% rename from src/main/resources/data/quickiemod/recipe/shapeless_drilleast_fromdrill.json rename to src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json index 16adacf..20a3d08 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_drilleast_fromdrill.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drill2drilleast.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:drill" - } + "quickiemod:drill" ], "result": { "id": "quickiemod:drilleast", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth_fromdrilleast.json b/src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json similarity index 74% rename from src/main/resources/data/quickiemod/recipe/shapeless_drillsouth_fromdrilleast.json rename to src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json index d62b897..9d49d48 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth_fromdrilleast.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drilleast2drillsouth.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:drilleast" - } + "quickiemod:drilleast" ], "result": { "id": "quickiemod:drillsouth", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth_fromdrillwest.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json similarity index 73% rename from src/main/resources/data/quickiemod/recipe/shapeless_drillnorth_fromdrillwest.json rename to src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json index 5a85985..2dc6316 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth_fromdrillwest.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillnorth2drill.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:drillnorth" - } + "quickiemod:drillnorth" ], "result": { "id": "quickiemod:drill", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drillwest_fromdrillsouth.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json similarity index 74% rename from src/main/resources/data/quickiemod/recipe/shapeless_drillwest_fromdrillsouth.json rename to src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json index 0f596b4..05721ba 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_drillwest_fromdrillsouth.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillsouth2drillwest.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:drillsouth" - } + "quickiemod:drillsouth" ], "result": { "id": "quickiemod:drillwest", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_drill_fromdrillnorth.json b/src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json similarity index 74% rename from src/main/resources/data/quickiemod/recipe/shapeless_drill_fromdrillnorth.json rename to src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json index 95ae57f..d454d57 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_drill_fromdrillnorth.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_drillwest2drillnorth.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:drillwest" - } + "quickiemod:drillwest" ], "result": { "id": "quickiemod:drillnorth", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_glowstone_item_frame.json b/src/main/resources/data/quickiemod/recipe/shapeless_glowstone_item_frame.json deleted file mode 100644 index c33b2f4..0000000 --- a/src/main/resources/data/quickiemod/recipe/shapeless_glowstone_item_frame.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:item_frame" - }, - { - "item": "minecraft:glowstone_dust" - } - ], - "result": { - "id": "minecraft:glow_item_frame", - "count": 2 - } -} diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_gunpowder.json b/src/main/resources/data/quickiemod/recipe/shapeless_gunpowder.json index fb6c0df..a51640b 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_gunpowder.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_gunpowder.json @@ -1,15 +1,9 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:coal" - }, - { - "item": "quickiemod:sulphor" - }, - { - "item": "quickiemod:salpeter" - } + "minecraft:coal", + "quickiemod:sulphor", + "quickiemod:salpeter" ], "result": { "id": "minecraft:gunpowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_block.json b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_block.json index 39e4c1d..a4c871a 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_block.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_block.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockquickiepowder" - } + "quickiemod:blockquickiepowder" ], "result": { "id": "quickiemod:quickiepowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_oxidizedcopperpowder.json b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_oxidizedcopperpowder.json index 057b568..b89b35f 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_oxidizedcopperpowder.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_oxidizedcopperpowder.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:speedpowder" - }, - { - "item": "quickiemod:oxidizedcopperpowder" - } + "quickiemod:speedpowder", + "quickiemod:oxidizedcopperpowder" ], "result": { "id": "quickiemod:quickiepowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_slimeball.json b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_slimeball.json index 0723b3e..81437a5 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_slimeball.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowder_from_slimeball.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:speedpowder" - }, - { - "item": "minecraft:slime_ball" - } + "quickiemod:speedpowder", + "minecraft:slime_ball" ], "result": { "id": "quickiemod:quickiepowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowderwaterhoe.json b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowderwaterhoe.json index f583622..abf4445 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowderwaterhoe.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_quickiepowderwaterhoe.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:water_bucket" - }, - { - "item": "quickiemod:quickiepowderhoe" - } + "minecraft:water_bucket", + "quickiemod:quickiepowderhoe" ], "result": { "id": "quickiemod:quickiepowderwaterhoe", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_salpeter_from_block.json b/src/main/resources/data/quickiemod/recipe/shapeless_salpeter_from_block.json index 1758e0f..a9a47b7 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_salpeter_from_block.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_salpeter_from_block.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blocksalpeter" - } + "quickiemod:blocksalpeter" ], "result": { "id": "quickiemod:salpeter", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder.json b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder.json index a30ed13..98ab0a9 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:gunpowder" - }, - { - "item": "minecraft:redstone" - } + "minecraft:gunpowder", + "minecraft:redstone" ], "result": { "id": "quickiemod:speedpowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder_from_block.json b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder_from_block.json index fe9dbee..a1dba73 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder_from_block.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowder_from_block.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blockspeedpowder" - } + "quickiemod:blockspeedpowder" ], "result": { "id": "quickiemod:speedpowder", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowderwaterhoe.json b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowderwaterhoe.json index 309d718..b20a1d3 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_speedpowderwaterhoe.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_speedpowderwaterhoe.json @@ -1,12 +1,8 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:water_bucket" - }, - { - "item": "quickiemod:speedpowderhoe" - } + "minecraft:water_bucket", + "quickiemod:speedpowderhoe" ], "result": { "id": "quickiemod:speedpowderwaterhoe", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_string_from_wool.json b/src/main/resources/data/quickiemod/recipe/shapeless_string_from_wool.json index 187497d..c313c1c 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_string_from_wool.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_string_from_wool.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:white_wool" - } + "minecraft:white_wool" ], "result": { "id": "minecraft:string", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_stub.json b/src/main/resources/data/quickiemod/recipe/shapeless_stub.json index 19325e8..cc379e5 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_stub.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_stub.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "minecraft:stick" - } + "minecraft:stick" ], "result": { "id": "quickiemod:stub", diff --git a/src/main/resources/data/quickiemod/recipe/shapeless_sulphor_from_block.json b/src/main/resources/data/quickiemod/recipe/shapeless_sulphor_from_block.json index 449b3db..ce8cff4 100644 --- a/src/main/resources/data/quickiemod/recipe/shapeless_sulphor_from_block.json +++ b/src/main/resources/data/quickiemod/recipe/shapeless_sulphor_from_block.json @@ -1,9 +1,7 @@ { "type": "minecraft:crafting_shapeless", "ingredients": [ - { - "item": "quickiemod:blocksulphor" - } + "quickiemod:blocksulphor" ], "result": { "id": "quickiemod:sulphor", diff --git a/src/main/resources/data/quickiemod/recipe/smelting_salpeter1.json b/src/main/resources/data/quickiemod/recipe/smelting_salpeter1.json deleted file mode 100644 index c17f95f..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_salpeter1.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:dirtsalpeter" - } - ], - "result": { - "id":"quickiemod:salpeter" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smelting_salpeter2.json b/src/main/resources/data/quickiemod/recipe/smelting_salpeter2.json deleted file mode 100644 index 27ccf61..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_salpeter2.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:oresalpeter" - } - ], - "result": { - "id":"quickiemod:salpeter" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smelting_salpeter3.json b/src/main/resources/data/quickiemod/recipe/smelting_salpeter3.json deleted file mode 100644 index 4450012..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_salpeter3.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:oresandsalpeter" - } - ], - "result": { - "id":"quickiemod:salpeter" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smelting_salpeter4.json b/src/main/resources/data/quickiemod/recipe/smelting_salpeter4.json deleted file mode 100644 index 732cb25..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_salpeter4.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:sandsalpeter" - } - ], - "result": { - "id":"quickiemod:salpeter" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smelting_sulfur1.json b/src/main/resources/data/quickiemod/recipe/smelting_sulfur1.json deleted file mode 100644 index 8b658df..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_sulfur1.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:orenethersulphor" - } - ], - "result": { - "id":"quickiemod:sulphor" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smelting_sulfur2.json b/src/main/resources/data/quickiemod/recipe/smelting_sulfur2.json deleted file mode 100644 index 41bd30a..0000000 --- a/src/main/resources/data/quickiemod/recipe/smelting_sulfur2.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:smelting", - "group": "ores", - "ingredient": [ - { - "item": "quickiemod:oresulphor" - } - ], - "result": { - "id": "quickiemod:sulphor" - }, - "count": 1, - "experience": 0.5, - "cookingtime": 200 -} diff --git a/src/main/resources/data/quickiemod/recipe/smoking_dried_kelpblock.json b/src/main/resources/data/quickiemod/recipe/smoking_dried_kelpblock.json index 4424036..c714cc2 100644 --- a/src/main/resources/data/quickiemod/recipe/smoking_dried_kelpblock.json +++ b/src/main/resources/data/quickiemod/recipe/smoking_dried_kelpblock.json @@ -1,8 +1,6 @@ { "type": "minecraft:smoking", - "ingredient": { - "item": "quickiemod:kelpstack" - }, + "ingredient": "quickiemod:kelpstack", "result": { "id": "minecraft:dried_kelp_block" }, diff --git a/src/main/resources/data/quickiemod/recipe/smoking_leather_from_flesh_stripes.json b/src/main/resources/data/quickiemod/recipe/smoking_leather_from_flesh_stripes.json index 41aea97..2cb4c5f 100644 --- a/src/main/resources/data/quickiemod/recipe/smoking_leather_from_flesh_stripes.json +++ b/src/main/resources/data/quickiemod/recipe/smoking_leather_from_flesh_stripes.json @@ -1,8 +1,6 @@ { "type": "minecraft:smoking", - "ingredient": { - "item": "quickiemod:rotten_flesh_stripes" - }, + "ingredient": "quickiemod:rotten_flesh_stripes", "result": { "id":"minecraft:leather" }, diff --git a/src/main/resources/data/quickiemod/recipe/stonecutting_flesh_stripes.json b/src/main/resources/data/quickiemod/recipe/stonecutting_flesh_stripes.json index 636154a..722e789 100644 --- a/src/main/resources/data/quickiemod/recipe/stonecutting_flesh_stripes.json +++ b/src/main/resources/data/quickiemod/recipe/stonecutting_flesh_stripes.json @@ -1,8 +1,6 @@ { "type": "minecraft:stonecutting", - "ingredient": { - "item": "minecraft:rotten_flesh" - }, + "ingredient": "minecraft:rotten_flesh", "result": { "id": "quickiemod:rotten_flesh_stripes" }, diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index e2f4fe1..0467c03 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "id": "quickiemod", "version": "${version}", - "name": "QuickieMod", + "name": "Quickiemod", "description": "Speed up daily work in Minecraft.", "authors": [ "jottyfan" @@ -16,25 +16,24 @@ "environment": "*", "entrypoints": { "main": [ - "de.jottyfan.quickiemod.QuickieMod" + "de.jottyfan.quickiemod.Quickiemod" ], "fabric-datagen": [ - "de.jottyfan.quickiemod.QuickieModDataGenerator" + "de.jottyfan.quickiemod.QuickiemodDataGenerator" ], "client": [ - "de.jottyfan.quickiemod.QuickieModClient" + "de.jottyfan.quickiemod.QuickiemodClient" ] }, "mixins": [ - "quickiemod.mixins.json" ], "depends": { - "fabricloader": ">=0.15.11", - "minecraft": "~1.21.1", + "fabricloader": ">=0.16.9", + "minecraft": "~1.21.3", "java": ">=21", "fabric-api": "*" }, "suggests": { - "flamingo": "*" + "another-mod": "*" } } diff --git a/src/main/resources/quickiemod.mixins.json b/src/main/resources/quickiemod.mixins.json deleted file mode 100644 index f2859fb..0000000 --- a/src/main/resources/quickiemod.mixins.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "de.jottyfan.quickiemod.mixin", - "compatibilityLevel": "JAVA_21", - "mixins": [ - "BlockBreakMixin" - ], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file