Init
This commit is contained in:
26
src/main/java/systems/brn/plasticgun/lib/GunComponents.java
Normal file
26
src/main/java/systems/brn/plasticgun/lib/GunComponents.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package systems.brn.plasticgun.lib;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import eu.pb4.polymer.core.api.other.PolymerComponent;
|
||||
import net.minecraft.component.ComponentType;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
|
||||
import java.util.function.UnaryOperator;
|
||||
|
||||
|
||||
public class GunComponents {
|
||||
public static final ComponentType<ItemStack> GUN_AMMO_COMPONENT = register("gunammo", builder -> builder.codec(ItemStack.CODEC));
|
||||
public static final ComponentType<Integer> GUN_LOADING_COMPONENT = register("gunload", builder -> builder.codec(Codec.INT));
|
||||
|
||||
private static <T> ComponentType<T> register(String id, UnaryOperator<ComponentType.Builder<T>> builderOperator) {
|
||||
ComponentType<T> componentType = Registry.register(
|
||||
Registries.DATA_COMPONENT_TYPE,
|
||||
id,
|
||||
builderOperator.apply(ComponentType.builder()).build()
|
||||
);
|
||||
PolymerComponent.registerDataComponent(componentType);
|
||||
return componentType;
|
||||
}
|
||||
}
|
32
src/main/java/systems/brn/plasticgun/lib/SimpleItem.java
Normal file
32
src/main/java/systems/brn/plasticgun/lib/SimpleItem.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package systems.brn.plasticgun.lib;
|
||||
|
||||
import eu.pb4.polymer.core.api.item.PolymerItem;
|
||||
import eu.pb4.polymer.core.api.item.SimplePolymerItem;
|
||||
import eu.pb4.polymer.resourcepack.api.PolymerModelData;
|
||||
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class SimpleItem extends SimplePolymerItem implements PolymerItem {
|
||||
private final PolymerModelData polymerModel;
|
||||
protected final Identifier identifier;
|
||||
|
||||
public SimpleItem(Settings settings, Identifier identifier) {
|
||||
super(settings, Items.BARRIER);
|
||||
this.identifier = identifier;
|
||||
this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, identifier.withPath("item/" + identifier.getPath()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity player) {
|
||||
return this.polymerModel.item();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayerEntity player) {
|
||||
return this.polymerModel.value();
|
||||
}
|
||||
|
||||
}
|
31
src/main/java/systems/brn/plasticgun/lib/Util.java
Normal file
31
src/main/java/systems/brn/plasticgun/lib/Util.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package systems.brn.plasticgun.lib;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import static systems.brn.plasticgun.PlasticGun.MOD_ID;
|
||||
|
||||
public class Util {
|
||||
|
||||
public static Identifier id(String path) {
|
||||
return Identifier.of(MOD_ID, path);
|
||||
}
|
||||
|
||||
public static ItemStack findBulletStack(ArrayList<Item> bulletItem, ServerPlayerEntity player) {
|
||||
if (bulletItem == null || bulletItem.isEmpty()) {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
for (ItemStack itemStack : player.getInventory().main) {
|
||||
for (Item item : bulletItem) {
|
||||
if (item == itemStack.getItem()) {
|
||||
return itemStack;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user