sorting fixed

This commit is contained in:
2021-08-26 11:55:35 +02:00
parent 492b0f3afc
commit dd35d5e3f1
10 changed files with 38 additions and 32 deletions

View File

@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.11.6 loader_version=0.11.6
# Mod Properties # Mod Properties
mod_version = 1.17.1.3 mod_version = 1.17.1.4
maven_group = de.jottyfan.minecraft maven_group = de.jottyfan.minecraft
archives_base_name = quickiefabric archives_base_name = quickiefabric

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.OreBlock; import net.minecraft.block.OreBlock;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreNetherSulphor extends OreBlock { public class BlockOreNetherSulphor extends OreBlock {
public BlockOreNetherSulphor() { public BlockOreNetherSulphor() {
super(FabricBlockSettings.of(Material.STONE).hardness(2.1f)); super(FabricBlockSettings.of(Material.STONE).hardness(2.1f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
} }
@Override @Override

View File

@ -4,7 +4,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import de.jottyfan.minecraft.quickiefabric.tools.QuickieTools;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.OreBlock; import net.minecraft.block.OreBlock;
@ -19,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSalpeter extends OreBlock { public class BlockOreSalpeter extends OreBlock {
public BlockOreSalpeter() { public BlockOreSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f)); super(FabricBlockSettings.of(Material.STONE).hardness(3.1f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
} }
@Override @Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.Material; import net.minecraft.block.Material;
@ -20,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSandSalpeter extends OreBlock { public class BlockOreSandSalpeter extends OreBlock {
public BlockOreSandSalpeter() { public BlockOreSandSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(2.9f)); super(FabricBlockSettings.of(Material.STONE).hardness(2.9f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
} }
@Override @Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
import net.minecraft.block.OreBlock; import net.minecraft.block.OreBlock;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSulphor extends OreBlock { public class BlockOreSulphor extends OreBlock {
public BlockOreSulphor() { public BlockOreSulphor() {
super(FabricBlockSettings.of(Material.STONE).hardness(1.9f)); super(FabricBlockSettings.of(Material.STONE).hardness(1.9f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
} }
@Override @Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.GravelBlock; import net.minecraft.block.GravelBlock;
@ -20,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockSandSalpeter extends GravelBlock { public class BlockSandSalpeter extends GravelBlock {
public BlockSandSalpeter() { public BlockSandSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f)); super(FabricBlockSettings.of(Material.STONE).hardness(3.1f).requiresTool().breakByTool(FabricToolTags.SHOVELS));
} }
@Override @Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Material; import net.minecraft.block.Material;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockSulphor extends Block { public class BlockSulphor extends Block {
public BlockSulphor() { public BlockSulphor() {
super(FabricBlockSettings.of(Material.WOOL).hardness(0.5f)); super(FabricBlockSettings.of(Material.WOOL).hardness(0.5f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
} }
@Override @Override

View File

@ -4,9 +4,6 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import de.jottyfan.minecraft.quickiefabric.items.ItemBackpack; import de.jottyfan.minecraft.quickiefabric.items.ItemBackpack;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.SimpleInventory; import net.minecraft.inventory.SimpleInventory;
@ -24,8 +21,6 @@ import net.minecraft.util.Hand;
* *
*/ */
public class BackpackInventory extends SimpleInventory { public class BackpackInventory extends SimpleInventory {
private static final Logger LOGGER = LogManager.getLogger(BackpackInventory.class);
private static final String NBT_BACKPACK = "backpack"; private static final String NBT_BACKPACK = "backpack";
private static final String NBT_SLOT = "slot"; private static final String NBT_SLOT = "slot";
private static final String NBT_ITEMS = "items"; private static final String NBT_ITEMS = "items";
@ -131,21 +126,25 @@ public class BackpackInventory extends SimpleInventory {
/** /**
* set the items in the itemStack that contains the backpack * set the items in the itemStack that contains the backpack
* *
* @param itemStack the backpack's itemStack * @param itemStack the backpack's itemStack
* @param itemStacks the collection of itemStacks for the backpack * @param itemStacks the collection of lists of itemStacks for the backpack
*/ */
public static void setItemsToBackpack(ItemStack itemStack, Collection<ItemStack> itemStacks) { public static void setItemsToBackpack(ItemStack itemStack, Collection<List<ItemStack>> itemStacks) {
NbtList listTag = new NbtList(); NbtList listTag = new NbtList();
Integer slot = 0; Integer slot = 0;
for (ItemStack stack : itemStacks) { for (List<ItemStack> stacks : itemStacks) {
if (!(stack == null) && !stack.isEmpty()) { if (stacks != null && stacks.size() > 0) {
Integer leftCount = stack.getCount(); ItemStack stack = stacks.get(0);
Integer leftCount = 0;
for (ItemStack is : stacks) {
leftCount += is.getCount();
}
while (leftCount > 0) { while (leftCount > 0) {
LOGGER.info("add {}x{} to backpack", stack.getCount(), stack.getTranslationKey()); if (leftCount > stack.getMaxCount()) {
if (stack.getCount() > stack.getMaxCount()) { stack.setCount(stack.getMaxCount());
leftCount = stack.getCount() - stack.getMaxCount(); leftCount = leftCount - stack.getMaxCount();
stack.setCount(leftCount);
} else { } else {
stack.setCount(leftCount);
leftCount = 0; leftCount = 0;
} }
listTag.add(prepareCompoundTag(slot, stack)); listTag.add(prepareCompoundTag(slot, stack));

View File

@ -1,5 +1,6 @@
package de.jottyfan.minecraft.quickiefabric.items; package de.jottyfan.minecraft.quickiefabric.items;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -84,15 +85,15 @@ public class ItemBackpack extends Item {
private ItemStack sortBackpackContent(ItemStack itemStack) { private ItemStack sortBackpackContent(ItemStack itemStack) {
if (!itemStack.isEmpty()) { if (!itemStack.isEmpty()) {
List<ItemStack> stacks = BackpackInventory.getItemsFromBackpack(itemStack); List<ItemStack> stacks = BackpackInventory.getItemsFromBackpack(itemStack);
Map<String, ItemStack> map = new HashMap<>(); Map<String, List<ItemStack>> map = new HashMap<>();
for (ItemStack stack : stacks) { for (ItemStack stack : stacks) {
String id = stack.getItem().getTranslationKey(); String id = stack.getItem().getTranslationKey();
ItemStack foundStack = map.get(id); List<ItemStack> foundStacks = map.get(id);
if (foundStack == null) { if (foundStacks == null) {
map.put(id, stack); foundStacks = new ArrayList<>();
} else { map.put(id, foundStacks);
foundStack.setCount(foundStack.getCount() + stack.getCount());
} }
foundStacks.add(stack);
} }
BackpackInventory.setItemsToBackpack(itemStack, map.values()); BackpackInventory.setItemsToBackpack(itemStack, map.values());
} }

View File

@ -20,13 +20,12 @@ import net.minecraft.nbt.NbtCompound;
*/ */
public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable { public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable {
public static final int[] DEFAULT_HARVEST_RANGE = new int[] {3, 3, 3}; public static final int[] DEFAULT_HARVEST_RANGE = new int[] { 3, 3, 3 };
public ToolSpeedpowderPickaxe() { public ToolSpeedpowderPickaxe() {
super(ToolMaterials.DIAMOND, 4, 2.0f, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP)); super(ToolMaterials.DIAMOND, 4, 2.0f, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP));
} }
@Override @Override
public HarvestRange getRange(ItemStack stack) { public HarvestRange getRange(ItemStack stack) {
NbtCompound tag = stack.getNbt(); NbtCompound tag = stack.getNbt();
@ -58,7 +57,7 @@ public class ToolSpeedpowderPickaxe extends PickaxeItem implements ToolRangeable
harvestRange.addXYZ(plusRange); harvestRange.addXYZ(plusRange);
tag.putIntArray("range", harvestRange.getRangeAsArray()); tag.putIntArray("range", harvestRange.getRangeAsArray());
} }
// @Override // @Override
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) { // public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn); // CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);