added speedpowder hoe

This commit is contained in:
Jörg Henke 2021-08-15 15:12:16 +02:00
parent f1949e811b
commit 3ae69a775f
5 changed files with 126 additions and 0 deletions

0
logs/latest.log Normal file
View File

View File

@ -0,0 +1,100 @@
package de.jottyfan.minecraft.quickiefabric.tools;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.google.common.collect.Lists;
import de.jottyfan.minecraft.quickiefabric.init.RegistryManager;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.item.HoeItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUsageContext;
import net.minecraft.item.ToolMaterials;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3i;
import net.minecraft.util.registry.Registry;
/**
*
* @author jotty
*
*/
public class ToolSpeedpowderHoe extends HoeItem implements ToolRangeable {
private static final Logger LOGGER = LogManager.getLogger(ToolSpeedpowderHoe.class);
public static final Integer DEFAULT_PLOW_RANGE = 4;
public HarvestRange range;
public ToolSpeedpowderHoe() {
super(ToolMaterials.DIAMOND, 4, 2.0f, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP));
this.range = new HarvestRange(DEFAULT_PLOW_RANGE);
}
@Override
public ActionResult useOnBlock(ItemUsageContext context) {
ActionResult res = super.useOnBlock(context);
if (!ActionResult.PASS.equals(res)) {
for (int x = -this.range.getxRange(); x <= this.range.getxRange(); x++) {
for (int y = -this.range.getyRange(); y <= this.range.getyRange(); y++) {
for (int z = -this.range.getzRange(); z <= this.range.getzRange(); z++) {
BlockHitResult bhr = new BlockHitResult(context.getHitPos(), Direction.UP,
context.getBlockPos().add(new Vec3i(x, y, z)), isDamageable());
ItemUsageContext ctx = new ItemUsageContext(context.getPlayer(), context.getHand(), bhr);
super.useOnBlock(ctx);
}
}
}
}
return res;
}
@Override
public HarvestRange getRange(ItemStack stack) {
// TODO: get range from stack
return range;
}
@Override
public boolean canBreakNeighbors(BlockState blockState) {
boolean result = HOE_EFFECTIVE_ON.contains(blockState.getBlock()) || checkExternalBlock(blockState.getBlock());
if (!result) {
if (!blockState.isAir()) {
LOGGER.debug("cannot break block {} with that speedpowder hoe", Registry.BLOCK.getId(blockState.getBlock()));
}
}
return result;
}
private boolean checkExternalBlock(Block block) {
boolean result = false;
for (Identifier externalID : HOE_EXTERNAL_EFFECTIVE_ON) {
Block registeredBlock = Registry.BLOCK.get(externalID); // may be null if mods are not available
result = result || (registeredBlock != null && registeredBlock.equals(block));
}
return result;
}
@Override
public List<Block> getBlockList(Block block) {
return Lists.newArrayList(block);
}
// @Override
// public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) {
// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn);
// return super.onItemRightClick(worldIn, playerIn, handIn);
// }
//
// @Override
// public void addInformation(ItemStack stack, World worldIn, List<ITextComponent> tooltip, ITooltipFlag flagIn) {
// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn);
// super.addInformation(stack, worldIn, tooltip, flagIn);
// }
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/wooden_hoe",
"textures": {
"layer0": "quickiefabric:item/speedpowderhoe"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"ss",
" |",
" |"
],
"key": {
"s": {
"item": "quickiefabric:speedpowder"
},
"|": {
"item": "minecraft:stick"
}
},
"result": {
"item": "quickiefabric:speedpowderhoe",
"count": 1
}
}