完成M18烟雾弹
This commit is contained in:
parent
bd1abe8fc6
commit
c69536f32c
18 changed files with 758 additions and 57 deletions
|
@ -12,15 +12,13 @@ public class M18SmokeGrenadeEntityModel extends GeoModel<M18SmokeGrenadeEntity>
|
|||
return null;
|
||||
}
|
||||
|
||||
// TODO 添加烟雾手雷资源文件
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(M18SmokeGrenadeEntity entity) {
|
||||
return Mod.loc("geo/rgo_grenade.geo.json");
|
||||
return Mod.loc("geo/m18_smoke_grenade.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(M18SmokeGrenadeEntity entity) {
|
||||
return Mod.loc("textures/item/rgo_grenade.png");
|
||||
return Mod.loc("textures/item/m_18.png");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public class CustomSmokeParticle extends TextureSheetParticle {
|
|||
this.quadSize *= 10f;
|
||||
this.lifetime = this.random.nextInt(200) + 600;
|
||||
this.gravity = 0.001f;
|
||||
this.hasPhysics = false;
|
||||
this.hasPhysics = true;
|
||||
this.xd = vx * 0.9;
|
||||
this.yd = vy * 0.9;
|
||||
this.zd = vz * 0.9;
|
||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.sounds.SoundSource;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -32,7 +33,7 @@ import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
|||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class HandGrenadeEntity extends FastThrowableProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
public class HandGrenadeEntity extends ThrowableItemProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
|
||||
private float damage = 1f;
|
||||
private float explosionDamage = ExplosionConfig.M67_GRENADE_EXPLOSION_DAMAGE.get();
|
||||
|
@ -53,7 +54,6 @@ public class HandGrenadeEntity extends FastThrowableProjectile implements GeoEnt
|
|||
public HandGrenadeEntity(LivingEntity entity, Level level, int fuse) {
|
||||
super(ModEntities.HAND_GRENADE.get(), entity, level);
|
||||
this.noCulling = true;
|
||||
|
||||
this.fuse = fuse;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,27 @@
|
|||
package com.atsuishio.superbwarfare.entity.projectile;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.init.ModParticleTypes;
|
||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessage;
|
||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -17,16 +30,18 @@ import net.minecraft.world.phys.BlockHitResult;
|
|||
import net.minecraft.world.phys.EntityHitResult;
|
||||
import net.minecraft.world.phys.HitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.network.NetworkHooks;
|
||||
import net.minecraftforge.network.PacketDistributor;
|
||||
import net.minecraftforge.network.PlayMessages;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import software.bernie.geckolib.animatable.GeoEntity;
|
||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements GeoEntity {
|
||||
|
||||
private int fuse = 80;
|
||||
public class M18SmokeGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
|
||||
private int count = 8;
|
||||
private int fuse = 100;
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public M18SmokeGrenadeEntity(EntityType<? extends M18SmokeGrenadeEntity> type, Level world) {
|
||||
|
@ -42,7 +57,6 @@ public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements Ge
|
|||
public M18SmokeGrenadeEntity(LivingEntity entity, Level level, int fuse) {
|
||||
super(ModEntities.M18_SMOKE_GRENADE.get(), entity, level);
|
||||
this.noCulling = true;
|
||||
|
||||
this.fuse = fuse;
|
||||
}
|
||||
|
||||
|
@ -65,8 +79,13 @@ public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements Ge
|
|||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull Item getDefaultItem() {
|
||||
return ModItems.RGO_GRENADE.get();
|
||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Item getDefaultItem() {
|
||||
return ModItems.M18_SMOKE_GRENADE.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -75,30 +94,60 @@ public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements Ge
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void onHit(@NotNull HitResult result) {
|
||||
if (level().isClientSide) return;
|
||||
|
||||
protected void onHit(HitResult result) {
|
||||
switch (result.getType()) {
|
||||
case BLOCK:
|
||||
BlockHitResult blockResult = (BlockHitResult) result;
|
||||
BlockPos resultPos = blockResult.getBlockPos();
|
||||
BlockState state = this.level().getBlockState(resultPos);
|
||||
SoundEvent event = state.getBlock().getSoundType(state, this.level(), resultPos, this).getBreakSound();
|
||||
double speed = this.getDeltaMovement().length();
|
||||
if (speed > 0.1) {
|
||||
this.level().playSound(null, result.getLocation().x, result.getLocation().y, result.getLocation().z, event, SoundSource.AMBIENT, 1.0F, 1.0F);
|
||||
}
|
||||
this.bounce(blockResult.getDirection());
|
||||
|
||||
if (state.getBlock() instanceof BellBlock bell) {
|
||||
bell.attemptToRing(this.level(), resultPos, blockResult.getDirection());
|
||||
}
|
||||
|
||||
releaseSmoke();
|
||||
break;
|
||||
case ENTITY:
|
||||
EntityHitResult entityResult = (EntityHitResult) result;
|
||||
Entity entity = entityResult.getEntity();
|
||||
if (this.getOwner() != null
|
||||
&& this.getOwner().getVehicle() != null
|
||||
&& entity == this.getOwner().getVehicle()
|
||||
|| entity == this.getOwner()
|
||||
) return;
|
||||
if (entity == this.getOwner() || entity == this.getVehicle()) return;
|
||||
double speed_e = this.getDeltaMovement().length();
|
||||
if (speed_e > 0.1) {
|
||||
if (this.getOwner() instanceof LivingEntity living) {
|
||||
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||
living.level().playSound(null, living.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 1, 1);
|
||||
|
||||
releaseSmoke();
|
||||
Mod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||
}
|
||||
}
|
||||
entity.hurt(entity.damageSources().thrown(this, this.getOwner()), 1);
|
||||
}
|
||||
this.bounce(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
||||
this.setDeltaMovement(this.getDeltaMovement().multiply(0.25, 1.0, 0.25));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void bounce(Direction direction) {
|
||||
switch (direction.getAxis()) {
|
||||
case X:
|
||||
this.setDeltaMovement(this.getDeltaMovement().multiply(-0.5, 0.75, 0.75));
|
||||
break;
|
||||
case Y:
|
||||
this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, -0.25, 0.75));
|
||||
if (this.getDeltaMovement().y() < this.getGravity()) {
|
||||
this.setDeltaMovement(this.getDeltaMovement().multiply(1, 0, 1));
|
||||
}
|
||||
break;
|
||||
case Z:
|
||||
this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, 0.75, -0.5));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -108,31 +157,40 @@ public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements Ge
|
|||
super.tick();
|
||||
--this.fuse;
|
||||
|
||||
if (this.fuse <= 0) {
|
||||
if (tickCount > 200) {
|
||||
this.discard();
|
||||
}
|
||||
|
||||
if (fuse == -20) {
|
||||
releaseSmoke();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO 优化烟雾效果
|
||||
public void releaseSmoke() {
|
||||
var vec3 = new Vec3(1, 1, 0);
|
||||
|
||||
for (int i = 0; i < this.count; i++) {
|
||||
var decoy = new SmokeDecoyEntity(this.level());
|
||||
decoy.setPos(this.getX(), this.getY() + getBbHeight(), this.getZ());
|
||||
decoy.decoyShoot(this, vec3.yRot(i * (360f / this.count) * Mth.DEG_TO_RAD), 3, 2);
|
||||
this.level().addFreshEntity(decoy);
|
||||
if (fuse == 0) {
|
||||
this.level().playSound(null, this, ModSounds.SM0KE_GRENADE_RELEASE.get(), this.getSoundSource(), 2, 1);
|
||||
}
|
||||
|
||||
this.level().playSound(null, this, ModSounds.DECOY_FIRE.get(), this.getSoundSource(), 1, 1);
|
||||
this.discard();
|
||||
if (fuse <= 0 && tickCount % 2 == 0) {
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
ParticleTool.sendParticle(serverLevel, ModParticleTypes.CUSTOM_SMOKE.get(), this.getX(), this.getY() + getBbHeight(), this.getZ(),
|
||||
8, 0.075, 0.01, 0.075, 0.08, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) {
|
||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.xo, this.yo, this.zo,
|
||||
1, 0, 0, 0, 0.01, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double getDefaultGravity() {
|
||||
return 0.07F;
|
||||
public void releaseSmoke() {
|
||||
var vec3 = new Vec3(1, 0.05, 0);
|
||||
|
||||
for (int i = 0; i < this.count; i++) {
|
||||
var decoy = new SmokeDecoyEntity(ModEntities.SMOKE_DECOY.get(), this.level(), false);
|
||||
decoy.setPos(this.getX(), this.getY() + getBbHeight(), this.getZ());
|
||||
decoy.decoyShoot(this, vec3.yRot(i * (360f / this.count) * Mth.DEG_TO_RAD), 1.5f, 5);
|
||||
this.level().addFreshEntity(decoy);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -144,4 +202,8 @@ public class M18SmokeGrenadeEntity extends FastThrowableProjectile implements Ge
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getGravity() {
|
||||
return 0.07F;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import net.minecraft.sounds.SoundSource;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.BellBlock;
|
||||
|
@ -31,7 +32,7 @@ import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
|||
import software.bernie.geckolib.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEntity, ExplosiveProjectile {
|
||||
|
||||
private float explosionDamage = ExplosionConfig.RGO_GRENADE_EXPLOSION_DAMAGE.get();
|
||||
private float explosionRadius = ExplosionConfig.RGO_GRENADE_EXPLOSION_RADIUS.get();
|
||||
|
|
|
@ -17,15 +17,29 @@ import net.minecraft.world.phys.Vec3;
|
|||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SmokeDecoyEntity extends Entity {
|
||||
|
||||
public boolean releaseSmoke = true;
|
||||
public SmokeDecoyEntity(EntityType<? extends SmokeDecoyEntity> type, Level world) {
|
||||
super(type, world);
|
||||
}
|
||||
|
||||
public SmokeDecoyEntity(Level level) {
|
||||
public SmokeDecoyEntity(EntityType<? extends SmokeDecoyEntity> type, Level world, boolean release) {
|
||||
super(type, world);
|
||||
releaseSmoke = release;
|
||||
}
|
||||
|
||||
public SmokeDecoyEntity(LivingEntity entity, Level level) {
|
||||
super(ModEntities.SMOKE_DECOY.get(), level);
|
||||
}
|
||||
|
||||
public SmokeDecoyEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
this(ModEntities.SMOKE_DECOY.get(), level, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
}
|
||||
|
||||
public int life = 400;
|
||||
public int igniteTime = 4;
|
||||
|
||||
|
@ -54,13 +68,15 @@ public class SmokeDecoyEntity extends Entity {
|
|||
super.tick();
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
if (tickCount == this.igniteTime) {
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
ParticleTool.sendParticle(serverLevel, ModParticleTypes.CUSTOM_SMOKE.get(), this.xo, this.yo, this.zo,
|
||||
50, 0, 0, 0, 0.07, true);
|
||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.LARGE_SMOKE, this.xo, this.yo, this.zo, 10, 1, 1, 1, 0.1, true);
|
||||
ParticleTool.sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.xo, this.yo, this.zo, 30, 0, 0, 0, 0.2, true);
|
||||
if (releaseSmoke) {
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
ParticleTool.sendParticle(serverLevel, ModParticleTypes.CUSTOM_SMOKE.get(), this.xo, this.yo, this.zo,
|
||||
50, 0, 0, 0, 0.07, true);
|
||||
ParticleTool.sendParticle(serverLevel, ParticleTypes.LARGE_SMOKE, this.xo, this.yo, this.zo, 10, 1, 1, 1, 0.1, true);
|
||||
ParticleTool.sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.xo, this.yo, this.zo, 30, 0, 0, 0, 0.2, true);
|
||||
}
|
||||
this.level().playSound(null, this, ModSounds.SMOKE_FIRE.get(), this.getSoundSource(), 2, random.nextFloat() * 0.05f + 1);
|
||||
}
|
||||
this.level().playSound(null, this, ModSounds.SMOKE_FIRE.get(), this.getSoundSource(), 2, random.nextFloat() * 0.05f + 1);
|
||||
this.setDeltaMovement(Vec3.ZERO);
|
||||
}
|
||||
|
||||
|
|
|
@ -73,11 +73,11 @@ public class ModEntities {
|
|||
public static final DeferredHolder<EntityType<?>, EntityType<MelonBombEntity>> MELON_BOMB = register("melon_bomb",
|
||||
EntityType.Builder.<MelonBombEntity>of(MelonBombEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(1f, 1f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<HandGrenadeEntity>> HAND_GRENADE = register("hand_grenade",
|
||||
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
EntityType.Builder.<HandGrenadeEntity>of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<RgoGrenadeEntity>> RGO_GRENADE = register("rgo_grenade",
|
||||
EntityType.Builder.<RgoGrenadeEntity>of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
EntityType.Builder.<RgoGrenadeEntity>of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<M18SmokeGrenadeEntity>> M18_SMOKE_GRENADE = register("m18_smoke_grenade",
|
||||
EntityType.Builder.<M18SmokeGrenadeEntity>of(M18SmokeGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
EntityType.Builder.<M18SmokeGrenadeEntity>of(M18SmokeGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.3f, 0.3f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<JavelinMissileEntity>> JAVELIN_MISSILE = register("javelin_missile",
|
||||
EntityType.Builder.<JavelinMissileEntity>of(JavelinMissileEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(false).noSave().setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<Agm65Entity>> AGM_65 = register("agm_65",
|
||||
|
|
|
@ -494,6 +494,7 @@ public class ModSounds {
|
|||
public static final DeferredHolder<SoundEvent, SoundEvent> DPS_GENERATOR_EVOLVE = REGISTRY.register("dps_generator_evolve", () -> SoundEvent.createVariableRangeEvent(Mod.loc("dps_generator_evolve")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> STEEL_PIPE_HIT = REGISTRY.register("steel_pipe_hit", () -> SoundEvent.createVariableRangeEvent(Mod.loc("steel_pipe_hit")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> STEEL_PIPE_DROP = REGISTRY.register("steel_pipe_drop", () -> SoundEvent.createVariableRangeEvent(Mod.loc("steel_pipe_drop")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> SM0KE_GRENADE_RELEASE = REGISTRY.register("smoke_grenade_release", () -> SoundEvent.createVariableRangeEvent(Mod.loc("smoke_grenade_release")));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -21,8 +21,6 @@ import org.jetbrains.annotations.NotNull;
|
|||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
// TODO 物品图标,合成配方等资源
|
||||
|
||||
public class M18SmokeGrenade extends Item implements ProjectileItem {
|
||||
|
||||
public M18SmokeGrenade() {
|
||||
|
@ -73,9 +71,8 @@ public class M18SmokeGrenade extends Item implements ProjectileItem {
|
|||
@ParametersAreNonnullByDefault
|
||||
public @NotNull ItemStack finishUsingItem(ItemStack pStack, Level pLevel, LivingEntity pLivingEntity) {
|
||||
if (!pLevel.isClientSide) {
|
||||
var grenade = new M18SmokeGrenadeEntity(pLivingEntity, pLevel, 100);
|
||||
grenade.setPos(pLivingEntity.position());
|
||||
grenade.releaseSmoke();
|
||||
M18SmokeGrenadeEntity grenade = new M18SmokeGrenadeEntity(pLivingEntity, pLevel, 2);
|
||||
pLevel.addFreshEntity(grenade);
|
||||
|
||||
if (pLivingEntity instanceof Player player) {
|
||||
player.getCooldowns().addCooldown(pStack.getItem(), 20);
|
||||
|
|
|
@ -0,0 +1,243 @@
|
|||
{
|
||||
"format_version": "1.12.0",
|
||||
"minecraft:geometry": [
|
||||
{
|
||||
"description": {
|
||||
"identifier": "geometry.m18_smoke_grenade - Converted",
|
||||
"texture_width": 16,
|
||||
"texture_height": 16,
|
||||
"visible_bounds_width": 2,
|
||||
"visible_bounds_height": 1.5,
|
||||
"visible_bounds_offset": [0, 0.25, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
"name": "group",
|
||||
"pivot": [0, 1.75, 1.75],
|
||||
"rotation": [90, 0, -90]
|
||||
},
|
||||
{
|
||||
"name": "bone4",
|
||||
"parent": "group",
|
||||
"pivot": [0, 3.14219, -17.07809],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-1.91426, 0.35254, 1.2125],
|
||||
"size": [2.59528, 5.575, 1.075],
|
||||
"uv": {
|
||||
"east": {"uv": [0, 0], "uv_size": [1, 5.5]},
|
||||
"west": {"uv": [1, 0], "uv_size": [1, 5.5]},
|
||||
"up": {"uv": [3, 6], "uv_size": [2.5, 1]},
|
||||
"down": {"uv": [6, 7], "uv_size": [2.5, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.91426, 0.35254, 1.2125],
|
||||
"size": [2.59528, 5.575, 1.075],
|
||||
"pivot": [-0.61662, 3.14004, 1.75],
|
||||
"rotation": [0, 45, 0],
|
||||
"uv": {
|
||||
"east": {"uv": [2, 0], "uv_size": [1, 5.5]},
|
||||
"west": {"uv": [3, 0], "uv_size": [1, 5.5]},
|
||||
"up": {"uv": [7, 0], "uv_size": [2.5, 1]},
|
||||
"down": {"uv": [7, 2], "uv_size": [2.5, -1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.15412, 0.35254, 0.45236],
|
||||
"size": [1.075, 5.575, 2.59528],
|
||||
"uv": {
|
||||
"north": {"uv": [4, 0], "uv_size": [1, 5.5]},
|
||||
"south": {"uv": [5, 0], "uv_size": [1, 5.5]},
|
||||
"up": {"uv": [7, 2], "uv_size": [1, 2.5]},
|
||||
"down": {"uv": [3, 9.5], "uv_size": [1, -2.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.15412, 0.35254, 0.45236],
|
||||
"size": [1.075, 5.575, 2.59528],
|
||||
"pivot": [-0.61662, 3.14004, 1.75],
|
||||
"rotation": [0, 45, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [0, 6], "uv_size": [1, 5.5]},
|
||||
"south": {"uv": [6, 0], "uv_size": [1, 5.5]},
|
||||
"up": {"uv": [4, 7], "uv_size": [1, 2.5]},
|
||||
"down": {"uv": [5, 9.5], "uv_size": [1, -2.5]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone175",
|
||||
"parent": "group",
|
||||
"pivot": [0, 3.14219, -17.07809],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-1.52497, 5.92754, 1.37375],
|
||||
"size": [1.8167, 0.25, 0.7525],
|
||||
"uv": {
|
||||
"east": {"uv": [10, 5], "uv_size": [1, 0.5]},
|
||||
"west": {"uv": [6, 10], "uv_size": [1, 0.5]},
|
||||
"up": {"uv": [7, 5], "uv_size": [2, 1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.52497, 5.92754, 1.37375],
|
||||
"size": [1.8167, 0.25, 0.7525],
|
||||
"pivot": [-0.61662, 3.97629, 1.75],
|
||||
"rotation": [0, 45, 0],
|
||||
"uv": {
|
||||
"east": {"uv": [10, 6], "uv_size": [1, 0.5]},
|
||||
"west": {"uv": [7, 10], "uv_size": [1, 0.5]},
|
||||
"up": {"uv": [6, 7], "uv_size": [2, 1]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-0.99287, 5.92754, 0.84165],
|
||||
"size": [0.7525, 0.25, 1.8167],
|
||||
"uv": {
|
||||
"north": {"uv": [10, 7], "uv_size": [1, 0.5]},
|
||||
"south": {"uv": [10, 8], "uv_size": [1, 0.5]},
|
||||
"up": {"uv": [8, 2], "uv_size": [1, 2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-0.99287, 5.92754, 0.84165],
|
||||
"size": [0.7525, 0.25, 1.8167],
|
||||
"pivot": [-0.61662, 3.97629, 1.75],
|
||||
"rotation": [0, 45, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [9, 10], "uv_size": [1, 0.5]},
|
||||
"south": {"uv": [10, 9], "uv_size": [1, 0.5]},
|
||||
"up": {"uv": [6, 8], "uv_size": [1, 2]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "bone2",
|
||||
"parent": "group",
|
||||
"pivot": [1, 6.78847, 1.92961],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-1.05412, 6.03768, 1.2125],
|
||||
"size": [0.875, 0.3, 1.075],
|
||||
"uv": {
|
||||
"north": {"uv": [10, 10], "uv_size": [1, 0.5]},
|
||||
"east": {"uv": [11, 0], "uv_size": [1, 0.5]},
|
||||
"south": {"uv": [1, 11], "uv_size": [1, 0.5]},
|
||||
"west": {"uv": [2, 11], "uv_size": [1, 0.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.06662, 6.34004, 1.15],
|
||||
"size": [0.9, 0.85, 1.35],
|
||||
"uv": {
|
||||
"east": {"uv": [8, 4], "uv_size": [1.5, 1]},
|
||||
"south": {"uv": [9, 3], "uv_size": [1, 1]},
|
||||
"west": {"uv": [9, 2], "uv_size": [1.5, 1]},
|
||||
"down": {"uv": [9, 6.5], "uv_size": [1, -1.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.06662, 6.34004, 2.5],
|
||||
"size": [0.9, 0.85, 0.3],
|
||||
"uv": {
|
||||
"east": {"uv": [11, 2], "uv_size": [0.5, 1]},
|
||||
"west": {"uv": [3, 11], "uv_size": [0.5, 1]},
|
||||
"down": {"uv": [11, 3.5], "uv_size": [1, -0.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.06662, 6.34004, 2.8],
|
||||
"size": [0.9, 0.35, 0.3],
|
||||
"uv": {
|
||||
"east": {"uv": [6, 12], "uv_size": [0.5, 0.5]},
|
||||
"south": {"uv": [4, 11], "uv_size": [1, 0.5]},
|
||||
"west": {"uv": [12, 6], "uv_size": [0.5, 0.5]},
|
||||
"down": {"uv": [11, 4.5], "uv_size": [1, -0.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.06662, 6.69004, 2.8],
|
||||
"size": [0.9, 0.3, 0.2],
|
||||
"uv": {
|
||||
"east": {"uv": [7, 12], "uv_size": [0.5, 0.5]},
|
||||
"south": {"uv": [11, 5], "uv_size": [1, 0.5]},
|
||||
"west": {"uv": [12, 7], "uv_size": [0.5, 0.5]},
|
||||
"down": {"uv": [6, 11.5], "uv_size": [1, -0.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.06662, 6.21741, 1.33352],
|
||||
"size": [0.9, 0.93907, 0.35078],
|
||||
"pivot": [0.38338, 5.81741, 0.93352],
|
||||
"rotation": [22.5, 0, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [10, 0], "uv_size": [1, 1]},
|
||||
"east": {"uv": [11, 6], "uv_size": [0.5, 1]},
|
||||
"west": {"uv": [7, 11], "uv_size": [0.5, 1]},
|
||||
"up": {"uv": [11, 7], "uv_size": [1, 0.5]},
|
||||
"down": {"uv": [11, 8.5], "uv_size": [1, -0.5]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.11662, 7.19004, 0.65],
|
||||
"size": [1, 0.2, 2.2],
|
||||
"uv": {
|
||||
"north": {"uv": [9, 11], "uv_size": [1, 0.5]},
|
||||
"east": {"uv": [10, 1], "uv_size": [2, 0.5]},
|
||||
"west": {"uv": [3, 10], "uv_size": [2, 0.5]},
|
||||
"up": {"uv": [7, 8], "uv_size": [1, 2]},
|
||||
"down": {"uv": [8, 9], "uv_size": [1, -2]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-1.11662, 6.0047, 2.85594],
|
||||
"size": [1, 0.75, 0.2],
|
||||
"pivot": [0.38338, 6.5547, 1.35594],
|
||||
"rotation": [22.5, 0, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [1, 9], "uv_size": [1, 2]},
|
||||
"east": {"uv": [10, 3], "uv_size": [0.5, 2]},
|
||||
"south": {"uv": [2, 9], "uv_size": [1, 2]},
|
||||
"west": {"uv": [5, 10], "uv_size": [0.5, 2]},
|
||||
"up": {"uv": [4, 12], "uv_size": [1, 0.5]},
|
||||
"down": {"uv": [12, 4.5], "uv_size": [1, -0.5]}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"item_display_transforms": {
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-3, -19, -7.25],
|
||||
"translation": [5.5, -0.75, -3.5],
|
||||
"scale": [2, 2, 2]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [-3, -19, -7.25],
|
||||
"translation": [5.5, -0.75, -3.5],
|
||||
"scale": [2, 2, 2]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 0]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [-140.06, -16.8, -135.22],
|
||||
"translation": [1.75, 1.5, 0],
|
||||
"scale": [2.25, 2.25, 2.25]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, -1.75, -6.75],
|
||||
"scale": [1.5, 1.5, 1.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [90, -45, 90],
|
||||
"translation": [-1.25, 1.5, 0],
|
||||
"scale": [2, 2, 2]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -496,6 +496,7 @@
|
|||
"entity.superbwarfare.dps_generator": "DPS Generator",
|
||||
"entity.superbwarfare.blu_43": "BLU-43B DragonTooth",
|
||||
"entity.superbwarfare.tm_62": "TM-62 Anti-tank Mine",
|
||||
"entity.superbwarfare.m18_smoke_grenade": "M-18 Smoke Grenade",
|
||||
|
||||
"key.categories.superbwarfare": "Superb Warfare",
|
||||
"key.superbwarfare.hold_zoom": "Zoom (Hold)",
|
||||
|
|
|
@ -495,6 +495,7 @@
|
|||
"entity.superbwarfare.dps_generator": "DPS发电机",
|
||||
"entity.superbwarfare.blu_43": "BLU-43蝴蝶雷",
|
||||
"entity.superbwarfare.tm_62": "TM-62反坦克地雷",
|
||||
"entity.superbwarfare.m18_smoke_grenade": "M-18烟雾弹",
|
||||
|
||||
"key.categories.superbwarfare": "卓越前线",
|
||||
"key.superbwarfare.hold_zoom": "瞄准(按住)",
|
||||
|
|
|
@ -0,0 +1,346 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"1": "superbwarfare:item/m_18"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "bone177",
|
||||
"from": [6.70236, 3.6125, 7.4625],
|
||||
"to": [9.29764, 9.1875, 8.5375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.4, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [0, 0, 1, 5.5], "texture": "#1"},
|
||||
"west": {"uv": [1, 0, 2, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [5.5, 7, 3, 6], "texture": "#1"},
|
||||
"down": {"uv": [8.5, 6, 6, 7], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone178",
|
||||
"from": [6.70236, 3.6125, 7.4625],
|
||||
"to": [9.29764, 9.1875, 8.5375],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 6.4, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [2, 0, 3, 5.5], "texture": "#1"},
|
||||
"west": {"uv": [3, 0, 4, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [9.5, 1, 7, 0], "texture": "#1"},
|
||||
"down": {"uv": [9.5, 1, 7, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone179",
|
||||
"from": [7.4625, 3.6125, 6.70236],
|
||||
"to": [8.5375, 9.1875, 9.29764],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 5, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [5, 0, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 4.5, 7, 2], "texture": "#1"},
|
||||
"down": {"uv": [4, 7, 3, 9.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone180",
|
||||
"from": [7.4625, 3.6125, 6.70236],
|
||||
"to": [8.5375, 9.1875, 9.29764],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 6.4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6, 1, 11.5], "texture": "#1"},
|
||||
"south": {"uv": [6, 0, 7, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [5, 9.5, 4, 7], "texture": "#1"},
|
||||
"down": {"uv": [6, 7, 5, 9.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone178",
|
||||
"from": [7.09165, 9.1875, 7.62375],
|
||||
"to": [8.90835, 9.4375, 8.37625],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.23625, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [10, 5, 11, 5.5], "texture": "#1"},
|
||||
"west": {"uv": [6, 10, 7, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [9, 6, 7, 5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone179",
|
||||
"from": [7.09165, 9.1875, 7.62375],
|
||||
"to": [8.90835, 9.4375, 8.37625],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 7.23625, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [10, 6, 11, 6.5], "texture": "#1"},
|
||||
"west": {"uv": [7, 10, 8, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 8, 6, 7], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone180",
|
||||
"from": [7.62375, 9.1875, 7.09165],
|
||||
"to": [8.37625, 9.4375, 8.90835],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7.23625, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 7, 11, 7.5], "texture": "#1"},
|
||||
"south": {"uv": [10, 8, 11, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [9, 4, 8, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone181",
|
||||
"from": [7.62375, 9.1875, 7.09165],
|
||||
"to": [8.37625, 9.4375, 8.90835],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 7.23625, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 10, 10, 10.5], "texture": "#1"},
|
||||
"south": {"uv": [10, 9, 11, 9.5], "texture": "#1"},
|
||||
"up": {"uv": [7, 10, 6, 8], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bone177",
|
||||
"from": [7.5625, 9.29764, 7.4625],
|
||||
"to": [8.4375, 9.59764, 8.5375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 10, 11, 10.5], "texture": "#1"},
|
||||
"east": {"uv": [11, 0, 12, 0.5], "texture": "#1"},
|
||||
"south": {"uv": [1, 11, 2, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [2, 11, 3, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.55, 9.6, 7.4],
|
||||
"to": [8.45, 10.45, 8.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 9.2, 7]},
|
||||
"faces": {
|
||||
"east": {"uv": [8, 4, 9.5, 5], "texture": "#1"},
|
||||
"south": {"uv": [9, 3, 10, 4], "texture": "#1"},
|
||||
"west": {"uv": [9, 2, 10.5, 3], "texture": "#1"},
|
||||
"down": {"uv": [10, 5, 9, 6.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.55, 9.6, 8.75],
|
||||
"to": [8.45, 10.45, 9.05],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 9.2, 7]},
|
||||
"faces": {
|
||||
"east": {"uv": [11, 2, 11.5, 3], "texture": "#1"},
|
||||
"west": {"uv": [3, 11, 3.5, 12], "texture": "#1"},
|
||||
"down": {"uv": [12, 3, 11, 3.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.55, 9.6, 9.05],
|
||||
"to": [8.45, 9.95, 9.35],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 9.2, 7]},
|
||||
"faces": {
|
||||
"east": {"uv": [6, 12, 6.5, 12.5], "texture": "#1"},
|
||||
"south": {"uv": [4, 11, 5, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [12, 6, 12.5, 6.5], "texture": "#1"},
|
||||
"down": {"uv": [12, 4, 11, 4.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.55, 9.95, 9.05],
|
||||
"to": [8.45, 10.25, 9.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.1, 9.15]},
|
||||
"faces": {
|
||||
"east": {"uv": [7, 12, 7.5, 12.5], "texture": "#1"},
|
||||
"south": {"uv": [11, 5, 12, 5.5], "texture": "#1"},
|
||||
"west": {"uv": [12, 7, 12.5, 7.5], "texture": "#1"},
|
||||
"down": {"uv": [7, 11, 6, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.55, 9.47737, 7.58352],
|
||||
"to": [8.45, 10.41644, 7.9343],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [7, 9.07737, 7.18352]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 11, 1], "texture": "#1"},
|
||||
"east": {"uv": [11, 6, 11.5, 7], "texture": "#1"},
|
||||
"west": {"uv": [7, 11, 7.5, 12], "texture": "#1"},
|
||||
"up": {"uv": [12, 7.5, 11, 7], "texture": "#1"},
|
||||
"down": {"uv": [12, 8, 11, 8.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 10.45, 6.9],
|
||||
"to": [8.5, 10.65, 9.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8.95, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 11, 10, 11.5], "texture": "#1"},
|
||||
"east": {"uv": [10, 1, 12, 1.5], "texture": "#1"},
|
||||
"west": {"uv": [3, 10, 5, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [8, 10, 7, 8], "texture": "#1"},
|
||||
"down": {"uv": [9, 7, 8, 9], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.4, 10.32266, 8.87031],
|
||||
"to": [8.6, 10.42266, 8.97031],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.37266, 8.92031]},
|
||||
"faces": {
|
||||
"north": {"uv": [11, 9, 12, 9.5], "texture": "#1"},
|
||||
"east": {"uv": [8, 12, 8.5, 12.5], "texture": "#1"},
|
||||
"south": {"uv": [10, 11, 11, 11.5], "texture": "#1"},
|
||||
"west": {"uv": [12, 8, 12.5, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [12, 10.5, 11, 10], "texture": "#1"},
|
||||
"down": {"uv": [12, 11, 11, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.35, 10.32266, 8.57031],
|
||||
"to": [7.45, 10.42266, 9.27031],
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.4, 10.37266, 8.92031]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 12, 9.5, 12.5], "texture": "#1"},
|
||||
"east": {"uv": [12, 9, 12.5, 9.5], "texture": "#1"},
|
||||
"south": {"uv": [10, 12, 10.5, 12.5], "texture": "#1"},
|
||||
"west": {"uv": [12, 10, 12.5, 10.5], "texture": "#1"},
|
||||
"up": {"uv": [11.5, 12.5, 11, 12], "texture": "#1"},
|
||||
"down": {"uv": [12.5, 11, 12, 11.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.04385, 9.58355, 8.57031],
|
||||
"to": [7.14385, 9.68355, 9.27031],
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.09385, 9.63355, 8.92031]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 12, 12.5, 12.5], "texture": "#1"},
|
||||
"east": {"uv": [0, 13, 0.5, 13.5], "texture": "#1"},
|
||||
"south": {"uv": [13, 0, 13.5, 0.5], "texture": "#1"},
|
||||
"west": {"uv": [1, 13, 1.5, 13.5], "texture": "#1"},
|
||||
"up": {"uv": [13.5, 1.5, 13, 1], "texture": "#1"},
|
||||
"down": {"uv": [2.5, 13, 2, 13.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.21606, 9.5493, 9.27031],
|
||||
"to": [7.31606, 10.4493, 9.37031],
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.26606, 10.0493, 9.32031]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 12, 0.5, 13], "texture": "#1"},
|
||||
"east": {"uv": [12, 0, 12.5, 1], "texture": "#1"},
|
||||
"south": {"uv": [1, 12, 1.5, 13], "texture": "#1"},
|
||||
"west": {"uv": [12, 1, 12.5, 2], "texture": "#1"},
|
||||
"up": {"uv": [13.5, 2.5, 13, 2], "texture": "#1"},
|
||||
"down": {"uv": [3.5, 13, 3, 13.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.21606, 9.5493, 8.47031],
|
||||
"to": [7.31606, 10.4493, 8.57031],
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [7.26606, 10.0493, 8.52031]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 12, 2.5, 13], "texture": "#1"},
|
||||
"east": {"uv": [12, 2, 12.5, 3], "texture": "#1"},
|
||||
"south": {"uv": [3, 12, 3.5, 13], "texture": "#1"},
|
||||
"west": {"uv": [12, 3, 12.5, 4], "texture": "#1"},
|
||||
"up": {"uv": [13.5, 3.5, 13, 3], "texture": "#1"},
|
||||
"down": {"uv": [4.5, 13, 4, 13.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 8.06466, 9.10594],
|
||||
"to": [8.5, 10.01466, 9.30594],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [7, 9.81466, 7.60594]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 9, 2, 11], "texture": "#1"},
|
||||
"east": {"uv": [10, 3, 10.5, 5], "texture": "#1"},
|
||||
"south": {"uv": [2, 9, 3, 11], "texture": "#1"},
|
||||
"west": {"uv": [5, 10, 5.5, 12], "texture": "#1"},
|
||||
"up": {"uv": [5, 12.5, 4, 12], "texture": "#1"},
|
||||
"down": {"uv": [13, 4, 12, 4.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 5.64843, 9.64623],
|
||||
"to": [8.5, 8.84843, 9.84623],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8.64843, 8.14623]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 6, 2, 9], "texture": "#1"},
|
||||
"east": {"uv": [9, 7, 9.5, 10], "texture": "#1"},
|
||||
"south": {"uv": [2, 6, 3, 9], "texture": "#1"},
|
||||
"west": {"uv": [8, 9, 8.5, 12], "texture": "#1"},
|
||||
"up": {"uv": [6, 12.5, 5, 12], "texture": "#1"},
|
||||
"down": {"uv": [13, 5, 12, 5.5], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-3, -19, -7.25],
|
||||
"translation": [5.5, -0.75, -3.5],
|
||||
"scale": [2, 2, 2]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [-3, -19, -7.25],
|
||||
"translation": [5.5, -0.75, -3.5],
|
||||
"scale": [2, 2, 2]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 0]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [-140.06, -16.8, -135.22],
|
||||
"translation": [1.75, 1.5, 0],
|
||||
"scale": [2.25, 2.25, 2.25]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, -1.75, -6.75],
|
||||
"scale": [1.5, 1.5, 1.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [90, -45, 90],
|
||||
"translation": [-1.25, 1.5, 0],
|
||||
"scale": [2, 2, 2]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "bone175",
|
||||
"origin": [8, 7.99219, -17.72809],
|
||||
"color": 2,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "bone175",
|
||||
"origin": [8, 7.99219, -17.72809],
|
||||
"color": 2,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "bone175",
|
||||
"origin": [8, 7.99219, -17.72809],
|
||||
"color": 2,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "bone175",
|
||||
"origin": [8, 7.99219, -17.72809],
|
||||
"color": 2,
|
||||
"children": [4, 5, 6, 7]
|
||||
},
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -3386,5 +3386,13 @@
|
|||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"smoke_grenade_release": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:smoke_grenade_release",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
BIN
src/main/resources/assets/superbwarfare/textures/item/m_18.png
Normal file
BIN
src/main/resources/assets/superbwarfare/textures/item/m_18.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 973 B |
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"pattern": [
|
||||
" a ",
|
||||
"bcb",
|
||||
"bdb"
|
||||
],
|
||||
"key": {
|
||||
"a": {
|
||||
"item": "minecraft:tripwire_hook"
|
||||
},
|
||||
"b": {
|
||||
"item": "minecraft:iron_nugget"
|
||||
},
|
||||
"c": {
|
||||
"item": "minecraft:wheat"
|
||||
},
|
||||
"d": {
|
||||
"item": "minecraft:gunpowder"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "superbwarfare:m18_smoke_grenade",
|
||||
"count": 2
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue