删除克莱伯,替换为牛头王20
|
@ -2,7 +2,7 @@ package net.mcreator.target.client.layer;
|
|||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.target.item.gun.Kraber;
|
||||
import net.mcreator.target.item.gun.Ntw20;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
@ -11,15 +11,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
|
|||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class KraberLayer extends GeoRenderLayer<Kraber> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/kraber_e.png");
|
||||
public class Ntw20Layer extends GeoRenderLayer<Ntw20> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/ntw_20_e.png");
|
||||
|
||||
public KraberLayer(GeoRenderer<Kraber> entityRenderer) {
|
||||
public Ntw20Layer(GeoRenderer<Ntw20> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Kraber animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
public void render(PoseStack poseStack, Ntw20 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);
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package net.mcreator.target.client.model.item;
|
||||
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.gun.Kraber;
|
||||
import net.mcreator.target.item.gun.Ntw20;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -12,30 +12,36 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
|||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class KraberItemModel extends GeoModel<Kraber> {
|
||||
public class Ntw20Model extends GeoModel<Ntw20> {
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(Kraber animatable) {
|
||||
return new ResourceLocation("target", "animations/kraber.animation.json");
|
||||
public ResourceLocation getAnimationResource(Ntw20 animatable) {
|
||||
return new ResourceLocation("target", "animations/ntw_20.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(Kraber animatable) {
|
||||
return new ResourceLocation("target", "geo/kraber.geo.json");
|
||||
public ResourceLocation getModelResource(Ntw20 animatable) {
|
||||
return new ResourceLocation("target", "geo/ntw_20.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(Kraber animatable) {
|
||||
return new ResourceLocation("target", "textures/item/kraber.png");
|
||||
public ResourceLocation getTextureResource(Ntw20 animatable) {
|
||||
return new ResourceLocation("target", "textures/item/ntw_20.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(Kraber animatable, long instanceId, AnimationState animationState) {
|
||||
public void setCustomAnimations(Ntw20 animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone scope = getAnimationProcessor().getBone("scope");
|
||||
CoreGeoBone flare = getAnimationProcessor().getBone("flare");
|
||||
CoreGeoBone l = getAnimationProcessor().getBone("l");
|
||||
CoreGeoBone r = getAnimationProcessor().getBone("r");
|
||||
CoreGeoBone action = getAnimationProcessor().getBone("action");
|
||||
CoreGeoBone body = getAnimationProcessor().getBone("body");
|
||||
CoreGeoBone jing = getAnimationProcessor().getBone("jing");
|
||||
CoreGeoBone base = getAnimationProcessor().getBone("base");
|
||||
CoreGeoBone lh = getAnimationProcessor().getBone("lh");
|
||||
CoreGeoBone rex = getAnimationProcessor().getBone("rex");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
|
@ -61,25 +67,40 @@ public class KraberItemModel extends GeoModel<Kraber> {
|
|||
shen.setRotX(0.1f * (float) (0.18f * fp + fr));
|
||||
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
|
||||
}
|
||||
|
||||
action.setPosZ(3 * (float) fp);
|
||||
lh.setPosZ(-3 * (float) fp);
|
||||
|
||||
shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon * fp));
|
||||
|
||||
double p = 0;
|
||||
p = player.getPersistentData().getDouble("zoom_pos");
|
||||
double p = player.getPersistentData().getDouble("zoom_pos");
|
||||
double zp = player.getPersistentData().getDouble("zoom_pos_z");
|
||||
|
||||
double zp = 0;
|
||||
zp = player.getPersistentData().getDouble("zoom_pos_z");
|
||||
gun.setPosX(4.528f * (float) p);
|
||||
|
||||
gun.setPosX(6.298f * (float) p);
|
||||
gun.setPosY(-0.43f * (float) p - (float) (0.2f * zp));
|
||||
|
||||
gun.setPosY(0.32f * (float) p - (float) (0.2f * zp));
|
||||
|
||||
gun.setPosZ(10.4f * (float) p + (float) (0.3f * zp));
|
||||
gun.setPosZ(10.0f * (float) p + (float) (0.3f * zp));
|
||||
|
||||
gun.setRotZ((float) (0.02f * zp));
|
||||
|
||||
gun.setScaleZ(1f - (0.8f * (float) p));
|
||||
|
||||
scope.setScaleZ(1f - (0.9f * (float) p));
|
||||
scope.setScaleZ(1f - (0.85f * (float) p));
|
||||
|
||||
if (gun.getPosX() > 2.5f) {
|
||||
rex.setHidden(false);
|
||||
action.setHidden(true);
|
||||
body.setHidden(true);
|
||||
jing.setHidden(true);
|
||||
base.setHidden(true);
|
||||
} else {
|
||||
rex.setHidden(true);
|
||||
action.setHidden(false);
|
||||
body.setHidden(false);
|
||||
jing.setHidden(false);
|
||||
base.setHidden(false);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getDouble("flash_time") > 0) {
|
||||
flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5)));
|
||||
|
@ -134,5 +155,13 @@ public class KraberItemModel extends GeoModel<Kraber> {
|
|||
move.setRotY(0.6f * 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());
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
package net.mcreator.target.client.renderer.item;
|
||||
|
||||
import net.mcreator.target.item.gun.Kraber;
|
||||
import net.mcreator.target.client.layer.KraberLayer;
|
||||
import net.mcreator.target.client.model.item.KraberItemModel;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||
|
||||
public class KraberItemRenderer extends GeoItemRenderer<Kraber> {
|
||||
public KraberItemRenderer() {
|
||||
super(new KraberItemModel());
|
||||
this.addRenderLayer(new KraberLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(Kraber instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package net.mcreator.target.client.renderer.item;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.target.item.gun.Ntw20;
|
||||
import net.mcreator.target.client.layer.Ntw20Layer;
|
||||
import net.mcreator.target.client.model.item.Ntw20Model;
|
||||
import net.mcreator.target.item.gun.SvdItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class Ntw20Renderer extends GeoItemRenderer<Ntw20> {
|
||||
public Ntw20Renderer() {
|
||||
super(new Ntw20Model());
|
||||
this.addRenderLayer(new Ntw20Layer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(Ntw20 animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
private static final float SCALE_RECIPROCAL = 1.0f / 16.0f;
|
||||
protected boolean renderArms = false;
|
||||
protected MultiBufferSource currentBuffer;
|
||||
protected RenderType renderType;
|
||||
public ItemDisplayContext transformType;
|
||||
protected Ntw20 animatable;
|
||||
private final Set<String> hiddenBones = new HashSet<>();
|
||||
private final Set<String> suppressedBones = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) {
|
||||
this.transformType = transformType;
|
||||
if (this.animatable != null)
|
||||
this.animatable.getTransformType(transformType);
|
||||
super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actuallyRender(PoseStack matrixStackIn, Ntw20 animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
this.currentBuffer = renderTypeBuffer;
|
||||
this.renderType = type;
|
||||
this.animatable = animatable;
|
||||
super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
if (this.renderArms) {
|
||||
this.renderArms = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(Ntw20 instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
|
@ -39,7 +39,7 @@ public class TargetModItems {
|
|||
public static final RegistryObject<Item> M_98B = GUNS.register("m_98b", M98bItem::new);
|
||||
public static final RegistryObject<Item> SENTINEL = GUNS.register("sentinel", SentinelItem::new);
|
||||
public static final RegistryObject<Item> HUNTING_RIFLE = GUNS.register("hunting_rifle", HuntingRifle::new);
|
||||
public static final RegistryObject<Item> KRABER = GUNS.register("kraber", Kraber::new);
|
||||
public static final RegistryObject<Item> NTW_20 = GUNS.register("ntw_20", Ntw20::new);
|
||||
public static final RegistryObject<Item> M_870 = GUNS.register("m_870", M870Item::new);
|
||||
public static final RegistryObject<Item> AA_12 = GUNS.register("aa_12", Aa12Item::new);
|
||||
public static final RegistryObject<Item> DEVOTION = GUNS.register("devotion", Devotion::new);
|
||||
|
@ -142,7 +142,7 @@ public class TargetModItems {
|
|||
public static final RegistryObject<Item> HK_416_BLUEPRINT = ITEMS.register("hk_416_blueprint", HK416Blueprint::new);
|
||||
public static final RegistryObject<Item> RPK_BLUEPRINT = ITEMS.register("rpk_blueprint", RPKBlueprint::new);
|
||||
public static final RegistryObject<Item> SKS_BLUEPRINT = ITEMS.register("sks_blueprint", SKSBlueprint::new);
|
||||
public static final RegistryObject<Item> KRABER_BLUEPRINT = ITEMS.register("kraber_blueprint", KRABERBlueprint::new);
|
||||
public static final RegistryObject<Item> NTW_20_BLUEPRINT = ITEMS.register("ntw_20_blueprint", Ntw20Blueprint::new);
|
||||
public static final RegistryObject<Item> VECTOR_BLUEPRINT = ITEMS.register("vector_blueprint", VectorBlueprint::new);
|
||||
public static final RegistryObject<Item> MINIGUN_BLUEPRINT = ITEMS.register("minigun_blueprint", MinigunBlueprint::new);
|
||||
public static final RegistryObject<Item> MK_14_BLUEPRINT = ITEMS.register("mk_14_blueprint", Mk14Blueprint::new);
|
||||
|
|
|
@ -111,13 +111,13 @@ public class TargetModSounds {
|
|||
public static final RegistryObject<SoundEvent> RPK_VERYFAR = REGISTRY.register("rpk_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpk_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> RPK_RELOAD_NORMAL = REGISTRY.register("rpk_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpk_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> RPK_RELOAD_EMPTY = REGISTRY.register("rpk_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpk_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_FIRE_1P = REGISTRY.register("kraber_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_FIRE_3P = REGISTRY.register("kraber_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_FAR = REGISTRY.register("kraber_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_far")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_VERYFAR = REGISTRY.register("kraber_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_RELOAD_NORMAL = REGISTRY.register("kraber_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_RELOAD_EMPTY = REGISTRY.register("kraber_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> KRABER_BOLT = REGISTRY.register("kraber_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_bolt")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_FIRE_1P = REGISTRY.register("ntw_20_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_FIRE_3P = REGISTRY.register("ntw_20_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_FAR = REGISTRY.register("ntw_20_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_far")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_VERYFAR = REGISTRY.register("ntw_20_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_RELOAD_NORMAL = REGISTRY.register("ntw_20_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_RELOAD_EMPTY = REGISTRY.register("ntw_20_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> NTW_20_BOLT = REGISTRY.register("ntw_20_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ntw_20_bolt")));
|
||||
public static final RegistryObject<SoundEvent> VECTOR_FIRE_1P = REGISTRY.register("vector_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> VECTOR_FIRE_3P = REGISTRY.register("vector_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> VECTOR_FAR = REGISTRY.register("vector_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_far")));
|
||||
|
|
|
@ -37,7 +37,7 @@ public class TargetModTabs {
|
|||
output.accept(HuntingRifle.getGunInstance());
|
||||
output.accept(M98bItem.getGunInstance());
|
||||
output.accept(SentinelItem.getGunInstance());
|
||||
output.accept(Kraber.getGunInstance());
|
||||
output.accept(Ntw20.getGunInstance());
|
||||
output.accept(M870Item.getGunInstance());
|
||||
output.accept(Aa12Item.getGunInstance());
|
||||
output.accept(Devotion.getGunInstance());
|
||||
|
|
|
@ -9,8 +9,8 @@ import net.minecraft.world.level.Level;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public class KRABERBlueprint extends Item {
|
||||
public KRABERBlueprint() {
|
||||
public class Ntw20Blueprint extends Item {
|
||||
public Ntw20Blueprint() {
|
||||
super(new Item.Properties().stacksTo(64).rarity(RarityTool.SPECIAL));
|
||||
}
|
||||
|
|
@ -3,28 +3,28 @@ package net.mcreator.target.item.gun;
|
|||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.client.renderer.item.KraberItemRenderer;
|
||||
import net.mcreator.target.client.renderer.item.Ntw20Renderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.RarityTool;
|
||||
import net.mcreator.target.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.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
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.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -45,21 +45,21 @@ import java.util.Set;
|
|||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
||||
public class Ntw20 extends GunItem implements GeoItem, AnimatedItem {
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
public Kraber() {
|
||||
public Ntw20() {
|
||||
super(new Item.Properties().stacksTo(1).rarity(RarityTool.SPECIAL));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(
|
||||
TargetModSounds.KRABER_RELOAD_EMPTY.get(),
|
||||
TargetModSounds.KRABER_RELOAD_NORMAL.get(),
|
||||
TargetModSounds.KRABER_BOLT.get()
|
||||
TargetModSounds.NTW_20_RELOAD_EMPTY.get(),
|
||||
TargetModSounds.NTW_20_RELOAD_NORMAL.get(),
|
||||
TargetModSounds.NTW_20_BOLT.get()
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
|||
public void initializeClient(Consumer<IClientItemExtensions> consumer) {
|
||||
super.initializeClient(consumer);
|
||||
consumer.accept(new IClientItemExtensions() {
|
||||
private final BlockEntityWithoutLevelRenderer renderer = new KraberItemRenderer();
|
||||
private final BlockEntityWithoutLevelRenderer renderer = new Ntw20Renderer();
|
||||
|
||||
@Override
|
||||
public BlockEntityWithoutLevelRenderer getCustomRenderer() {
|
||||
|
@ -94,30 +94,34 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
|||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 29) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.kraber.draw"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.draw"));
|
||||
}
|
||||
|
||||
if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming && stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.shift2"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.shift"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.shift"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.fire"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.reload"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_empty"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.reload2"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_normal"));
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.kraber.run"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.run"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.kraber.idle"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ntw_20.idle"));
|
||||
}
|
||||
return PlayState.STOP;
|
||||
}
|
||||
|
@ -179,8 +183,8 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
ItemStack stack = new ItemStack(TargetModItems.KRABER.get());
|
||||
GunsTool.initCreativeGun(stack, TargetModItems.KRABER.getId().getPath());
|
||||
ItemStack stack = new ItemStack(TargetModItems.NTW_20.get());
|
||||
GunsTool.initCreativeGun(stack, TargetModItems.NTW_20.getId().getPath());
|
||||
return stack;
|
||||
}
|
||||
|
||||
|
@ -191,11 +195,11 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/kraber_icon.png");
|
||||
return new ResourceLocation(TargetMod.MODID, "textures/gun_icon/ntw_20_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGunDisplayName() {
|
||||
return "KRABER";
|
||||
return "NTW_20";
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ import net.mcreator.target.init.TargetModItems;
|
|||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.RarityTool;
|
||||
import net.mcreator.target.tools.TooltipTool;
|
||||
|
@ -131,11 +132,11 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.draw"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("zoom_fire") && stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming && stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift2"));
|
||||
}
|
||||
|
||||
if (!stack.getOrCreateTag().getBoolean("zoom_fire") && stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift"));
|
||||
}
|
||||
|
||||
|
|
1527
src/main/resources/assets/target/animations/ntw_20.animation.json
Normal file
8554
src/main/resources/assets/target/geo/ntw_20.geo.json
Normal file
|
@ -35,7 +35,7 @@
|
|||
"item.target.hk_416": "Hk-416",
|
||||
"item.target.hunting_rifle": "HUNTING RIFLE",
|
||||
"item.target.svd": "SVD",
|
||||
"item.target.kraber": "KRABER",
|
||||
"item.target.ntw_20": "NTW-20",
|
||||
|
||||
"des.target.tips.damage": "Damage: ",
|
||||
"des.target.tips.level": "Level: ",
|
||||
|
@ -43,7 +43,7 @@
|
|||
"item.target.vector_blueprint": "VECTOR Blueprint",
|
||||
"item.target.m_60_blueprint": "M60 Blueprint",
|
||||
"item.target.hk_416_blueprint": "Hk-416 Blueprint",
|
||||
"item.target.kraber_blueprint": "KRABER Blueprint",
|
||||
"item.target.ntw_20_blueprint": "NTW-20 Blueprint",
|
||||
"item.target.hunting_rifle_blueprint": "HUNTING RIFLE Blueprint",
|
||||
"item.target.m_79_blueprint": "M79 Blueprint",
|
||||
"item.target.m_870_blueprint": "M870 Blueprint",
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
"item.target.hk_416": "Hk-416突击步枪",
|
||||
"item.target.hunting_rifle": "猎枪",
|
||||
"item.target.svd": "SVD狙击步枪",
|
||||
"item.target.kraber": "克莱贝尔狙击步枪",
|
||||
"item.target.ntw_20": "NTW-20反器材狙击步枪",
|
||||
|
||||
"des.target.tips.damage": "伤害: ",
|
||||
"des.target.tips.level": "等级: ",
|
||||
|
@ -43,7 +43,7 @@
|
|||
"item.target.vector_blueprint": "短剑冲锋枪蓝图",
|
||||
"item.target.m_60_blueprint": "M60通用机枪蓝图",
|
||||
"item.target.hk_416_blueprint": "Hk-416突击步枪蓝图",
|
||||
"item.target.kraber_blueprint": "克莱贝尔狙击步枪蓝图",
|
||||
"item.target.ntw_20_blueprint": "NTW-20反器材狙击步枪蓝图",
|
||||
"item.target.hunting_rifle_blueprint": "猎枪蓝图",
|
||||
"item.target.m_79_blueprint": "M79 榴弹发射器蓝图",
|
||||
"item.target.m_870_blueprint": "M870霰弹枪蓝图",
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "builtin/entity",
|
||||
"texture_size": [
|
||||
128,
|
||||
128
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [
|
||||
0,
|
||||
5.75,
|
||||
-9.75
|
||||
]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [
|
||||
0,
|
||||
5.75,
|
||||
-9.75
|
||||
]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [
|
||||
18.25,
|
||||
-17.75,
|
||||
-37.25
|
||||
],
|
||||
"scale": [
|
||||
4,
|
||||
4,
|
||||
4
|
||||
]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [
|
||||
-3.5,
|
||||
10,
|
||||
-5.25
|
||||
],
|
||||
"scale": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [
|
||||
0,
|
||||
7,
|
||||
0
|
||||
]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [
|
||||
30,
|
||||
-145,
|
||||
0
|
||||
],
|
||||
"translation": [
|
||||
0.25,
|
||||
2.75,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
0.7,
|
||||
0.7,
|
||||
0.7
|
||||
]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [
|
||||
0,
|
||||
-91,
|
||||
0
|
||||
],
|
||||
"translation": [
|
||||
3.5,
|
||||
10.5,
|
||||
-1.5
|
||||
],
|
||||
"scale": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "builtin/entity",
|
||||
"texture_size": [
|
||||
128,
|
||||
128
|
||||
],
|
||||
"display": {
|
||||
"firstperson_righthand": {
|
||||
"translation": [
|
||||
9.25,
|
||||
-21.25,
|
||||
-28
|
||||
],
|
||||
"scale": [
|
||||
4,
|
||||
4,
|
||||
4
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"loader": "forge:separate_transforms",
|
||||
"gui_light": "front",
|
||||
"base": {
|
||||
"parent": "target:item/kraber_base"
|
||||
},
|
||||
"perspectives": {
|
||||
"gui": {
|
||||
"parent": "target:item/kraber_icon"
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"parent": "target:item/kraber3d"
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"parent": "target:item/kraber3d"
|
||||
},
|
||||
"ground": {
|
||||
"parent": "target:item/kraber3d"
|
||||
},
|
||||
"fixed": {
|
||||
"parent": "target:item/kraber3d"
|
||||
},
|
||||
"head": {
|
||||
"parent": "target:item/kraber3d"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "target:displaysettings/kraber.item",
|
||||
"textures": {
|
||||
"layer0": "target:item/kraber"
|
||||
}
|
||||
}
|
27
src/main/resources/assets/target/models/item/ntw_20.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"loader": "forge:separate_transforms",
|
||||
"gui_light": "front",
|
||||
"base": {
|
||||
"parent": "target:item/ntw_20_base"
|
||||
},
|
||||
"perspectives": {
|
||||
"gui": {
|
||||
"parent": "target:item/ntw_20_icon"
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"parent": "target:item/ntw_203d"
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"parent": "target:item/ntw_203d"
|
||||
},
|
||||
"ground": {
|
||||
"parent": "target:item/ntw_203d"
|
||||
},
|
||||
"fixed": {
|
||||
"parent": "target:item/ntw_203d"
|
||||
},
|
||||
"head": {
|
||||
"parent": "target:item/ntw_203d"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,8 +2,8 @@
|
|||
"credit": "Made with Blockbench",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "target:item/kraber3d",
|
||||
"particle": "target:item/kraber3d"
|
||||
"0": "target:item/ntw_203d",
|
||||
"particle": "target:item/ntw_203d"
|
||||
},
|
||||
"elements": [
|
||||
{
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "target:displaysettings/ntw20.item",
|
||||
"textures": {
|
||||
"layer0": "target:item/ntw_20"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "target:item/kraber_icon"
|
||||
"layer0": "target:item/ntw_20_icon"
|
||||
}
|
||||
}
|
|
@ -629,58 +629,58 @@
|
|||
]
|
||||
},
|
||||
|
||||
"kraber_fire_1p": {
|
||||
"ntw_20_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_fire_1p",
|
||||
"name": "target:ntw_20/ntw_20_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_fire_3p": {
|
||||
"ntw_20_fire_3p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_fire_3p",
|
||||
"name": "target:ntw_20/ntw_20_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_far": {
|
||||
"ntw_20_far": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_far",
|
||||
"name": "target:ntw_20/ntw_20_far",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_veryfar": {
|
||||
"ntw_20_veryfar": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_veryfar",
|
||||
"name": "target:ntw_20/ntw_20_veryfar",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_reload_normal": {
|
||||
"ntw_20_reload_normal": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_reload_normal",
|
||||
"name": "target:ntw_20/ntw_20_reload_normal",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_reload_empty": {
|
||||
"ntw_20_reload_empty": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_reload_empty",
|
||||
"name": "target:ntw_20/ntw_20_reload_empty",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"kraber_bolt": {
|
||||
"ntw_20_bolt": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "target:kraber/kraber_bolt",
|
||||
"name": "target:ntw_20/ntw_20_bolt",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
|
|
BIN
src/main/resources/assets/target/sounds/ntw_20/ntw_20_bolt.ogg
Normal file
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 69 KiB |
BIN
src/main/resources/assets/target/textures/item/ntw_20.png
Normal file
After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
BIN
src/main/resources/assets/target/textures/item/ntw_20_e.png
Normal file
After Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 583 B |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
"zoom_speed": 0.6,
|
||||
"zoom": 6,
|
||||
"zoom": 8,
|
||||
"min_zoom": 4,
|
||||
"max_zoom": 10,
|
||||
"max_zoom": 8,
|
||||
"bipod": 1,
|
||||
"dev": 6,
|
||||
"recoil_x": 0.008,
|
||||
"recoil_y": 0.018,
|
||||
"damage": 70,
|
||||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.088,
|
||||
"damage": 140,
|
||||
"headshot": 3,
|
||||
"velocity": 32.5,
|
||||
"velocity": 31,
|
||||
"projectile_amount": 1,
|
||||
"mag": 4,
|
||||
"mag": 3,
|
||||
"fire_interval": 10,
|
||||
"bolt_action_time": 30,
|
||||
"weight": 2,
|
||||
|
@ -20,6 +20,6 @@
|
|||
"burst": 0,
|
||||
"auto": 0,
|
||||
"burst_size": 1,
|
||||
"normal_reload_time": 68,
|
||||
"empty_reload_time": 86
|
||||
"normal_reload_time": 64,
|
||||
"empty_reload_time": 87
|
||||
}
|
|
@ -188,7 +188,7 @@
|
|||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "target:kraber_blueprint",
|
||||
"name": "target:ntw_20_blueprint",
|
||||
"weight": 30,
|
||||
"functions": [
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:smithing_transform",
|
||||
"template": {
|
||||
"item": "target:kraber_blueprint"
|
||||
"item": "target:ntw_20_blueprint"
|
||||
},
|
||||
"base": {
|
||||
"item": "target:special_material_pack"
|
||||
|
@ -10,6 +10,6 @@
|
|||
"item": "minecraft:spyglass"
|
||||
},
|
||||
"result": {
|
||||
"item": "target:kraber"
|
||||
"item": "target:ntw_20"
|
||||
}
|
||||
}
|
|
@ -11,14 +11,14 @@
|
|||
"item": "minecraft:diamond"
|
||||
},
|
||||
"b": {
|
||||
"item": "target:kraber_blueprint"
|
||||
"item": "target:ntw_20_blueprint"
|
||||
},
|
||||
"c": {
|
||||
"item": "minecraft:lapis_lazuli"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "target:kraber_blueprint",
|
||||
"item": "target:ntw_20_blueprint",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
"target:hk_416",
|
||||
"target:rpk",
|
||||
"target:sks",
|
||||
"target:kraber",
|
||||
"target:ntw_20",
|
||||
"target:vector",
|
||||
"target:minigun",
|
||||
"target:mk_14",
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"target:devotion",
|
||||
"target:trachelium",
|
||||
"target:hunting_rifle",
|
||||
"target:kraber",
|
||||
"target:ntw_20",
|
||||
"target:m_98b",
|
||||
"target:sentinel",
|
||||
"target:m_870",
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"target:aa_12",
|
||||
"target:m_4",
|
||||
"target:devotion",
|
||||
"target:kraber",
|
||||
"target:ntw_20",
|
||||
"target:m_98b",
|
||||
"target:sentinel"
|
||||
]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:hunting_rifle",
|
||||
"target:kraber",
|
||||
"target:ntw_20",
|
||||
"target:sentinel",
|
||||
"target:svd",
|
||||
"target:m_98b"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:bocek",
|
||||
"target:kraber",
|
||||
"target:ntw_20",
|
||||
"target:minigun"
|
||||
]
|
||||
}
|