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

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
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.Material;
import net.minecraft.block.OreBlock;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreNetherSulphor extends OreBlock {
public BlockOreNetherSulphor() {
super(FabricBlockSettings.of(Material.STONE).hardness(2.1f));
super(FabricBlockSettings.of(Material.STONE).hardness(2.1f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
}
@Override

View File

@ -4,7 +4,9 @@ import java.util.Arrays;
import java.util.List;
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.tool.attribute.v1.FabricToolTags;
import net.minecraft.block.BlockState;
import net.minecraft.block.Material;
import net.minecraft.block.OreBlock;
@ -19,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSalpeter extends OreBlock {
public BlockOreSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f));
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
}
@Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
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.Blocks;
import net.minecraft.block.Material;
@ -20,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSandSalpeter extends OreBlock {
public BlockOreSandSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(2.9f));
super(FabricBlockSettings.of(Material.STONE).hardness(2.9f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
}
@Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
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.Material;
import net.minecraft.block.OreBlock;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockOreSulphor extends OreBlock {
public BlockOreSulphor() {
super(FabricBlockSettings.of(Material.STONE).hardness(1.9f));
super(FabricBlockSettings.of(Material.STONE).hardness(1.9f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
}
@Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
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.Blocks;
import net.minecraft.block.GravelBlock;
@ -20,7 +21,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockSandSalpeter extends GravelBlock {
public BlockSandSalpeter() {
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f));
super(FabricBlockSettings.of(Material.STONE).hardness(3.1f).requiresTool().breakByTool(FabricToolTags.SHOVELS));
}
@Override

View File

@ -5,6 +5,7 @@ import java.util.List;
import de.jottyfan.minecraft.quickiefabric.items.QuickieItems;
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.BlockState;
import net.minecraft.block.Material;
@ -19,7 +20,7 @@ import net.minecraft.loot.context.LootContext.Builder;
public class BlockSulphor extends Block {
public BlockSulphor() {
super(FabricBlockSettings.of(Material.WOOL).hardness(0.5f));
super(FabricBlockSettings.of(Material.WOOL).hardness(0.5f).requiresTool().breakByTool(FabricToolTags.PICKAXES));
}
@Override

View File

@ -4,9 +4,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import de.jottyfan.minecraft.quickiefabric.items.ItemBackpack;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.SimpleInventory;
@ -24,8 +21,6 @@ import net.minecraft.util.Hand;
*
*/
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_SLOT = "slot";
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
*
* @param itemStack the backpack's itemStack
* @param itemStacks the collection of itemStacks for the backpack
* @param itemStack the backpack's itemStack
* @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();
Integer slot = 0;
for (ItemStack stack : itemStacks) {
if (!(stack == null) && !stack.isEmpty()) {
Integer leftCount = stack.getCount();
for (List<ItemStack> stacks : itemStacks) {
if (stacks != null && stacks.size() > 0) {
ItemStack stack = stacks.get(0);
Integer leftCount = 0;
for (ItemStack is : stacks) {
leftCount += is.getCount();
}
while (leftCount > 0) {
LOGGER.info("add {}x{} to backpack", stack.getCount(), stack.getTranslationKey());
if (stack.getCount() > stack.getMaxCount()) {
leftCount = stack.getCount() - stack.getMaxCount();
stack.setCount(leftCount);
if (leftCount > stack.getMaxCount()) {
stack.setCount(stack.getMaxCount());
leftCount = leftCount - stack.getMaxCount();
} else {
stack.setCount(leftCount);
leftCount = 0;
}
listTag.add(prepareCompoundTag(slot, stack));

View File

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

View File

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