添加98k
This commit is contained in:
parent
037e7acdde
commit
ce1f33be33
43 changed files with 7074 additions and 10 deletions
|
@ -0,0 +1,27 @@
|
|||
package net.mcreator.superbwarfare.client.layer;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.K98Item;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class K98Layer extends GeoRenderLayer<K98Item> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/k98_e.png");
|
||||
|
||||
public K98Layer(GeoRenderer<K98Item> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, K98Item animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
package net.mcreator.superbwarfare.client.model.item;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.K98Item;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class K98ItemModel extends GeoModel<K98Item> {
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(K98Item animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "animations/k98.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(K98Item animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "geo/kar98k.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(K98Item animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/item/k98.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(K98Item animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone flare = getAnimationProcessor().getBone("flare");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return;
|
||||
|
||||
if (stack.getOrCreateTag().getDouble("flash_time") > 0) {
|
||||
flare.setHidden(false);
|
||||
flare.setScaleX((float) (0.6 + 0.5 * (Math.random() - 0.5)));
|
||||
flare.setScaleY((float) (0.6 + 0.5 * (Math.random() - 0.5)));
|
||||
flare.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||
} else {
|
||||
flare.setHidden(true);
|
||||
}
|
||||
|
||||
double p = player.getPersistentData().getDouble("zoom_pos");
|
||||
double zp = player.getPersistentData().getDouble("zoom_pos_z");
|
||||
|
||||
gun.setPosX(2.11f * (float) p);
|
||||
gun.setPosY(1.52f * (float) p - (float) (0.2f * zp));
|
||||
gun.setPosZ(10f * (float) p + (float) (0.3f * zp));
|
||||
gun.setScaleZ(1f - (0.7f * (float) p));
|
||||
|
||||
|
||||
double fp = player.getPersistentData().getDouble("fire_pos");
|
||||
double fr = player.getPersistentData().getDouble("fire_rot");
|
||||
|
||||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
|
||||
shen.setPosY(0.1f * (float) (fp + 2 * fr));
|
||||
shen.setPosZ(4.6f * (float) (fp + 0.54f * fr));
|
||||
shen.setRotX(0.03f * (float) (fp + fr));
|
||||
shen.setRotZ(0f);
|
||||
} else {
|
||||
shen.setPosY(0.18f * (float) (fp + 2 * fr));
|
||||
shen.setPosZ(4.8f * (float) (fp + 0.54f * fr));
|
||||
shen.setRotX(0.27f * (float) (0.18f * fp + fr));
|
||||
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
|
||||
}
|
||||
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp));
|
||||
|
||||
|
||||
CoreGeoBone root = getAnimationProcessor().getBone("root");
|
||||
|
||||
float PosX = (float) player.getPersistentData().getDouble("gun_move_posX");
|
||||
float PosY = (float) player.getPersistentData().getDouble("gun_move_posY");
|
||||
|
||||
double y = player.getPersistentData().getDouble("y");
|
||||
double x = player.getPersistentData().getDouble("x");
|
||||
|
||||
root.setPosX(PosX);
|
||||
root.setPosY((float) y + PosY);
|
||||
root.setRotX((float) x);
|
||||
|
||||
float RotZ = (float) player.getPersistentData().getDouble("gun_move_rotZ");
|
||||
|
||||
root.setRotY(0.2f * PosX);
|
||||
|
||||
root.setRotZ(0.2f * PosX + RotZ);
|
||||
|
||||
CoreGeoBone move = getAnimationProcessor().getBone("move");
|
||||
|
||||
double m = player.getPersistentData().getDouble("move");
|
||||
|
||||
double vy = player.getPersistentData().getDouble("vy");
|
||||
|
||||
move.setPosX(9.3f * (float) m);
|
||||
|
||||
move.setPosY(2f * (float) vy);
|
||||
|
||||
double xRot = player.getPersistentData().getDouble("xRot");
|
||||
|
||||
double yRot = player.getPersistentData().getDouble("yRot");
|
||||
|
||||
double zRot = player.getPersistentData().getDouble("zRot");
|
||||
|
||||
move.setRotX(0.75f * Mth.DEG_TO_RAD * (float) xRot - 0.15f * (float) vy);
|
||||
|
||||
move.setRotY(0.75f * Mth.DEG_TO_RAD * (float) yRot);
|
||||
|
||||
move.setRotZ(2.7f * (float) m + Mth.DEG_TO_RAD * (float) zRot);
|
||||
|
||||
CoreGeoBone camera = getAnimationProcessor().getBone("camera");
|
||||
|
||||
player.getPersistentData().putDouble("camera_rot_x", Mth.RAD_TO_DEG * camera.getRotX());
|
||||
|
||||
player.getPersistentData().putDouble("camera_rot_y", Mth.RAD_TO_DEG * camera.getRotY());
|
||||
|
||||
player.getPersistentData().putDouble("camera_rot_z", Mth.RAD_TO_DEG * camera.getRotZ());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package net.mcreator.superbwarfare.client.renderer.item;
|
||||
|
||||
import net.mcreator.superbwarfare.client.layer.K98Layer;
|
||||
import net.mcreator.superbwarfare.client.model.item.K98ItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.K98Item;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||
|
||||
public class K98ItemRenderer extends GeoItemRenderer<K98Item> {
|
||||
public K98ItemRenderer() {
|
||||
super(new K98ItemModel());
|
||||
this.addRenderLayer(new K98Layer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(K98Item instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
|
@ -41,6 +41,7 @@ public class ModItems {
|
|||
public static final RegistryObject<Item> QBZ_95 = GUNS.register("qbz_95", Qbz95Item::new);
|
||||
public static final RegistryObject<Item> MK_14 = GUNS.register("mk_14", Mk14Item::new);
|
||||
public static final RegistryObject<Item> MARLIN = GUNS.register("marlin", MarlinItem::new);
|
||||
public static final RegistryObject<Item> K_98 = GUNS.register("k_98", K98Item::new);
|
||||
public static final RegistryObject<Item> SVD = GUNS.register("svd", SvdItem::new);
|
||||
public static final RegistryObject<Item> M_98B = GUNS.register("m_98b", M98bItem::new);
|
||||
public static final RegistryObject<Item> SENTINEL = GUNS.register("sentinel", SentinelItem::new);
|
||||
|
@ -144,7 +145,7 @@ public class ModItems {
|
|||
|
||||
public static final RegistryObject<Item> TRACHELIUM_BLUEPRINT = ITEMS.register("trachelium_blueprint", () -> new BlueprintItem(RarityTool.LEGENDARY));
|
||||
public static final RegistryObject<Item> GLOCK_17_BLUEPRINT = ITEMS.register("glock_17_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> GLOCK_18_BLUEPRINT = ITEMS.register("glock_18_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> GLOCK_18_BLUEPRINT = ITEMS.register("glock_18_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||
public static final RegistryObject<Item> HUNTING_RIFLE_BLUEPRINT = ITEMS.register("hunting_rifle_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||
public static final RegistryObject<Item> M_79_BLUEPRINT = ITEMS.register("m_79_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||
public static final RegistryObject<Item> RPG_BLUEPRINT = ITEMS.register("rpg_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||
|
@ -169,6 +170,7 @@ public class ModItems {
|
|||
public static final RegistryObject<Item> TASER_BLUEPRINT = ITEMS.register("taser_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> M_1911_BLUEPRINT = ITEMS.register("m_1911_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> QBZ_95_BLUEPRINT = ITEMS.register("qbz_95_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||
public static final RegistryObject<Item> K_98_BLUEPRINT = ITEMS.register("k_98_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||
|
||||
/**
|
||||
* Block
|
||||
|
|
|
@ -210,6 +210,13 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> QBZ_95_RELOAD_NORMAL = REGISTRY.register("qbz_95_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "qbz_95_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> QBZ_95_RELOAD_EMPTY = REGISTRY.register("qbz_95_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "qbz_95_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> K_98_FIRE_1P = REGISTRY.register("k_98_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> K_98_FIRE_3P = REGISTRY.register("k_98_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> K_98_FAR = REGISTRY.register("k_98_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_far")));
|
||||
public static final RegistryObject<SoundEvent> K_98_VERYFAR = REGISTRY.register("k_98_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> K_98_RELOAD_EMPTY = REGISTRY.register("k_98_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> K_98_BOLT = REGISTRY.register("k_98_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "k_98_bolt")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> MK_42_FIRE_1P = REGISTRY.register("mk_42_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> MK_42_FIRE_3P = REGISTRY.register("mk_42_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> MK_42_FAR = REGISTRY.register("mk_42_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("superbwarfare", "mk_42_far")));
|
||||
|
|
|
@ -37,6 +37,7 @@ public class ModTabs {
|
|||
output.accept(Qbz95Item.getGunInstance());
|
||||
output.accept(Mk14Item.getGunInstance());
|
||||
output.accept(MarlinItem.getGunInstance());
|
||||
output.accept(K98Item.getGunInstance());
|
||||
output.accept(SvdItem.getGunInstance());
|
||||
output.accept(HuntingRifle.getGunInstance());
|
||||
output.accept(M98bItem.getGunInstance());
|
||||
|
|
|
@ -50,7 +50,7 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
public static ItemDisplayContext transformType;
|
||||
|
||||
public Glock18Item() {
|
||||
super(new Properties().stacksTo(1).rarity(Rarity.COMMON));
|
||||
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
204
src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java
Normal file
204
src/main/java/net/mcreator/superbwarfare/item/gun/K98Item.java
Normal file
|
@ -0,0 +1,204 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.K98ItemRenderer;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.ai.attributes.Attribute;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.core.animation.AnimationController;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.core.animation.RawAnimation;
|
||||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class K98Item extends GunItem implements GeoItem, AnimatedItem {
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
public K98Item() {
|
||||
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeClient(Consumer<IClientItemExtensions> consumer) {
|
||||
super.initializeClient(consumer);
|
||||
consumer.accept(new IClientItemExtensions() {
|
||||
private final BlockEntityWithoutLevelRenderer renderer = new K98ItemRenderer();
|
||||
|
||||
@Override
|
||||
public BlockEntityWithoutLevelRenderer getCustomRenderer() {
|
||||
return renderer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) {
|
||||
return HumanoidModel.ArmPose.BOW_AND_ARROW;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getTransformType(ItemDisplayContext type) {
|
||||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState fireAnimPredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.shift"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.k98.reload_empty"));
|
||||
}
|
||||
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.idle"));
|
||||
}
|
||||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<K98Item> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.draw"));
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround()
|
||||
&& player.getPersistentData().getDouble("noRun") == 0
|
||||
&& !(stack.getOrCreateTag().getBoolean("is_empty_reloading"))) {
|
||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run_fast"));
|
||||
} else {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.run"));
|
||||
}
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.k98.idle"));
|
||||
}
|
||||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState<K98Item> event) {
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
||||
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||
this.animationProcedure = "empty";
|
||||
event.getController().forceAnimationReset();
|
||||
}
|
||||
} else if (this.animationProcedure.equals("empty")) {
|
||||
return PlayState.STOP;
|
||||
}
|
||||
}
|
||||
return PlayState.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
|
||||
data.add(fireAnimController);
|
||||
var idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addGunTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
|
||||
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
|
||||
UUID uuid = new UUID(slot.toString().hashCode(), 0);
|
||||
if (slot == EquipmentSlot.MAINHAND) {
|
||||
map = HashMultimap.create(map);
|
||||
map.put(Attributes.MOVEMENT_SPEED,
|
||||
new AttributeModifier(uuid, ModUtils.ATTRIBUTE_MODIFIER, -0.05f, AttributeModifier.Operation.MULTIPLY_BASE));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(
|
||||
ModSounds.K_98_RELOAD_EMPTY.get(),
|
||||
ModSounds.K_98_BOLT.get()
|
||||
);
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
ItemStack stack = new ItemStack(ModItems.K_98.get());
|
||||
GunsTool.initCreativeGun(stack, ModItems.K_98.getId().getPath());
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnimationProcedure(String procedure) {
|
||||
this.animationProcedure = procedure;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/k98_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGunDisplayName() {
|
||||
return " KAR-98K";
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
3932
src/main/resources/assets/superbwarfare/geo/kar98k.geo.json
Normal file
3932
src/main/resources/assets/superbwarfare/geo/kar98k.geo.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -42,6 +42,7 @@
|
|||
"item.superbwarfare.glock_18": "GLOCK-18",
|
||||
"item.superbwarfare.m_1911": "M1911A1",
|
||||
"item.superbwarfare.qbz_95": "QBZ-95-1",
|
||||
"item.superbwarfare.k_98": "KAR-98K",
|
||||
|
||||
"des.superbwarfare.tips.damage": "Damage: ",
|
||||
"des.superbwarfare.tips.level": "Level: ",
|
||||
|
@ -75,6 +76,7 @@
|
|||
"item.superbwarfare.glock_18_blueprint": "GLOCK-18 Blueprint",
|
||||
"item.superbwarfare.m_1911_blueprint": "M1911 Blueprint",
|
||||
"item.superbwarfare.qbz_95_blueprint": "QBZ-95-1 Blueprint",
|
||||
"item.superbwarfare.k_98_blueprint": "KAR-98K Blueprint",
|
||||
|
||||
"item.superbwarfare.common_material_pack": "Common Material Pack",
|
||||
"item.superbwarfare.rare_material_pack": "Rare Material Pack",
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
"item.superbwarfare.glock_18": "格洛克18手枪",
|
||||
"item.superbwarfare.m_1911": "M1911手枪",
|
||||
"item.superbwarfare.qbz_95": "95-1式自动步枪",
|
||||
"item.superbwarfare.k_98": "KAR-98K",
|
||||
|
||||
"des.superbwarfare.tips.damage": "伤害: ",
|
||||
"des.superbwarfare.tips.level": "等级: ",
|
||||
|
@ -75,6 +76,7 @@
|
|||
"item.superbwarfare.glock_18_blueprint": "格洛克18手枪蓝图",
|
||||
"item.superbwarfare.m_1911_blueprint": "M1911手枪蓝图",
|
||||
"item.superbwarfare.qbz_95_blueprint": "95-1式自动步枪蓝图",
|
||||
"item.superbwarfare.k_98_blueprint": "KAR-98K蓝图",
|
||||
|
||||
"item.superbwarfare.common_material_pack": "普通材料包",
|
||||
"item.superbwarfare.rare_material_pack": "稀有材料包",
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "builtin/entity",
|
||||
"texture_size": [
|
||||
256,
|
||||
256
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"firstperson_righthand": {
|
||||
"translation": [
|
||||
-6.75,
|
||||
3,
|
||||
3.5
|
||||
],
|
||||
"scale": [
|
||||
1.05,
|
||||
1.05,
|
||||
1.05
|
||||
]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"scale": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [
|
||||
165.69,
|
||||
-39.63,
|
||||
178.66
|
||||
],
|
||||
"translation": [
|
||||
-1.9,
|
||||
-3.25,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
0.18,
|
||||
0.18,
|
||||
0.18
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
260
src/main/resources/assets/superbwarfare/models/item/k98_3d.json
Normal file
260
src/main/resources/assets/superbwarfare/models/item/k98_3d.json
Normal file
|
@ -0,0 +1,260 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "superbwarfare:item/hunting_rifle3d",
|
||||
"particle": "superbwarfare:item/hunting_rifle3d"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7.5, 7, 15.7],
|
||||
"to": [8.5, 7.4, 17.15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.7, 6.4, -12],
|
||||
"to": [8.3, 7, 18.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.7, 7, -11.9],
|
||||
"to": [8.3, 7.5, -11.35],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.35, 5.3, -4.8],
|
||||
"to": [8.65, 7.1, -4.05],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.35, 5.3, -3.5],
|
||||
"to": [8.65, 7.1, -2.85],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 5.3, 1.65],
|
||||
"to": [8.75, 7.2, 2.7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 7, 7.7],
|
||||
"to": [8.5, 7.3, 11.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5, 5.75, 5.25], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 8.75, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5.25, 5.75, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1.25, 9.25, 1, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 1.5, 1.25, 9.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.3, 6.8, 17.15],
|
||||
"to": [9.1, 7.2, 17.55],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, -3.6]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5.5, 5.75, 5.75], "texture": "#0"},
|
||||
"east": {"uv": [5.75, 3.5, 6, 3.75], "texture": "#0"},
|
||||
"south": {"uv": [5.75, 3.75, 6, 4], "texture": "#0"},
|
||||
"west": {"uv": [5.75, 5, 6, 5.25], "texture": "#0"},
|
||||
"up": {"uv": [6, 5.5, 5.75, 5.25], "texture": "#0"},
|
||||
"down": {"uv": [5.75, 5.75, 5.5, 6], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.8683, 5.75391, 17.15],
|
||||
"to": [9.2683, 7.15391, 17.55],
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [9.0683, 6.75391, 17.35]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 5.5, 5.75, 5.75], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [6, 5.5, 5.75, 5.25], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.75, 3.75, 6, 4], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [5.75, 5.75, 5.5, 6], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.75, 5, 6, 5.25], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [5.75, 3.5, 6, 3.75], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.7, 7, 11.75],
|
||||
"to": [8.3, 7.2, 18.35],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 4]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.75, 5.5, 6, 5.75], "texture": "#0"},
|
||||
"east": {"uv": [5.75, 5.75, 6, 6], "texture": "#0"},
|
||||
"south": {"uv": [0, 6, 0.25, 6.25], "texture": "#0"},
|
||||
"west": {"uv": [0.25, 6, 0.5, 6.25], "texture": "#0"},
|
||||
"up": {"uv": [0.75, 6.25, 0.5, 6], "texture": "#0"},
|
||||
"down": {"uv": [6.25, 0.5, 6, 0.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 5.05, 9],
|
||||
"to": [8.75, 6.75, 19],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 0.5, 5.5, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 4, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [5, 5, 5.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.5, 4, 1], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 5, 0, 1], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 0.5, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.45, 5.35, -4.9],
|
||||
"to": [8.55, 6.75, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 0.5, 5.5, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 4, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [5, 5, 5.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.5, 4, 1], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 5, 0, 1], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 0.5, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.45, 6.75, 0.7],
|
||||
"to": [8.55, 7.05, 7.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 0.5, 5.5, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 4, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [5, 5, 5.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.5, 4, 1], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 5, 0, 1], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 0.5, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 0.48603, 17.41424],
|
||||
"to": [8.75, 2.28603, 29.91424],
|
||||
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 1.28603, 29.57807]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0.5, 6, 1], "texture": "#0"},
|
||||
"east": {"uv": [1.5, 1.5, 4.5, 2], "texture": "#0"},
|
||||
"south": {"uv": [1.5, 5.5, 2, 6], "texture": "#0"},
|
||||
"west": {"uv": [1.5, 2, 4.5, 2.5], "texture": "#0"},
|
||||
"up": {"uv": [2, 5.5, 1.5, 2.5], "texture": "#0"},
|
||||
"down": {"uv": [2.5, 2.5, 2, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 3.68658, 21.6194],
|
||||
"to": [8.75, 5.58658, 30.3694],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 3.83658, 35.48323]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 1.5, 6, 2], "texture": "#0"},
|
||||
"east": {"uv": [3.5, 3.5, 5.75, 4], "texture": "#0"},
|
||||
"south": {"uv": [2, 5.5, 2.5, 6], "texture": "#0"},
|
||||
"west": {"uv": [4, 0, 6.25, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [4, 6.25, 3.5, 4], "texture": "#0"},
|
||||
"down": {"uv": [4.5, 4, 4, 6.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 1.88658, 26.1194],
|
||||
"to": [8.75, 5.58658, 30.3694],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 3.83658, 35.48323]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 5, 0.5, 6], "texture": "#0"},
|
||||
"east": {"uv": [4.5, 1.5, 5.5, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [0.5, 5, 1, 6], "texture": "#0"},
|
||||
"west": {"uv": [4.5, 4, 5.5, 5], "texture": "#0"},
|
||||
"up": {"uv": [5.5, 3.5, 5, 2.5], "texture": "#0"},
|
||||
"down": {"uv": [5, 5, 4.5, 6], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.25, 0.36705, 29.34206],
|
||||
"to": [8.75, 1.88658, 30.3694],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 3.93658, 35.48323]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 6, 2.5], "texture": "#0"},
|
||||
"east": {"uv": [5.5, 2.5, 6, 3], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 3, 6, 3.5], "texture": "#0"},
|
||||
"west": {"uv": [5.5, 4, 6, 4.5], "texture": "#0"},
|
||||
"up": {"uv": [6, 5, 5.5, 4.5], "texture": "#0"},
|
||||
"down": {"uv": [5.5, 5.5, 5, 6], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [-1.5, 2, -4.75],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [-1.5, 2, -4.75],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 9.75, -4.25]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, -90, 0],
|
||||
"translation": [3.5, 2.25, 0]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 3.83658, 35.48323],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "superbwarfare:displaysettings/k98.item",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/k98"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/k98_icon"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"loader": "forge:separate_transforms",
|
||||
"gui_light": "front",
|
||||
"base": {
|
||||
"parent": "superbwarfare:item/k98_base"
|
||||
},
|
||||
"perspectives": {
|
||||
"gui": {
|
||||
"parent": "superbwarfare:item/k98_icon"
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"parent": "superbwarfare:item/k98_3d"
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"parent": "superbwarfare:item/98_3d"
|
||||
},
|
||||
"ground": {
|
||||
"parent": "superbwarfare:item/98_3d"
|
||||
},
|
||||
"fixed": {
|
||||
"parent": "superbwarfare:item/98_3d"
|
||||
},
|
||||
"head": {
|
||||
"parent": "superbwarfare:item/98_3d"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/gun_blueprint"
|
||||
}
|
||||
}
|
|
@ -1362,6 +1362,55 @@
|
|||
]
|
||||
},
|
||||
|
||||
"k_98_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"k_98_fire_3p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"k_98_far": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_far",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"k_98_veryfar": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_veryfar",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"k_98_reload_empty": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_reload_empty",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"k_98_bolt": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:k_98/k_98_bolt",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"lightsaber": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
Binary file not shown.
BIN
src/main/resources/assets/superbwarfare/sounds/k_98/k_98_far.ogg
Normal file
BIN
src/main/resources/assets/superbwarfare/sounds/k_98/k_98_far.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
BIN
src/main/resources/assets/superbwarfare/textures/item/k98.png
Normal file
BIN
src/main/resources/assets/superbwarfare/textures/item/k98.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
src/main/resources/assets/superbwarfare/textures/item/k98_e.png
Normal file
BIN
src/main/resources/assets/superbwarfare/textures/item/k98_e.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
23
src/main/resources/data/superbwarfare/guns/k_98.json
Normal file
23
src/main/resources/data/superbwarfare/guns/k_98.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"zoom_speed": 1.05,
|
||||
"zoom": 1.25,
|
||||
"spread": 5,
|
||||
"zoomSpread": 0.001,
|
||||
"recoil_x": 0.007,
|
||||
"recoil_y": 0.013,
|
||||
"damage": 35,
|
||||
"headshot": 3,
|
||||
"velocity": 37.75,
|
||||
"projectile_amount": 1,
|
||||
"mag": 5,
|
||||
"fire_interval": 2,
|
||||
"bolt_action_time": 22,
|
||||
"weight": 1,
|
||||
"fire_mode": 0,
|
||||
"semi": 1,
|
||||
"burst": 0,
|
||||
"auto": 0,
|
||||
"burst_size": 1,
|
||||
"empty_reload_time": 59,
|
||||
"BypassesArmor": 0.5
|
||||
}
|
|
@ -49,7 +49,7 @@
|
|||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:glock_18_blueprint",
|
||||
"weight": 39,
|
||||
"weight": 15,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_count",
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:glock_18_blueprint",
|
||||
"weight": 11,
|
||||
"weight": 15,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_count",
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"pattern": [
|
||||
"aba",
|
||||
"aca",
|
||||
"aaa"
|
||||
],
|
||||
"key": {
|
||||
"a": {
|
||||
"item": "minecraft:diamond"
|
||||
},
|
||||
"b": {
|
||||
"item": "superbwarfare:k_98_blueprint"
|
||||
},
|
||||
"c": {
|
||||
"item": "minecraft:lapis_lazuli"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "superbwarfare:k_98_blueprint",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"type": "minecraft:smithing_transform",
|
||||
"template": {
|
||||
"item": "superbwarfare:k_98_blueprint"
|
||||
},
|
||||
"base": {
|
||||
"item": "superbwarfare:rare_material_pack"
|
||||
},
|
||||
"addition": {
|
||||
"tag": "minecraft:logs"
|
||||
},
|
||||
"result": {
|
||||
"item": "superbwarfare:k_98"
|
||||
}
|
||||
}
|
|
@ -25,6 +25,7 @@
|
|||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:qbz_95"
|
||||
"superbwarfare:qbz_95",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
|
@ -24,6 +24,7 @@
|
|||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:qbz_95"
|
||||
"superbwarfare:qbz_95",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
|
@ -28,6 +28,7 @@
|
|||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:qbz_95"
|
||||
"superbwarfare:qbz_95",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
|
@ -23,6 +23,7 @@
|
|||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:qbz_95"
|
||||
"superbwarfare:qbz_95",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
"superbwarfare:ntw_20",
|
||||
"superbwarfare:sentinel",
|
||||
"superbwarfare:svd",
|
||||
"superbwarfare:m_98b"
|
||||
"superbwarfare:m_98b",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
"superbwarfare:ntw_20",
|
||||
"superbwarfare:sentinel",
|
||||
"superbwarfare:svd",
|
||||
"superbwarfare:m_98b"
|
||||
"superbwarfare:m_98b",
|
||||
"superbwarfare:k_98"
|
||||
]
|
||||
}
|
Loading…
Add table
Reference in a new issue