Registries, Base blocks with entities
This commit is contained in:
parent
5aeee09cfc
commit
8ab247f861
45 changed files with 1684 additions and 40 deletions
34
src/main/java/ru/bclib/items/tool/BaseAxeItem.java
Normal file
34
src/main/java/ru/bclib/items/tool/BaseAxeItem.java
Normal file
|
@ -0,0 +1,34 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.AxeItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import ru.bclib.client.models.ItemModelProvider;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
|
||||
public class BaseAxeItem extends AxeItem implements DynamicAttributeTool, ItemModelProvider {
|
||||
public BaseAxeItem(Tier material, float attackDamage, float attackSpeed, Properties settings) {
|
||||
super(material, attackDamage, attackSpeed, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
|
||||
if (tag.equals(FabricToolTags.AXES)) {
|
||||
return this.getTier().getLevel();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
||||
return ModelsHelper.createHandheldItem(resourceLocation);
|
||||
}
|
||||
}
|
19
src/main/java/ru/bclib/items/tool/BaseHoeItem.java
Normal file
19
src/main/java/ru/bclib/items/tool/BaseHoeItem.java
Normal file
|
@ -0,0 +1,19 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.HoeItem;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import ru.bclib.client.models.ItemModelProvider;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
|
||||
public class BaseHoeItem extends HoeItem implements ItemModelProvider {
|
||||
public BaseHoeItem(Tier material, int attackDamage, float attackSpeed, Properties settings) {
|
||||
super(material, attackDamage, attackSpeed, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
||||
return ModelsHelper.createHandheldItem(resourceLocation);
|
||||
}
|
||||
}
|
42
src/main/java/ru/bclib/items/tool/BasePickaxeItem.java
Normal file
42
src/main/java/ru/bclib/items/tool/BasePickaxeItem.java
Normal file
|
@ -0,0 +1,42 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
|
||||
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl.Entry;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.PickaxeItem;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import ru.bclib.client.models.ItemModelProvider;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
|
||||
public class BasePickaxeItem extends PickaxeItem implements DynamicAttributeTool, ItemModelProvider {
|
||||
public BasePickaxeItem(Tier material, int attackDamage, float attackSpeed, Properties settings) {
|
||||
super(material, attackDamage, attackSpeed, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
|
||||
if (tag.equals(FabricToolTags.PICKAXES)) {
|
||||
return getTier().getLevel();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getDestroySpeed(ItemStack stack, BlockState state) {
|
||||
Entry entry = ToolManagerImpl.entryNullable(state.getBlock());
|
||||
return (entry != null && entry.getMiningLevel(FabricToolTags.PICKAXES) >= 0) ? speed : super.getDestroySpeed(stack, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
||||
return ModelsHelper.createHandheldItem(resourceLocation);
|
||||
}
|
||||
}
|
42
src/main/java/ru/bclib/items/tool/BaseShovelItem.java
Normal file
42
src/main/java/ru/bclib/items/tool/BaseShovelItem.java
Normal file
|
@ -0,0 +1,42 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
|
||||
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl.Entry;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.Tag;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ShovelItem;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import ru.bclib.client.models.ItemModelProvider;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
|
||||
public class BaseShovelItem extends ShovelItem implements DynamicAttributeTool, ItemModelProvider {
|
||||
public BaseShovelItem(Tier material, float attackDamage, float attackSpeed, Properties settings) {
|
||||
super(material, attackDamage, attackSpeed, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMiningLevel(Tag<Item> tag, BlockState state, ItemStack stack, LivingEntity user) {
|
||||
if (tag.equals(FabricToolTags.SHOVELS)) {
|
||||
return this.getTier().getLevel();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getDestroySpeed(ItemStack stack, BlockState state) {
|
||||
Entry entry = ToolManagerImpl.entryNullable(state.getBlock());
|
||||
return (entry != null && entry.getMiningLevel(FabricToolTags.SHOVELS) >= 0) ? speed : super.getDestroySpeed(stack, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
||||
return ModelsHelper.createHandheldItem(resourceLocation);
|
||||
}
|
||||
}
|
20
src/main/java/ru/bclib/items/tool/BaseSwordItem.java
Normal file
20
src/main/java/ru/bclib/items/tool/BaseSwordItem.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
package ru.bclib.items.tool;
|
||||
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.DynamicAttributeTool;
|
||||
import net.minecraft.client.renderer.block.model.BlockModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.SwordItem;
|
||||
import net.minecraft.world.item.Tier;
|
||||
import ru.bclib.client.models.ItemModelProvider;
|
||||
import ru.bclib.client.models.ModelsHelper;
|
||||
|
||||
public class BaseSwordItem extends SwordItem implements DynamicAttributeTool, ItemModelProvider {
|
||||
public BaseSwordItem(Tier material, int attackDamage, float attackSpeed, Properties settings) {
|
||||
super(material, attackDamage, attackSpeed, settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
||||
return ModelsHelper.createHandheldItem(resourceLocation);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue