Changed models loading (Done)

This commit is contained in:
Aleksey 2021-05-24 15:04:16 +03:00
parent 831faeb306
commit 5da634fc73
63 changed files with 490 additions and 729 deletions

View file

@ -10,7 +10,9 @@ import com.google.common.collect.Sets;
import io.netty.util.internal.ThreadLocalRandom;
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
import net.minecraft.client.renderer.block.model.BlockModel;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.Tag;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.EquipmentSlot;
@ -27,11 +29,12 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Material;
import ru.betterend.client.models.ModelProvider;
import ru.betterend.client.models.ItemModelProvider;
import ru.betterend.client.models.ModelsHelper;
import ru.betterend.client.models.Patterns;
import ru.betterend.registry.EndTags;
public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, ModelProvider {
public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, ItemModelProvider {
public final static UUID ATTACK_KNOCKBACK_MODIFIER_ID = Mth.createInsecureUUID(ThreadLocalRandom.current());
private final Multimap<Attribute, AttributeModifier> attributeModifiers;
@ -58,9 +61,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, M
@Override
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
stack.hurtAndBreak(1, attacker, ((entity) -> {
entity.broadcastBreakEvent(EquipmentSlot.MAINHAND);
}));
stack.hurtAndBreak(1, attacker, ((entity) -> entity.broadcastBreakEvent(EquipmentSlot.MAINHAND)));
return true;
}
@ -68,9 +69,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, M
@Override
public boolean mineBlock(ItemStack stack, Level world, BlockState state, BlockPos pos, LivingEntity miner) {
if (state.getDestroySpeed(world, pos) != 0.0F) {
stack.hurtAndBreak(1, miner, ((entity) -> {
entity.broadcastBreakEvent(EquipmentSlot.MAINHAND);
}));
stack.hurtAndBreak(1, miner, ((entity) -> entity.broadcastBreakEvent(EquipmentSlot.MAINHAND)));
}
return true;
@ -82,13 +81,13 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, M
return this.getTier().getSpeed() * 2.0F;
}
if (isCorrectToolForDrops(state)) {
float mult = 1.0F;
float mult;
if (state.is(Blocks.DIAMOND_BLOCK) || state.is(Blocks.EMERALD_BLOCK) || state.is(Blocks.LAPIS_BLOCK) || state.is(Blocks.REDSTONE_BLOCK)) {
mult = this.getTier().getSpeed();
} else {
mult = this.getTier().getSpeed() / 2.0F;
}
return mult > 1.0F ? mult : 1.0F;
return Math.max(mult, 1.0F);
}
return 1.0F;
}
@ -136,7 +135,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, M
}
@Override
public Optional<String> getModelString(String name) {
return Patterns.createJson(Patterns.ITEM_HANDHELD, name);
public BlockModel getItemModel(ResourceLocation resourceLocation) {
return ModelsHelper.createHandheldItem(resourceLocation.getPath());
}
}