Update to 1.21.5
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '1.8-SNAPSHOT'
|
id 'fabric-loom' version '1.10-SNAPSHOT'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,6 +37,7 @@ dependencies {
|
|||||||
modImplementation include("eu.pb4:polymer-resource-pack:${project.polymer_version}")
|
modImplementation include("eu.pb4:polymer-resource-pack:${project.polymer_version}")
|
||||||
modImplementation include("eu.pb4:polymer-resource-pack-extras:${project.polymer_version}")
|
modImplementation include("eu.pb4:polymer-resource-pack-extras:${project.polymer_version}")
|
||||||
modImplementation include("eu.pb4:polymer-autohost:${project.polymer_version}")
|
modImplementation include("eu.pb4:polymer-autohost:${project.polymer_version}")
|
||||||
|
modImplementation "eu.pb4.polyport:trinkets:${project.trinkets_version}"
|
||||||
|
|
||||||
modImplementation include("xyz.nucleoid:server-translations-api:${project.server_translations_api_version}")
|
modImplementation include("xyz.nucleoid:server-translations-api:${project.server_translations_api_version}")
|
||||||
|
|
||||||
@@ -48,11 +49,13 @@ processResources {
|
|||||||
inputs.property "version", project.version
|
inputs.property "version", project.version
|
||||||
inputs.property "minecraft_version", project.minecraft_version
|
inputs.property "minecraft_version", project.minecraft_version
|
||||||
inputs.property "loader_version", project.loader_version
|
inputs.property "loader_version", project.loader_version
|
||||||
|
inputs.property "trinkets_version", project.trinkets_version
|
||||||
filteringCharset "UTF-8"
|
filteringCharset "UTF-8"
|
||||||
|
|
||||||
filesMatching("fabric.mod.json") {
|
filesMatching("fabric.mod.json") {
|
||||||
expand "version": project.version,
|
expand "version": project.version,
|
||||||
"minecraft_version": project.minecraft_version,
|
"minecraft_version": project.minecraft_version,
|
||||||
|
"trinkets_version": project.trinkets_version,
|
||||||
"loader_version": project.loader_version
|
"loader_version": project.loader_version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,16 +2,17 @@
|
|||||||
org.gradle.jvmargs=-Xmx1G
|
org.gradle.jvmargs=-Xmx1G
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://modmuss50.me/fabric.html
|
# check these on https://modmuss50.me/fabric.html
|
||||||
minecraft_version=1.21.4
|
minecraft_version=1.21.5
|
||||||
yarn_mappings=1.21.4+build.2
|
yarn_mappings=1.21.5+build.1
|
||||||
loader_version=0.16.9
|
loader_version=0.16.13
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=2.0.0
|
mod_version=2.0.2
|
||||||
maven_group=systems.brn
|
maven_group=systems.brn
|
||||||
archives_base_name=plasticgun
|
archives_base_name=plasticgun
|
||||||
# Dependencies
|
# Dependencies
|
||||||
# check this on https://modmuss50.me/fabric.html
|
# check this on https://modmuss50.me/fabric.html
|
||||||
fabric_version=0.111.0+1.21.4
|
fabric_version=0.120.0+1.21.5
|
||||||
|
|
||||||
polymer_version=0.11.1+1.21.4
|
trinkets_version=3.11.0-beta.1+polymerport.1
|
||||||
server_translations_api_version=2.4.0+1.21.2-rc1
|
polymer_version=0.12.3+1.21.5
|
||||||
|
server_translations_api_version=2.5.0+1.21.5-rc1
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
@@ -97,7 +97,7 @@ public class BulletEntity extends PersistentProjectileEntity implements PolymerE
|
|||||||
this.setPosition(blockHitResult.getPos());
|
this.setPosition(blockHitResult.getPos());
|
||||||
if (blockHitResult.getType() == HitResult.Type.BLOCK) {
|
if (blockHitResult.getType() == HitResult.Type.BLOCK) {
|
||||||
BlockState block = this.getWorld().getBlockState(blockHitResult.getBlockPos());
|
BlockState block = this.getWorld().getBlockState(blockHitResult.getBlockPos());
|
||||||
blockHitParticles(this.getPos(), block, this.getWorld(), this.getDamage() * this.getVelocity().length());
|
blockHitParticles(this.getPos(), block, this.getWorld(), this.damage * this.getVelocity().length());
|
||||||
SoundEvent soundEvent = block.getSoundGroup().getHitSound();
|
SoundEvent soundEvent = block.getSoundGroup().getHitSound();
|
||||||
setSilent(false);
|
setSilent(false);
|
||||||
playSound(soundEvent, 4.0F, 1.0F);
|
playSound(soundEvent, 4.0F, 1.0F);
|
||||||
@@ -118,8 +118,8 @@ public class BulletEntity extends PersistentProjectileEntity implements PolymerE
|
|||||||
setSilent(true);
|
setSilent(true);
|
||||||
|
|
||||||
if (entityHitResult.getEntity() instanceof LivingEntity livingEntity) {
|
if (entityHitResult.getEntity() instanceof LivingEntity livingEntity) {
|
||||||
this.setDamage(getFinalDamage(livingEntity, WeaponDamageType.BULLET, this.getDamage()));
|
this.setDamage(getFinalDamage(livingEntity, WeaponDamageType.BULLET, this.damage));
|
||||||
entityHitParticles(livingEntity, this.getDamage() * this.getVelocity().length());
|
entityHitParticles(livingEntity, this.damage * this.getVelocity().length());
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onEntityHit(entityHitResult);
|
super.onEntityHit(entityHitResult);
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package systems.brn.plasticgun.defence;
|
package systems.brn.plasticgun.defence;
|
||||||
|
|
||||||
|
import dev.emi.trinkets.api.Trinket;
|
||||||
|
import dev.emi.trinkets.api.TrinketsApi;
|
||||||
import net.minecraft.component.DataComponentTypes;
|
import net.minecraft.component.DataComponentTypes;
|
||||||
import net.minecraft.component.type.LoreComponent;
|
import net.minecraft.component.type.LoreComponent;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
@@ -16,7 +18,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import static systems.brn.plasticgun.lib.Util.id;
|
import static systems.brn.plasticgun.lib.Util.id;
|
||||||
|
|
||||||
public class WeaponArmor extends TrinketPolymerItem {
|
public class WeaponArmor extends TrinketPolymerItem implements Trinket {
|
||||||
public final HashMap<WeaponDamageType, Double> resistances = new HashMap<>();
|
public final HashMap<WeaponDamageType, Double> resistances = new HashMap<>();
|
||||||
|
|
||||||
public WeaponArmor(String name, int durability, double grenadeDamageCoefficient, double fragmentationDamageCoefficient, double bulletDamageCoefficient, double shurikenDamageCoefficient) {
|
public WeaponArmor(String name, int durability, double grenadeDamageCoefficient, double fragmentationDamageCoefficient, double bulletDamageCoefficient, double shurikenDamageCoefficient) {
|
||||||
@@ -30,6 +32,7 @@ public class WeaponArmor extends TrinketPolymerItem {
|
|||||||
, name)
|
, name)
|
||||||
;
|
;
|
||||||
Registry.register(Registries.ITEM, id(name), this);
|
Registry.register(Registries.ITEM, id(name), this);
|
||||||
|
TrinketsApi.registerTrinket(this, this);
|
||||||
resistances.put(WeaponDamageType.BULLET, bulletDamageCoefficient);
|
resistances.put(WeaponDamageType.BULLET, bulletDamageCoefficient);
|
||||||
resistances.put(WeaponDamageType.FRAGMENTATION_GRENADE, fragmentationDamageCoefficient);
|
resistances.put(WeaponDamageType.FRAGMENTATION_GRENADE, fragmentationDamageCoefficient);
|
||||||
resistances.put(WeaponDamageType.GRENADE, grenadeDamageCoefficient);
|
resistances.put(WeaponDamageType.GRENADE, grenadeDamageCoefficient);
|
||||||
|
@@ -10,6 +10,7 @@ import systems.brn.plasticgun.PlasticGun;
|
|||||||
import xyz.nucleoid.packettweaker.PacketContext;
|
import xyz.nucleoid.packettweaker.PacketContext;
|
||||||
|
|
||||||
import static systems.brn.plasticgun.PlasticGun.flashbangEffect;
|
import static systems.brn.plasticgun.PlasticGun.flashbangEffect;
|
||||||
|
import static systems.brn.plasticgun.PlasticGun.stunEffect;
|
||||||
|
|
||||||
public class FlashbangEffect extends StatusEffect implements PolymerStatusEffect {
|
public class FlashbangEffect extends StatusEffect implements PolymerStatusEffect {
|
||||||
public FlashbangEffect() {
|
public FlashbangEffect() {
|
||||||
@@ -30,11 +31,10 @@ public class FlashbangEffect extends StatusEffect implements PolymerStatusEffect
|
|||||||
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
|
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
|
||||||
return super.applyUpdateEffect(world, entity, amplifier);
|
return super.applyUpdateEffect(world, entity, amplifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StatusEffect getPolymerReplacement(PacketContext packetContext){
|
public StatusEffect getPolymerReplacement(StatusEffect potion, PacketContext packetContext) {
|
||||||
if (PlasticGun.clientsWithMod.contains(packetContext.getPlayer())){
|
if (PlasticGun.clientsWithMod.contains(packetContext.getPlayer())){
|
||||||
return flashbangEffect.value();
|
return stunEffect.value();
|
||||||
}
|
}
|
||||||
return StatusEffects.BLINDNESS.value();
|
return StatusEffects.BLINDNESS.value();
|
||||||
}
|
}
|
||||||
|
@@ -43,7 +43,7 @@ public class StunEffect extends StatusEffect implements PolymerStatusEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StatusEffect getPolymerReplacement(PacketContext packetContext) {
|
public StatusEffect getPolymerReplacement(StatusEffect potion, PacketContext packetContext) {
|
||||||
if (PlasticGun.clientsWithMod.contains(packetContext.getPlayer())){
|
if (PlasticGun.clientsWithMod.contains(packetContext.getPlayer())){
|
||||||
return stunEffect.value();
|
return stunEffect.value();
|
||||||
}
|
}
|
||||||
|
@@ -78,8 +78,8 @@ public class EventHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PlayerInventory playerInventory = serverPlayerEntity.getInventory();
|
PlayerInventory playerInventory = serverPlayerEntity.getInventory();
|
||||||
for (int i = 1; i < playerInventory.main.size(); i++) {
|
for (int i = 1; i < playerInventory.getMainStacks().size(); i++) {
|
||||||
ItemStack stackInSlot = playerInventory.main.get(i);
|
ItemStack stackInSlot = playerInventory.getMainStacks().get(i);
|
||||||
Item itemInSlot = stackInSlot.getItem();
|
Item itemInSlot = stackInSlot.getItem();
|
||||||
if (itemGrenadeItemMap.containsKey(itemInSlot)) {
|
if (itemGrenadeItemMap.containsKey(itemInSlot)) {
|
||||||
decrementComponent(GRENADE_TIMER_COMPONENT, stackInSlot);
|
decrementComponent(GRENADE_TIMER_COMPONENT, stackInSlot);
|
||||||
@@ -95,12 +95,11 @@ public class EventHandler {
|
|||||||
public static void mobTickUpdate(ServerWorld world) {
|
public static void mobTickUpdate(ServerWorld world) {
|
||||||
Predicate<Entity> allEntities = entity -> true;
|
Predicate<Entity> allEntities = entity -> true;
|
||||||
for (SkeletonEntity skeletonEntity : world.getEntitiesByType(EntityType.SKELETON, allEntities)) {
|
for (SkeletonEntity skeletonEntity : world.getEntitiesByType(EntityType.SKELETON, allEntities)) {
|
||||||
for (ItemStack itemStack : skeletonEntity.getEquippedItems()) {
|
ItemStack itemStack = skeletonEntity.getActiveItem();
|
||||||
if (itemGunMap.containsKey(itemStack.getItem())) {
|
if (itemGunMap.containsKey(itemStack.getItem())) {
|
||||||
decrementComponent(GUN_COOLDOWN_COMPONENT, itemStack);
|
decrementComponent(GUN_COOLDOWN_COMPONENT, itemStack);
|
||||||
decrementComponent(GUN_RELOAD_COOLDOWN_COMPONENT, itemStack);
|
decrementComponent(GUN_RELOAD_COOLDOWN_COMPONENT, itemStack);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -14,7 +14,6 @@ import net.minecraft.entity.player.PlayerInventory;
|
|||||||
import net.minecraft.inventory.Inventory;
|
import net.minecraft.inventory.Inventory;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.ModelTransformationMode;
|
|
||||||
import net.minecraft.loot.LootTable;
|
import net.minecraft.loot.LootTable;
|
||||||
import net.minecraft.loot.entry.ItemEntry;
|
import net.minecraft.loot.entry.ItemEntry;
|
||||||
import net.minecraft.particle.BlockStateParticleEffect;
|
import net.minecraft.particle.BlockStateParticleEffect;
|
||||||
@@ -52,7 +51,7 @@ public class Util {
|
|||||||
if (bulletItem == null || bulletItem.isEmpty()) {
|
if (bulletItem == null || bulletItem.isEmpty()) {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
for (ItemStack itemStack : player.getInventory().main) {
|
for (ItemStack itemStack : player.getInventory().getMainStacks()) {
|
||||||
for (Item item : bulletItem) {
|
for (Item item : bulletItem) {
|
||||||
if (item == itemStack.getItem()) {
|
if (item == itemStack.getItem()) {
|
||||||
return itemStack;
|
return itemStack;
|
||||||
@@ -68,8 +67,8 @@ public class Util {
|
|||||||
|
|
||||||
if (inventory instanceof PlayerInventory playerInventory) {
|
if (inventory instanceof PlayerInventory playerInventory) {
|
||||||
// Iterate through the slots in the player's inventory
|
// Iterate through the slots in the player's inventory
|
||||||
for (int i = 0; i < playerInventory.main.size(); i++) {
|
for (int i = 0; i < playerInventory.getMainStacks().size(); i++) {
|
||||||
ItemStack slotStack = playerInventory.main.get(i);
|
ItemStack slotStack = playerInventory.getMainStacks().get(i);
|
||||||
maxInsert = canInsertToStack(slotStack, itemStack, maxInsert);
|
maxInsert = canInsertToStack(slotStack, itemStack, maxInsert);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -145,7 +144,6 @@ public class Util {
|
|||||||
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.SCALE, new Vector3f(scale)));
|
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.SCALE, new Vector3f(scale)));
|
||||||
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.BILLBOARD, (byte) DisplayEntity.BillboardMode.CENTER.ordinal()));
|
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.BILLBOARD, (byte) DisplayEntity.BillboardMode.CENTER.ordinal()));
|
||||||
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.Item.ITEM, itemStack));
|
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.Item.ITEM, itemStack));
|
||||||
data.add(DataTracker.SerializedEntry.of(DisplayTrackedData.Item.ITEM_DISPLAY, ModelTransformationMode.FIXED.getIndex()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -52,7 +52,9 @@ public abstract class ZombieGrenadeMixin extends MobEntity {
|
|||||||
} else if (i < 14) {
|
} else if (i < 14) {
|
||||||
int grenadeIndex = selectWeaponIndex(random, localDifficulty, grenades.size());
|
int grenadeIndex = selectWeaponIndex(random, localDifficulty, grenades.size());
|
||||||
stackToEquip = new ItemStack(grenades.get(grenadeIndex));
|
stackToEquip = new ItemStack(grenades.get(grenadeIndex));
|
||||||
Arrays.fill(this.handDropChances, 0F);
|
for (EquipmentSlot slot : EquipmentSlot.values()) {
|
||||||
|
this.setEquipmentDropChance(slot, 0f);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
stackToEquip = new ItemStack(Items.IRON_SHOVEL);
|
stackToEquip = new ItemStack(Items.IRON_SHOVEL);
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ public class ShurikenEntity extends ThrowableProjectile implements PolymerEntity
|
|||||||
if (blockHitResult.getType() == HitResult.Type.BLOCK) {
|
if (blockHitResult.getType() == HitResult.Type.BLOCK) {
|
||||||
BlockState block = this.getWorld().getBlockState(blockHitResult.getBlockPos());
|
BlockState block = this.getWorld().getBlockState(blockHitResult.getBlockPos());
|
||||||
|
|
||||||
blockHitParticles(this.getPos(), block, this.getWorld(), this.getDamage() * this.getVelocity().length());
|
blockHitParticles(this.getPos(), block, this.getWorld(), this.damage * this.getVelocity().length());
|
||||||
SoundEvent soundEvent = block.getSoundGroup().getHitSound();
|
SoundEvent soundEvent = block.getSoundGroup().getHitSound();
|
||||||
setSilent(false);
|
setSilent(false);
|
||||||
playSound(soundEvent, 4.0F, 1.0F);
|
playSound(soundEvent, 4.0F, 1.0F);
|
||||||
@@ -54,8 +54,8 @@ public class ShurikenEntity extends ThrowableProjectile implements PolymerEntity
|
|||||||
@Override
|
@Override
|
||||||
protected void onEntityHit(EntityHitResult entityHitResult) {
|
protected void onEntityHit(EntityHitResult entityHitResult) {
|
||||||
if (entityHitResult.getEntity() instanceof LivingEntity livingEntity) {
|
if (entityHitResult.getEntity() instanceof LivingEntity livingEntity) {
|
||||||
this.setDamage(getFinalDamage(livingEntity, WeaponDamageType.SHURIKEN, this.getDamage()));
|
this.setDamage(getFinalDamage(livingEntity, WeaponDamageType.SHURIKEN, this.damage));
|
||||||
entityHitParticles(livingEntity, this.getDamage());
|
entityHitParticles(livingEntity, this.damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onEntityHit(entityHitResult);
|
super.onEntityHit(entityHitResult);
|
||||||
|
@@ -44,11 +44,6 @@ public class DamageTester extends LivingEntity implements PolymerEntity {
|
|||||||
.add(EntityAttributes.ATTACK_DAMAGE, 0.0);
|
.add(EntityAttributes.ATTACK_DAMAGE, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Iterable<ItemStack> getArmorItems() {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getEquippedStack(EquipmentSlot slot) {
|
public ItemStack getEquippedStack(EquipmentSlot slot) {
|
||||||
return Items.WITHER_SKELETON_SKULL.getDefaultStack();
|
return Items.WITHER_SKELETON_SKULL.getDefaultStack();
|
||||||
|
@@ -21,6 +21,10 @@ public class ThrowableProjectile extends PersistentProjectileEntity implements P
|
|||||||
public final EntityType<? extends PersistentProjectileEntity> entityType;
|
public final EntityType<? extends PersistentProjectileEntity> entityType;
|
||||||
private final float scale;
|
private final float scale;
|
||||||
|
|
||||||
|
public double prevX;
|
||||||
|
public double prevY;
|
||||||
|
public double prevZ;
|
||||||
|
|
||||||
public ThrowableProjectile(EntityType<? extends ThrowableProjectile> entityType, World world, Vec3d pos, ItemStack itemStack, float scale, double damage, PickupPermission pickupPermission, byte penetration) {
|
public ThrowableProjectile(EntityType<? extends ThrowableProjectile> entityType, World world, Vec3d pos, ItemStack itemStack, float scale, double damage, PickupPermission pickupPermission, byte penetration) {
|
||||||
super(entityType, pos.getX(), pos.getY() + 1.5d, pos.getZ(), world, itemStack, null);
|
super(entityType, pos.getX(), pos.getY() + 1.5d, pos.getZ(), world, itemStack, null);
|
||||||
this.pickupType = pickupPermission;
|
this.pickupType = pickupPermission;
|
||||||
|
@@ -50,9 +50,7 @@
|
|||||||
"item.plasticgun.rpg_shell": "RPG Shell",
|
"item.plasticgun.rpg_shell": "RPG Shell",
|
||||||
"item.plasticgun.force_container": "Force Container",
|
"item.plasticgun.force_container": "Force Container",
|
||||||
"item.plasticgun.grenade": "Grenade",
|
"item.plasticgun.grenade": "Grenade",
|
||||||
"item.plasticgun.grenade_incendiary": "Incendiary Grenade",
|
|
||||||
"item.plasticgun.shuriken": "Shuriken",
|
"item.plasticgun.shuriken": "Shuriken",
|
||||||
"item.plasticgun.grenade_m67": "M67 Fragmentation Grenade",
|
|
||||||
"item.plasticgun.grenade_mk2": "Mk 2 Fragmentation Grenade",
|
"item.plasticgun.grenade_mk2": "Mk 2 Fragmentation Grenade",
|
||||||
"item.plasticgun.grenade_an_m14": "AN-M14 Incendiary Grenade",
|
"item.plasticgun.grenade_an_m14": "AN-M14 Incendiary Grenade",
|
||||||
"item.plasticgun.grenade_m34": "M34 White Phosphorus Incendiary Fragmentation Grenade",
|
"item.plasticgun.grenade_m34": "M34 White Phosphorus Incendiary Fragmentation Grenade",
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "minecraft:item/generated",
|
|
||||||
"textures": {
|
|
||||||
"layer0": "plasticgun:item/grenade_m67"
|
|
||||||
}
|
|
||||||
}
|
|
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"entities": [
|
||||||
|
"player"
|
||||||
|
],
|
||||||
|
"slots": [
|
||||||
|
"chest/vest"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/trinkets/slots/chest/vest.json
Normal file
6
src/main/resources/data/trinkets/slots/chest/vest.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"amount": 1,
|
||||||
|
"order": 0,
|
||||||
|
"icon": "plasticgun:gui/slots/vest_slot"
|
||||||
|
}
|
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"plasticgun:kevlar_vest",
|
||||||
|
"plasticgun:flak_vest"
|
||||||
|
]
|
||||||
|
}
|
@@ -2,4 +2,5 @@ accessWidener v2 named
|
|||||||
accessible field net/minecraft/entity/mob/MobEntity goalSelector Lnet/minecraft/entity/ai/goal/GoalSelector;
|
accessible field net/minecraft/entity/mob/MobEntity goalSelector Lnet/minecraft/entity/ai/goal/GoalSelector;
|
||||||
accessible field net/minecraft/entity/mob/AbstractSkeletonEntity bowAttackGoal Lnet/minecraft/entity/ai/goal/BowAttackGoal;
|
accessible field net/minecraft/entity/mob/AbstractSkeletonEntity bowAttackGoal Lnet/minecraft/entity/ai/goal/BowAttackGoal;
|
||||||
accessible field net/minecraft/entity/mob/AbstractSkeletonEntity meleeAttackGoal Lnet/minecraft/entity/ai/goal/MeleeAttackGoal;
|
accessible field net/minecraft/entity/mob/AbstractSkeletonEntity meleeAttackGoal Lnet/minecraft/entity/ai/goal/MeleeAttackGoal;
|
||||||
|
accessible field net/minecraft/entity/projectile/PersistentProjectileEntity damage D
|
||||||
accessible method net/minecraft/entity/mob/MobEntity initEquipment (Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/LocalDifficulty;)V
|
accessible method net/minecraft/entity/mob/MobEntity initEquipment (Lnet/minecraft/util/math/random/Random;Lnet/minecraft/world/LocalDifficulty;)V
|
Reference in New Issue
Block a user