diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackEntities.java b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackEntities.java index 93c6e145..95bf7ee6 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackEntities.java +++ b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackEntities.java @@ -1,7 +1,9 @@ package com.spectrobes.spectrobesmod.client.entity.attacks; import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.entities.attacks.BasicEnergyBoltEntity; import com.spectrobes.spectrobesmod.common.entities.attacks.EnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.HomingEnergyBoltEntity; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; @@ -10,6 +12,8 @@ import java.util.function.Supplier; + + public class AttackEntities { public static final DeferredRegister> ENTITY_TYPES = DeferredRegister.create(Registries.ENTITY_TYPE, SpectrobesInfo.MOD_ID); @@ -17,7 +21,20 @@ public class AttackEntities { public static final Supplier> ENTITY_ENERGY_BOLT = ENTITY_TYPES.register("entity_energy_bolt", () -> EntityType.Builder.of(EnergyBoltEntity::new, - MobCategory.MISC) + MobCategory.MISC) .sized(1f, 1f) .build(ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "energy_bolt").toString())); + + // = = = TESTING = = = + public static final Supplier> ENTITY_PROJECTILE_BASIC + = ENTITY_TYPES.register("entity_basic_blaster_shot", + () -> EntityType.Builder.of(BasicEnergyBoltEntity::new, MobCategory.MISC) + .sized(1f, 1f) + .build(ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "basic_blaster_shot").toString())); + + public static final Supplier> ENTITY_PROJECTILE_HOMING + = ENTITY_TYPES.register("entity_homing_shot", + () -> EntityType.Builder.of(HomingEnergyBoltEntity::new, MobCategory.MISC) + .sized(1f, 1f) + .build(ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "homing_shot").toString())); } diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackRendererManager.java b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackRendererManager.java index b564bea3..73b9ce28 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackRendererManager.java +++ b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/AttackRendererManager.java @@ -1,6 +1,7 @@ package com.spectrobes.spectrobesmod.client.entity.attacks; import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.client.entity.attacks.renderer.BasicEnergyBoltRenderer; import com.spectrobes.spectrobesmod.client.entity.attacks.renderer.EnergyBoltRenderer; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; @@ -12,6 +13,7 @@ public class AttackRendererManager { @SubscribeEvent public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { event.registerEntityRenderer(AttackEntities.ENTITY_ENERGY_BOLT.get(), manager -> new EnergyBoltRenderer(manager)); - + event.registerEntityRenderer(AttackEntities.ENTITY_PROJECTILE_BASIC.get(), manager -> new BasicEnergyBoltRenderer(manager)); + event.registerEntityRenderer(AttackEntities.ENTITY_PROJECTILE_HOMING.get(), manager -> new BasicEnergyBoltRenderer(manager)); } } diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/model/BasicBlasterEnergyBoltModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/model/BasicBlasterEnergyBoltModel.java new file mode 100644 index 00000000..3a0eed13 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/model/BasicBlasterEnergyBoltModel.java @@ -0,0 +1,30 @@ +package com.spectrobes.spectrobesmod.client.entity.attacks.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.entities.attacks.AbstractEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.BasicEnergyBoltEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +// TODO: This is essentially a duplicate of EnergyBoltModel. Make have different ResourceLocations. +public class BasicBlasterEnergyBoltModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(AbstractEnergyBoltEntity object) + { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/energy_bolt.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(AbstractEnergyBoltEntity object) + { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/attack/energy_bolt.png"); + } + + @Override + public ResourceLocation getAnimationResource(AbstractEnergyBoltEntity object) + { + // TODO: This seems like something that needs to be replaced. + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "animations/krawl/gris.json"); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/renderer/BasicEnergyBoltRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/renderer/BasicEnergyBoltRenderer.java new file mode 100644 index 00000000..db14e318 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/entity/attacks/renderer/BasicEnergyBoltRenderer.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.entity.attacks.renderer; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.spectrobes.spectrobesmod.client.entity.attacks.model.BasicBlasterEnergyBoltModel; +import com.spectrobes.spectrobesmod.common.entities.attacks.AbstractEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.BasicEnergyBoltEntity; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +// TODO: This is essentially a duplicate of EnergyBoltRenderer. Make have different ResourceLocations. +/** This renders all the blaster projectiles. */ +public class BasicEnergyBoltRenderer extends GeoEntityRenderer { + + public BasicEnergyBoltRenderer(EntityRendererProvider.Context renderManagerIn) { + super(renderManagerIn, new BasicBlasterEnergyBoltModel()); + } + + @Override + public void render(AbstractEnergyBoltEntity animatable, float yaw, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight) { +// poseStack.scale(4,4,4); + super.render(animatable, yaw, partialTick, poseStack, bufferSource, packedLight); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterCItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterCItemModel.java new file mode 100644 index 00000000..acbce348 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterCItemModel.java @@ -0,0 +1,25 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterCItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponBasicBlasterCItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponBasicBlasterCItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_basic_blaster_c.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponBasicBlasterCItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_basic_c.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponBasicBlasterCItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterItemModel.java new file mode 100644 index 00000000..ef3f789f --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponBasicBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponBasicBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponBasicBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_basic_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponBasicBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_basic.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponBasicBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponDoubleBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponDoubleBlasterItemModel.java new file mode 100644 index 00000000..026d2ebd --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponDoubleBlasterItemModel.java @@ -0,0 +1,25 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponDoubleBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponDoubleBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponDoubleBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_double_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponDoubleBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_double.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponDoubleBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHomingBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHomingBlasterItemModel.java new file mode 100644 index 00000000..272c422b --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHomingBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponHomingBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponHomingBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponHomingBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_homing_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponHomingBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_homing.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponHomingBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHyperBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHyperBlasterItemModel.java new file mode 100644 index 00000000..79b11f21 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponHyperBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponHyperBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponHyperBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponHyperBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_hyper_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponHyperBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_hyper.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponHyperBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponPhotonBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponPhotonBlasterItemModel.java new file mode 100644 index 00000000..4d56a92b --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponPhotonBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponPhotonBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponPhotonBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponPhotonBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_photon_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponPhotonBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_photon.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponPhotonBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRayBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRayBlasterItemModel.java new file mode 100644 index 00000000..6e6cb87b --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRayBlasterItemModel.java @@ -0,0 +1,25 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponDoubleBlasterItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponRayBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponRayBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponRayBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_ray_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponRayBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_ray.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponRayBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRuptureBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRuptureBlasterItemModel.java new file mode 100644 index 00000000..654fd386 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponRuptureBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponRuptureBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponRuptureBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponRuptureBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_rupture_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponRuptureBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_rupture.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponRuptureBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponShatterBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponShatterBlasterItemModel.java new file mode 100644 index 00000000..d584d002 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponShatterBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponShatterBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponShatterBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponShatterBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_shatter_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponShatterBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_shatter.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponShatterBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTrackingBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTrackingBlasterItemModel.java new file mode 100644 index 00000000..84ada004 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTrackingBlasterItemModel.java @@ -0,0 +1,24 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponTrackingBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponTrackingBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponTrackingBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_tracking_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponTrackingBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_tracking.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponTrackingBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTripleBlasterItemModel.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTripleBlasterItemModel.java new file mode 100644 index 00000000..2ad09384 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/model/WeaponTripleBlasterItemModel.java @@ -0,0 +1,25 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.model; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponRayBlasterItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponTripleBlasterItem; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class WeaponTripleBlasterItemModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(WeaponTripleBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "geo/weapons/weapon_triple_blaster.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(WeaponTripleBlasterItem object) { + return ResourceLocation.fromNamespaceAndPath(SpectrobesInfo.MOD_ID, "textures/models/item/blaster_triple.png"); + } + + @Override + public ResourceLocation getAnimationResource(WeaponTripleBlasterItem object) { + return null; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterCItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterCItemRenderer.java new file mode 100644 index 00000000..47d10d25 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterCItemRenderer.java @@ -0,0 +1,12 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponBasicBlasterCItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterCItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponBasicBlasterCItemRenderer extends GeoItemRenderer { + public WeaponBasicBlasterCItemRenderer() { + super(new WeaponBasicBlasterCItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterItemRenderer.java new file mode 100644 index 00000000..f5d2c060 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponBasicBlasterItemRenderer.java @@ -0,0 +1,11 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponBasicBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponBasicBlasterItemRenderer extends GeoItemRenderer { + public WeaponBasicBlasterItemRenderer() { + super(new WeaponBasicBlasterItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponDoubleBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponDoubleBlasterItemRenderer.java new file mode 100644 index 00000000..84ff47ce --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponDoubleBlasterItemRenderer.java @@ -0,0 +1,13 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponBasicBlasterItemModel; +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponDoubleBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponBasicBlasterItem; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponDoubleBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponDoubleBlasterItemRenderer extends GeoItemRenderer { + public WeaponDoubleBlasterItemRenderer() { + super(new WeaponDoubleBlasterItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHomingBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHomingBlasterItemRenderer.java new file mode 100644 index 00000000..d949d14a --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHomingBlasterItemRenderer.java @@ -0,0 +1,9 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponHomingBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponHomingBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponHomingBlasterItemRenderer extends GeoItemRenderer { + public WeaponHomingBlasterItemRenderer() { super(new WeaponHomingBlasterItemModel()); } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHyperBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHyperBlasterItemRenderer.java new file mode 100644 index 00000000..aa03ecdf --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponHyperBlasterItemRenderer.java @@ -0,0 +1,11 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponHyperBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponHyperBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponHyperBlasterItemRenderer extends GeoItemRenderer { + public WeaponHyperBlasterItemRenderer() { + super(new WeaponHyperBlasterItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponPhotonBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponPhotonBlasterItemRenderer.java new file mode 100644 index 00000000..975a302c --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponPhotonBlasterItemRenderer.java @@ -0,0 +1,9 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponPhotonBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponPhotonBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponPhotonBlasterItemRenderer extends GeoItemRenderer { + public WeaponPhotonBlasterItemRenderer() { super(new WeaponPhotonBlasterItemModel()); } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRayBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRayBlasterItemRenderer.java new file mode 100644 index 00000000..1c88176f --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRayBlasterItemRenderer.java @@ -0,0 +1,11 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponRayBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponRayBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponRayBlasterItemRenderer extends GeoItemRenderer { + public WeaponRayBlasterItemRenderer() { + super(new WeaponRayBlasterItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRuptureBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRuptureBlasterItemRenderer.java new file mode 100644 index 00000000..691c6d84 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponRuptureBlasterItemRenderer.java @@ -0,0 +1,9 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponRuptureBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponRuptureBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponRuptureBlasterItemRenderer extends GeoItemRenderer { + public WeaponRuptureBlasterItemRenderer() { super(new WeaponRuptureBlasterItemModel()); } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponShatterBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponShatterBlasterItemRenderer.java new file mode 100644 index 00000000..bacb1122 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponShatterBlasterItemRenderer.java @@ -0,0 +1,11 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponShatterBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponShatterBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponShatterBlasterItemRenderer extends GeoItemRenderer { + public WeaponShatterBlasterItemRenderer() { + super(new WeaponShatterBlasterItemModel()); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTrackingBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTrackingBlasterItemRenderer.java new file mode 100644 index 00000000..94d5d481 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTrackingBlasterItemRenderer.java @@ -0,0 +1,9 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponTrackingBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponTrackingBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponTrackingBlasterItemRenderer extends GeoItemRenderer { + public WeaponTrackingBlasterItemRenderer() { super(new WeaponTrackingBlasterItemModel()); } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTripleBlasterItemRenderer.java b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTripleBlasterItemRenderer.java new file mode 100644 index 00000000..3728bffd --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/client/items/weapons/renderer/WeaponTripleBlasterItemRenderer.java @@ -0,0 +1,9 @@ +package com.spectrobes.spectrobesmod.client.items.weapons.renderer; + +import com.spectrobes.spectrobesmod.client.items.weapons.model.WeaponTripleBlasterItemModel; +import com.spectrobes.spectrobesmod.common.items.weapons.WeaponTripleBlasterItem; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +public class WeaponTripleBlasterItemRenderer extends GeoItemRenderer { + public WeaponTripleBlasterItemRenderer() { super(new WeaponTripleBlasterItemModel()); } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/AbstractEnergyBoltEntity.java b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/AbstractEnergyBoltEntity.java new file mode 100644 index 00000000..8d1a9612 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/AbstractEnergyBoltEntity.java @@ -0,0 +1,115 @@ +package com.spectrobes.spectrobesmod.common.entities.attacks; + +import com.spectrobes.spectrobesmod.common.entities.IHasNature; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.projectile.AbstractHurtingProjectile; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; +import org.jetbrains.annotations.NotNull; +import software.bernie.geckolib.animatable.GeoAnimatable; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.util.GeckoLibUtil; + +// TODO: The projectile seems to fly the same speed regardless of what velocity it is shot at. +// May have to Override assignDirectionalMovement() to make the projectile travel at a constant speed? +// Idk how the acceleration math goes. +public abstract class AbstractEnergyBoltEntity extends AbstractHurtingProjectile implements IHasNature, GeoAnimatable { + private int AtkDamage; + private SpectrobeProperties.Nature Nature; + + public AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + protected int lifetime = 0; + protected int maxLifetime = 50; // Default (Plz set in constructor of child classes) + + protected AbstractEnergyBoltEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + } + + // = = = MORE SPECTROBY PROJECTILE = = = + @Override protected boolean shouldBurn() { return false; } + + // TODO: Find / Make a more appropriate particle + @Override @NotNull protected ParticleOptions getTrailParticle() { return ParticleTypes.GLOW; } + + // = = = GET / SET = = = + // AtkDamage + public int getAtkDamage() { return this.AtkDamage; } + public void setAtkDamage(int pValue) { this.AtkDamage = pValue; } + + // Nature + @Override public SpectrobeProperties.Nature getNature() { return Nature; } // Mandatory + public void setNature(SpectrobeProperties.Nature pValue) { this.Nature = pValue; } + + // lifetime + public int getLifetime() { return this.maxLifetime; } +// public void setLifetime(int pValue) { this.maxLifetime = pValue; } // Probably shouldn't allow setting the timer as it ticks + + public int getMaxLifetime() { return this.maxLifetime; } + public void setMaxLifetime(int pValue) { this.maxLifetime = pValue; } + + // = = = TICKS = = = + @Override + public void tick() { + super.tick(); + tickDespawn(); + } + + /** Manages the projectile's lifetime. */ + protected void tickDespawn() { + ++this.lifetime; + if (this.lifetime >= this.maxLifetime) { + this.remove(RemovalReason.DISCARDED); + this.onDeath(); + } + } + + // = = = OTHER, MANDATORY METHODS = = = + + @Override public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { } + @Override public AnimatableInstanceCache getAnimatableInstanceCache() { + return cache; + } + @Override public double getTick(Object object) { return 0; } + + // = = = SYNCED DATA = = = + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { } + + // = = = EVENTS = = = + @Override + protected void onHit(HitResult pResult) { + super.onHit(pResult); // <-- Calls both onHitEntity & onHitBlock + + // So everything down here happens after the projectile hits ANYTHING + this.remove(RemovalReason.DISCARDED); + this.onDeath(); + } + + @Override + protected void onHitEntity(EntityHitResult pResult) { + super.onHitEntity(pResult); + pResult.getEntity().hurt( + this.level().damageSources().thrown(this, this.getOwner()), + AtkDamage + ); + } + + /** Things that happen any time this entity dies. */ + protected void onDeath() { + // Remove + // TODO: Don't know if this should go here. Figure out what the individual RemovalReasons are used for. + // this.remove(RemovalReason.DISCARDED); + + // Spawn death particles + // TODO: Figure out particles + + // Play death noise + this.playSound(SoundEvents.FIRE_EXTINGUISH); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/BasicEnergyBoltEntity.java b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/BasicEnergyBoltEntity.java new file mode 100644 index 00000000..8a073d13 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/BasicEnergyBoltEntity.java @@ -0,0 +1,13 @@ +package com.spectrobes.spectrobesmod.common.entities.attacks; + +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; + +/** An entity for the basic blaster energy bolt. */ +public class BasicEnergyBoltEntity extends AbstractEnergyBoltEntity { + + public BasicEnergyBoltEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); +// this.maxLifetime = 50; // <-- Define how long it takes this projectile to expire like this + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/HomingEnergyBoltEntity.java b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/HomingEnergyBoltEntity.java new file mode 100644 index 00000000..5ce2739a --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/entities/attacks/HomingEnergyBoltEntity.java @@ -0,0 +1,72 @@ +package com.spectrobes.spectrobesmod.common.entities.attacks; + +import com.spectrobes.spectrobesmod.common.entities.krawl.EntityKrawl; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; + +import java.util.Comparator; +import java.util.List; + +public class HomingEnergyBoltEntity extends AbstractEnergyBoltEntity { + + private static final double HOMING_RANGE = 8.0; + private static final double HOMING_STRENGTH = 0.15; + + public HomingEnergyBoltEntity(EntityType type, Level level) { + super(type, level); +// this.maxLifetime = 50; + } + + @Override + public void tick() { + // Safety - Only tick on server + if(!this.level().isClientSide) { + + // Homing (directional change) + Entity target = findTarget(); + if (target != null) { + + // - Movement - + // Direction + Vec3 direction = target.position() + .add(0, target.getBbHeight() * 0.5, 0) + .subtract(this.position()) + .normalize(); + + // Velocity + Vec3 velocity = this.getDeltaMovement(); + Vec3 newVelocity = velocity.add(direction.scale(HOMING_STRENGTH)); + + // Prevent the projectile from accelerating forever + double speed = velocity.length(); + if (newVelocity.length() > speed) newVelocity = newVelocity.normalize().scale(speed); + this.setDeltaMovement(newVelocity); + } + } + + // Do normal tick stuff + super.tick(); + } + + /** Gets a list of Krawl entities within homing range, and chooses the closest. */ + private Entity findTarget() { + // Collect all Krawl entities within HOMING_RANGE + List targets = this.level().getEntities( + this, + this.getBoundingBox().inflate(HOMING_RANGE), // Adds 2x HOMING_RANGE to x, y, and z dimensions + entity -> +// entity instanceof EntityBossKrawl // <-- Some check to make boss Krawl tracking a priority over other Krawl may be good? + entity instanceof EntityKrawl // Only target Krawl entities + && entity.isAlive() + && entity != this.getOwner() + && entity.canBeHitByProjectile() + ); + + // Get nearest entity on list + return targets.stream() + .min(Comparator.comparingDouble(this::distanceTo)) + .orElse(null); + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/AbstractSpectrobesRangedWeapon.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/AbstractSpectrobesRangedWeapon.java new file mode 100644 index 00000000..eed904d3 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/AbstractSpectrobesRangedWeapon.java @@ -0,0 +1,123 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.entity.attacks.AttackEntities; +import com.spectrobes.spectrobesmod.common.entities.attacks.AbstractEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.BasicEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.*; +import net.minecraft.world.level.Level; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.SingletonGeoAnimatable; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.List; +import java.util.Random; + +public abstract class AbstractSpectrobesRangedWeapon extends Item implements GeoItem, ISpectrobeWeapon { + + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + + // Controls how much the projectile's trajectory will depend on player movement. + // 0 = Will just fly in direction player is moving (if they are moving) + // 1 = Will fly in direction the player is facing + // This is a gradient, but should be kept closer to 1 cause it's hard to hit stuff beyond 5 blocks otherwise. + protected float projectileSpeed = 1F; + + public AbstractSpectrobesRangedWeapon(Properties pProperties) { + super(pProperties); + SingletonGeoAnimatable.registerSyncedAnimatable(this); + } + + @Override + public void appendHoverText(ItemStack pStack, Item.TooltipContext context, List pTooltip, TooltipFlag pFlag) { + super.appendHoverText(pStack, context, pTooltip, pFlag); + pTooltip.add(Component.literal("Weapon Tier: " + GetWeaponStats().Tier)); + pTooltip.add(Component.literal("Attack Stat: " + GetWeaponStats().AtkDamage)); + pTooltip.add(Component.literal("Weapon Speed: " + GetWeaponStats().Speed)); + } + + /** Starts the "using" process. */ + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + player.startUsingItem(hand); + return InteractionResultHolder.consume(stack); + } + + /** Determines how long before use is at max value. */ + @Override public int getUseDuration(ItemStack stack, LivingEntity entity) { return 72000; } + + /** Fires the blaster bolt. */ + @Override + public void releaseUsing(ItemStack pStack, Level pLevel, LivingEntity pEntityLiving, int pTimeLeft) { + if (!(pEntityLiving instanceof Player player)) return; + + // The power stuff could be cool, but like... Blasters don't have charge mechanics in Spectrobes. + // Just set speed and damage scaling off rallen's stats. + // Completely fine with re-enabling this if ppl want it tho. +// int charge = this.getUseDuration(pStack, player) - pTimeLeft; +// charge = EventHooks.onArrowLoose(pStack, pLevel, player, charge, true); +// if (charge < 0) return; +// +// float power = getPowerForTime(charge); // BowItem +// if ((double)power < 0.1D) return; // Speed determined by charge power +// if (projectileSpeed < 0.1D) return; // Set speed + fireProjectile(pLevel, player); + + player.awardStat(Stats.ITEM_USED.get(this)); + } + + /** Override this to replace the projectile that this weapon shoots. */ + protected AbstractEnergyBoltEntity createProjectile(Level pLevel) { + return new BasicEnergyBoltEntity(AttackEntities.ENTITY_PROJECTILE_BASIC.get(), pLevel); + } + + /** Firing behavior + setting projectile stats. */ + protected void fireProjectile(Level pLevel, Player player) { + // Safety - Return if not on server + if (pLevel.isClientSide) return; + + // Create Projectile + AbstractEnergyBoltEntity projectile = createProjectile(pLevel); + + // Set Projectile Stats + projectile.setOwner(player); + projectile.setPos(player.getX(), player.getY() + 1.5D, player.getZ()); + projectile.setAtkDamage(GetWeaponStats().AtkDamage); + projectile.setNature(GetWeaponStats().Nature); + + // Spawn Projectile +// projectile.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, projectileSpeed, 1.0F); + projectile.shootFromRotation(player, player.xRotO, player.yRotO, 0.0F, projectileSpeed, 1.0F); + pLevel.addFreshEntity(projectile); + + // Firing SFX + pLevel.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.ARROW_SHOOT, SoundSource.PLAYERS, 1.0F, 1.0F / (new Random().nextFloat() * 0.4F + 1.2F) + projectileSpeed * 0.5F); + } + + // = = = OTHER, MANDATORY METHODS = = = + @Override public abstract void registerControllers(AnimatableManager.ControllerRegistrar controllers); + @Override public AnimatableInstanceCache getAnimatableInstanceCache() { return this.cache; } + @Override public UseAnim getUseAnimation(ItemStack pStack) { return UseAnim.BOW; } + + public abstract String getControllerName(); + public abstract WeaponStats GetWeaponStats(); + public SpectrobeProperties.Nature getNature() { return GetWeaponStats().Nature; } +// @Override public Predicate getAllSupportedProjectiles() { return stack -> false; } + public PlayState predicate(AnimationState animationState) { + return animationState.isMoving() ? PlayState.CONTINUE : PlayState.STOP; + } +} diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicBlasterItem.java index 7deccdab..eb8dc5d7 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicBlasterItem.java +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicBlasterItem.java @@ -1,7 +1,6 @@ package com.spectrobes.spectrobesmod.common.items.weapons; import com.spectrobes.spectrobesmod.client.items.weapons.renderer.BasicBlasterItemRenderer; -import com.spectrobes.spectrobesmod.client.items.weapons.renderer.BasicGloveItemRenderer; import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; import com.spectrobes.spectrobesmod.util.WeaponStats; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; @@ -40,11 +39,11 @@ public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { @Override public WeaponStats GetWeaponStats() { - return new WeaponStats(20, 1, 1, true, false, SpectrobeProperties.Nature.OTHER); + return new WeaponStats(20, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); } @Override public String getControllerName() { return "basic_blaster"; } -} +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicGloveItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicGloveItem.java index cf103bcd..97c7ef3d 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicGloveItem.java +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicGloveItem.java @@ -63,7 +63,7 @@ public void registerControllers(AnimatableManager.ControllerRegistrar data) { @Override public WeaponStats GetWeaponStats() { - return new WeaponStats(5, 1, 1, false, true, SpectrobeProperties.Nature.OTHER); + return new WeaponStats(5, 1, 1, WeaponStats.WeaponType.GLOVE, SpectrobeProperties.Nature.OTHER); } @Override diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicSwordItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicSwordItem.java index 34949e4a..6e3a2fc7 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicSwordItem.java +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/BasicSwordItem.java @@ -39,7 +39,7 @@ public void registerControllers(AnimatableManager.ControllerRegistrar data) { @Override public WeaponStats GetWeaponStats() { - return new WeaponStats(15, 1, 1, false, false, SpectrobeProperties.Nature.OTHER); + return new WeaponStats(15, 1, 1, WeaponStats.WeaponType.SWORD, SpectrobeProperties.Nature.OTHER); } @Override diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterCItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterCItem.java new file mode 100644 index 00000000..af84f186 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterCItem.java @@ -0,0 +1,45 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterCItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponBasicBlasterCItem extends AbstractSpectrobesRangedWeapon { + public WeaponBasicBlasterCItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + // Like the basic blaster in every way, but is CORONA property. + return new WeaponStats(5, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.CORONA); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_basic_c_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponBasicBlasterCItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + System.out.println("Getting renderer"); + + if (this.renderer == null) { + this.renderer = new WeaponBasicBlasterCItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterItem.java new file mode 100644 index 00000000..46c87afe --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponBasicBlasterItem.java @@ -0,0 +1,47 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.SpectrobesInfo; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponBasicBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponBasicBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + // Originally set to 20, but in S1 it's 5 + // Change back if the stat scale is different for this mod. + return new WeaponStats(5, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_basic_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponBasicBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + System.out.println("Getting renderer"); + + if (this.renderer == null) { + this.renderer = new WeaponBasicBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponDoubleBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponDoubleBlasterItem.java new file mode 100644 index 00000000..85e632a8 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponDoubleBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponDoubleBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponDoubleBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponDoubleBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(5, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_double_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponDoubleBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponDoubleBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHomingBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHomingBlasterItem.java new file mode 100644 index 00000000..b3a3b872 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHomingBlasterItem.java @@ -0,0 +1,51 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.entity.attacks.AttackEntities; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponHomingBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.entities.attacks.AbstractEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.HomingEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.world.level.Level; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponHomingBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponHomingBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(10, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + @Override + protected AbstractEnergyBoltEntity createProjectile(Level pLevel) { + return new HomingEnergyBoltEntity(AttackEntities.ENTITY_PROJECTILE_HOMING.get(), pLevel); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_homing_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponHomingBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponHomingBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHyperBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHyperBlasterItem.java new file mode 100644 index 00000000..88e8b91e --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponHyperBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponHyperBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponHyperBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponHyperBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(20, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_hyper_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponHyperBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponHyperBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponPhotonBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponPhotonBlasterItem.java new file mode 100644 index 00000000..5eba3e34 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponPhotonBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponPhotonBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponPhotonBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponPhotonBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(15, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_photon_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponPhotonBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponPhotonBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRayBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRayBlasterItem.java new file mode 100644 index 00000000..702360e0 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRayBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponRayBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponRayBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponRayBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(10, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_ray_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponRayBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponRayBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRuptureBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRuptureBlasterItem.java new file mode 100644 index 00000000..d6b00e34 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponRuptureBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponRuptureBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponRuptureBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponRuptureBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(30, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_rupture_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponRuptureBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponRuptureBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponShatterBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponShatterBlasterItem.java new file mode 100644 index 00000000..af818e47 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponShatterBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponShatterBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponShatterBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponShatterBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(20, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_shatter_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponShatterBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponShatterBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTrackingBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTrackingBlasterItem.java new file mode 100644 index 00000000..71d961a7 --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTrackingBlasterItem.java @@ -0,0 +1,52 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.entity.attacks.AttackEntities; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponTrackingBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.entities.attacks.AbstractEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.entities.attacks.HomingEnergyBoltEntity; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.world.level.Level; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponTrackingBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponTrackingBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(20, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + @Override + protected AbstractEnergyBoltEntity createProjectile(Level pLevel) { + return new HomingEnergyBoltEntity(AttackEntities.ENTITY_PROJECTILE_HOMING.get(), pLevel); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_tracking_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponTrackingBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponTrackingBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTripleBlasterItem.java b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTripleBlasterItem.java new file mode 100644 index 00000000..0b45568a --- /dev/null +++ b/src/main/java/com/spectrobes/spectrobesmod/common/items/weapons/WeaponTripleBlasterItem.java @@ -0,0 +1,43 @@ +package com.spectrobes.spectrobesmod.common.items.weapons; + +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponBasicBlasterItemRenderer; +import com.spectrobes.spectrobesmod.client.items.weapons.renderer.WeaponTripleBlasterItemRenderer; +import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; +import com.spectrobes.spectrobesmod.util.WeaponStats; +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; + +import java.util.function.Consumer; + +public class WeaponTripleBlasterItem extends AbstractSpectrobesRangedWeapon { + public WeaponTripleBlasterItem(Properties pProperties) { super(pProperties); } + + // = = = STATS = = = + @Override + public WeaponStats GetWeaponStats() { + return new WeaponStats(10, 1, 1, WeaponStats.WeaponType.BLASTER, SpectrobeProperties.Nature.OTHER); + } + + // = = = VISUAL = = = + @Override public String getControllerName() { return "weapon_triple_blaster"; } + @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController(this, getControllerName(), 1, super::predicate)); + } + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private WeaponTripleBlasterItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new WeaponTripleBlasterItemRenderer(); + } + + return this.renderer; + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/spectrobes/spectrobesmod/common/registry/items/SpectrobesToolsRegistry.java b/src/main/java/com/spectrobes/spectrobesmod/common/registry/items/SpectrobesToolsRegistry.java index 374a30c3..ef22c7c9 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/common/registry/items/SpectrobesToolsRegistry.java +++ b/src/main/java/com/spectrobes/spectrobesmod/common/registry/items/SpectrobesToolsRegistry.java @@ -1,19 +1,12 @@ package com.spectrobes.spectrobesmod.common.registry.items; import com.spectrobes.spectrobesmod.SpectrobesInfo; -import com.spectrobes.spectrobesmod.client.items.healing.renderer.AntidoteItemRenderer; -import com.spectrobes.spectrobesmod.client.items.healing.renderer.SerumItemRenderer; -import com.spectrobes.spectrobesmod.client.items.weapons.renderer.BasicBlasterItemRenderer; import com.spectrobes.spectrobesmod.common.items.tools.PrizmodItem; import com.spectrobes.spectrobesmod.common.items.tools.healing.SpectrobeAntidoteHealingItem; import com.spectrobes.spectrobesmod.common.items.tools.healing.SpectrobeSerumHealingItem; import com.spectrobes.spectrobesmod.common.items.weapons.*; -import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.core.registries.Registries; import net.minecraft.world.item.Item; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions; -import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent; import net.neoforged.neoforge.registries.DeferredRegister; import java.util.function.Supplier; @@ -46,4 +39,41 @@ public class SpectrobesToolsRegistry { ITEMS.register("basic_antidote", () -> new SpectrobeAntidoteHealingItem(50, 2000, 1, new Item.Properties())); + + // = = = TESTING = = = + public static final Supplier WEAPON_BASIC_BLASTER_ITEM = + ITEMS.register("weapon_basic_blaster_item", + () -> new WeaponBasicBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_DOUBLE_BLASTER_ITEM = + ITEMS.register("weapon_double_blaster_item", + () -> new WeaponDoubleBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_RAY_BLASTER_ITEM = + ITEMS.register("weapon_ray_blaster_item", + () -> new WeaponRayBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_TRIPLE_BLASTER_ITEM = + ITEMS.register("weapon_triple_blaster_item", + () -> new WeaponTripleBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_HOMING_BLASTER_ITEM = + ITEMS.register("weapon_homing_blaster_item", + () -> new WeaponHomingBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_PHOTON_BLASTER_ITEM = + ITEMS.register("weapon_photon_blaster_item", + () -> new WeaponPhotonBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_SHATTER_BLASTER_ITEM = + ITEMS.register("weapon_shatter_blaster_item", + () -> new WeaponShatterBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_TRACKING_BLASTER_ITEM = + ITEMS.register("weapon_tracking_blaster_item", + () -> new WeaponTrackingBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_HYPER_BLASTER_ITEM = + ITEMS.register("weapon_hyper_blaster_item", + () -> new WeaponHyperBlasterItem(new Item.Properties())); + public static final Supplier WEAPON_RUPTURE_BLASTER_ITEM = + ITEMS.register("weapon_rupture_blaster_item", + () -> new WeaponRuptureBlasterItem(new Item.Properties())); + + // = = = NON-CANNON (...THO MAYYY CONTAIN A COUPLE CANNONS) = = = + public static final Supplier WEAPON_BASIC_BLASTER_C_ITEM = + ITEMS.register("weapon_basic_blaster_c_item", + () -> new WeaponBasicBlasterCItem(new Item.Properties())); } diff --git a/src/main/java/com/spectrobes/spectrobesmod/util/WeaponStats.java b/src/main/java/com/spectrobes/spectrobesmod/util/WeaponStats.java index b50320f9..47178280 100644 --- a/src/main/java/com/spectrobes/spectrobesmod/util/WeaponStats.java +++ b/src/main/java/com/spectrobes/spectrobesmod/util/WeaponStats.java @@ -3,19 +3,24 @@ import com.spectrobes.spectrobesmod.common.spectrobes.SpectrobeProperties; public class WeaponStats { + public enum WeaponType { + OTHER, + SWORD, + GLOVE, + BLASTER + } + public int AtkDamage; public int Speed; public int Tier; - public boolean IsBlaster; - public boolean IsGlove; + public WeaponType Type; public SpectrobeProperties.Nature Nature; - public WeaponStats(int atkDamage, int speed, int tier, boolean isBlaster, boolean isGlove, SpectrobeProperties.Nature nature) { + public WeaponStats(int atkDamage, int speed, int tier, WeaponType type, SpectrobeProperties.Nature nature) { this.AtkDamage = atkDamage; this.Speed = speed; this.Tier = tier; - this.IsBlaster = isBlaster; - this.IsGlove = isGlove; + this.Type = type; this.Nature = nature; } } diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster_c.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster_c.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_basic_blaster_c.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_double_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_double_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_double_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_homing_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_homing_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_homing_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_hyper_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_hyper_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_hyper_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_photon_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_photon_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_photon_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_ray_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_ray_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_ray_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_rupture_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_rupture_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_rupture_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_shatter_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_shatter_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_shatter_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_tracking_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_tracking_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_tracking_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_triple_blaster.geo.json b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_triple_blaster.geo.json new file mode 100644 index 00000000..dea8a01c --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/geo/weapons/weapon_triple_blaster.geo.json @@ -0,0 +1,423 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "blaster", + "pivot": [0, 6, 0], + "rotation": [-90, 0, 0] + }, + { + "name": "Blast", + "parent": "blaster", + "pivot": [0, 6.25, -1], + "cubes": [ + { + "origin": [-0.75, 6.5, -8], + "size": [0.5, 0.5, 2], + "uv": { + "north": {"uv": [24, 18], "uv_size": [0.5, 0.5]}, + "east": {"uv": [21, 16], "uv_size": [2, 0.5]}, + "south": {"uv": [19, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [17, 21], "uv_size": [2, 0.5]}, + "up": {"uv": [21, 18], "uv_size": [0.5, 2]}, + "down": {"uv": [21, 22], "uv_size": [0.5, -2]} + } + } + ] + }, + { + "name": "Sight", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.25, 6.5, -6.25], + "size": [0.75, 0.75, 2.25], + "uv": { + "north": {"uv": [21, 23], "uv_size": [0.75, 0.75]}, + "east": {"uv": [19, 7], "uv_size": [2.25, 0.75]}, + "south": {"uv": [0, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [13, 19], "uv_size": [2.25, 0.75]}, + "up": {"uv": [4, 13], "uv_size": [0.75, 2.25]}, + "down": {"uv": [9, 21.25], "uv_size": [0.75, -2.25]} + } + } + ] + }, + { + "name": "Prop", + "parent": "blaster", + "pivot": [1.125, 7.125, 4.875], + "cubes": [ + { + "origin": [0.55, 6.7, 5.85], + "size": [0.85, 0.95, 0.2], + "pivot": [1.025, 7.175, 4.525], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [7, 22], "uv_size": [0.875, 1]}, + "east": {"uv": [24, 21], "uv_size": [0.25, 1]}, + "south": {"uv": [22, 10], "uv_size": [0.875, 1]}, + "west": {"uv": [22, 24], "uv_size": [0.25, 1]}, + "up": {"uv": [23, 24], "uv_size": [0.875, 0.25]}, + "down": {"uv": [24, 24.25], "uv_size": [0.875, -0.25]} + } + }, + { + "origin": [0.75, 6.75, 3.75], + "size": [0.45, 0.75, 2.25], + "pivot": [1.125, 7.125, 4.875], + "rotation": [-9.75, 0, 0], + "uv": { + "north": {"uv": [16, 24], "uv_size": [0.5, 0.75]}, + "east": {"uv": [16, 19], "uv_size": [2.25, 0.75]}, + "south": {"uv": [24, 16], "uv_size": [0.5, 0.75]}, + "west": {"uv": [19, 17], "uv_size": [2.25, 0.75]}, + "up": {"uv": [10, 19], "uv_size": [0.5, 2.25]}, + "down": {"uv": [8, 22.25], "uv_size": [0.5, -2.25]} + } + } + ] + }, + { + "name": "CannonBody", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-2.75, 6, -3.9], + "size": [4.5, 1.5, 4.65], + "uv": { + "north": {"uv": [13, 13], "uv_size": [4.5, 1.5]}, + "east": {"uv": [13, 3], "uv_size": [4.625, 1.5]}, + "south": {"uv": [13, 15], "uv_size": [4.5, 1.5]}, + "west": {"uv": [13, 11], "uv_size": [4.625, 1.5]}, + "up": {"uv": [0, 8], "uv_size": [4.5, 4.625]}, + "down": {"uv": [8, 4.625], "uv_size": [4.5, -4.625]} + } + }, + { + "origin": [-2.25, 5.5, -4], + "size": [3.5, 2.5, 8], + "uv": { + "north": {"uv": [13, 0], "uv_size": [3.5, 2.5]}, + "east": {"uv": [5, 8], "uv_size": [8, 2.5]}, + "south": {"uv": [13, 8], "uv_size": [3.5, 2.5]}, + "west": {"uv": [8, 5], "uv_size": [8, 2.5]}, + "up": {"uv": [0, 0], "uv_size": [3.5, 8]}, + "down": {"uv": [4, 8], "uv_size": [3.5, -8]} + } + }, + { + "origin": [-1.5, 5, 2.5], + "size": [2, 0.5, 1.25], + "uv": { + "north": {"uv": [22, 3], "uv_size": [2, 0.5]}, + "east": {"uv": [23, 22], "uv_size": [1.25, 0.5]}, + "south": {"uv": [4, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [23, 23], "uv_size": [1.25, 0.5]}, + "up": {"uv": [5, 17], "uv_size": [2, 1.25]}, + "down": {"uv": [7, 18.25], "uv_size": [2, -1.25]} + } + }, + { + "origin": [-2, 4.5, -3.25], + "size": [3, 1, 5.75], + "uv": { + "north": {"uv": [16, 7], "uv_size": [3, 1]}, + "east": {"uv": [16, 5], "uv_size": [5.75, 1]}, + "south": {"uv": [17, 2], "uv_size": [3, 1]}, + "west": {"uv": [16, 6], "uv_size": [5.75, 1]}, + "up": {"uv": [5, 11], "uv_size": [3, 5.75]}, + "down": {"uv": [8, 16.75], "uv_size": [3, -5.75]} + } + } + ] + }, + { + "name": "CannonBarrel", + "parent": "blaster", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-1.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [3, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [9, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [4, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [13, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [23, 4], "uv_size": [0.5, 1.5]}, + "down": {"uv": [5, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 7, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 19], "uv_size": [0.5, 0.5]}, + "east": {"uv": [22, 20], "uv_size": [1.5, 0.5]}, + "south": {"uv": [20, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [22, 21], "uv_size": [1.5, 0.5]}, + "up": {"uv": [22, 22], "uv_size": [0.5, 1.5]}, + "down": {"uv": [2, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.25, 6, -5], + "size": [0.5, 1.5, 1.5], + "uv": { + "north": {"uv": [6, 23], "uv_size": [0.5, 1.5]}, + "east": {"uv": [15, 17], "uv_size": [1.5, 1.5]}, + "south": {"uv": [7, 23], "uv_size": [0.5, 1.5]}, + "west": {"uv": [17, 17], "uv_size": [1.5, 1.5]}, + "up": {"uv": [8, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [9, 24.5], "uv_size": [0.5, -1.5]} + } + }, + { + "origin": [-0.75, 6, -5], + "size": [0.5, 0.5, 1.5], + "uv": { + "north": {"uv": [24, 20], "uv_size": [0.5, 0.5]}, + "east": {"uv": [23, 6], "uv_size": [1.5, 0.5]}, + "south": {"uv": [21, 24], "uv_size": [0.5, 0.5]}, + "west": {"uv": [23, 10], "uv_size": [1.5, 0.5]}, + "up": {"uv": [10, 23], "uv_size": [0.5, 1.5]}, + "down": {"uv": [23, 12.5], "uv_size": [0.5, -1.5]} + } + } + ] + }, + { + "name": "CannonPlate", + "parent": "blaster", + "pivot": [0, 6.25, 0], + "cubes": [ + { + "origin": [-1.75, 6.75, 4], + "size": [2.5, 0.75, 1.25], + "uv": { + "north": {"uv": [18, 16], "uv_size": [2.5, 0.75]}, + "east": {"uv": [22, 7], "uv_size": [1.25, 0.75]}, + "south": {"uv": [6, 19], "uv_size": [2.5, 0.75]}, + "west": {"uv": [9, 22], "uv_size": [1.25, 0.75]}, + "up": {"uv": [17, 0], "uv_size": [2.5, 1.25]}, + "down": {"uv": [2, 18.25], "uv_size": [2.5, -1.25]} + } + }, + { + "origin": [-1.5, 7.5, 4], + "size": [2, 0.5, 2], + "uv": { + "north": {"uv": [22, 0], "uv_size": [2, 0.5]}, + "east": {"uv": [22, 1], "uv_size": [2, 0.5]}, + "south": {"uv": [2, 22], "uv_size": [2, 0.5]}, + "west": {"uv": [22, 2], "uv_size": [2, 0.5]}, + "up": {"uv": [2, 13], "uv_size": [2, 2]}, + "down": {"uv": [2, 17], "uv_size": [2, -2]} + } + }, + { + "origin": [-1.25, 8, -4], + "size": [1.5, 0.25, 10.5], + "uv": { + "north": {"uv": [17, 24], "uv_size": [1.5, 0.25]}, + "east": {"uv": [17, 8], "uv_size": [10.5, 0.25]}, + "south": {"uv": [24, 17], "uv_size": [1.5, 0.25]}, + "west": {"uv": [17, 9], "uv_size": [10.5, 0.25]}, + "up": {"uv": [11, 11], "uv_size": [1.5, 10.5]}, + "down": {"uv": [0, 23.5], "uv_size": [1.5, -10.5]} + } + } + ] + }, + { + "name": "FuelTubes", + "parent": "blaster", + "pivot": [0.625, 8.625, 0.625], + "cubes": [ + { + "origin": [0.25, 8.25, -2.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 0], "uv_size": [0.75, 0.75]}, + "east": {"uv": [1, 24], "uv_size": [0.75, 0.75]}, + "south": {"uv": [24, 1], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 2], "uv_size": [0.75, 0.75]}, + "up": {"uv": [24, 3], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 4.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, -0.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [24, 5], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 7], "uv_size": [0.75, 0.75]}, + "south": {"uv": [11, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 11], "uv_size": [0.75, 0.75]}, + "up": {"uv": [12, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 12.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.25, 8.25, 1.5], + "size": [0.75, 0.75, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [13, 24], "uv_size": [0.75, 0.75]}, + "east": {"uv": [24, 13], "uv_size": [0.75, 0.75]}, + "south": {"uv": [14, 24], "uv_size": [0.75, 0.75]}, + "west": {"uv": [24, 14], "uv_size": [0.75, 0.75]}, + "up": {"uv": [15, 24], "uv_size": [0.75, 0.75]}, + "down": {"uv": [24, 15.75], "uv_size": [0.75, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 0], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [4, 16], "uv_size": [1, 1]}, + "east": {"uv": [12, 23], "uv_size": [0.75, 1]}, + "south": {"uv": [17, 10], "uv_size": [1, 1]}, + "west": {"uv": [13, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 14], "uv_size": [1, 0.75]}, + "down": {"uv": [15, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, -2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [22, 4], "uv_size": [1, 1]}, + "east": {"uv": [23, 15], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 5], "uv_size": [1, 1]}, + "west": {"uv": [16, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 16], "uv_size": [1, 0.75]}, + "down": {"uv": [17, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.15, 8.15, 2], + "size": [0.95, 0.95, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [6, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 17], "uv_size": [0.75, 1]}, + "south": {"uv": [22, 6], "uv_size": [1, 1]}, + "west": {"uv": [18, 23], "uv_size": [0.75, 1]}, + "up": {"uv": [23, 18], "uv_size": [1, 0.75]}, + "down": {"uv": [20, 23.75], "uv_size": [1, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 2.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [19, 18], "uv_size": [1.125, 1.125]}, + "east": {"uv": [11, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 0], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 11], "uv_size": [0.75, 1.125]}, + "up": {"uv": [12, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [22, 13.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, -1.4], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 2], "uv_size": [1.125, 1.125]}, + "east": {"uv": [14, 22], "uv_size": [0.75, 1.125]}, + "south": {"uv": [6, 20], "uv_size": [1.125, 1.125]}, + "west": {"uv": [22, 14], "uv_size": [0.75, 1.125]}, + "up": {"uv": [15, 22], "uv_size": [1.125, 0.75]}, + "down": {"uv": [17, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [0.05, 8.05, 0.6], + "size": [1.15, 1.15, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [20, 10], "uv_size": [1.125, 1.125]}, + "east": {"uv": [22, 17], "uv_size": [0.75, 1.125]}, + "south": {"uv": [20, 12], "uv_size": [1.125, 1.125]}, + "west": {"uv": [19, 22], "uv_size": [0.75, 1.125]}, + "up": {"uv": [22, 19], "uv_size": [1.125, 0.75]}, + "down": {"uv": [20, 22.75], "uv_size": [1.125, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 3.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 2.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 3], "uv_size": [1.375, 1.375]}, + "east": {"uv": [13, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 10], "uv_size": [1.375, 1.375]}, + "west": {"uv": [14, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 4], "uv_size": [1.375, 0.75]}, + "down": {"uv": [20, 14.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, -0.9], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, -1.375], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [18, 12], "uv_size": [1.375, 1.375]}, + "east": {"uv": [15, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [18, 14], "uv_size": [1.375, 1.375]}, + "west": {"uv": [16, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [20, 15], "uv_size": [1.375, 0.75]}, + "down": {"uv": [17, 20.75], "uv_size": [1.375, -0.75]} + } + }, + { + "origin": [-0.05, 7.95, 1.1], + "size": [1.35, 1.35, 0.75], + "pivot": [0.625, 8.625, 0.625], + "rotation": [67.5, 0, 0], + "uv": { + "north": {"uv": [2, 19], "uv_size": [1.375, 1.375]}, + "east": {"uv": [19, 20], "uv_size": [0.75, 1.375]}, + "south": {"uv": [4, 19], "uv_size": [1.375, 1.375]}, + "west": {"uv": [20, 20], "uv_size": [0.75, 1.375]}, + "up": {"uv": [2, 21], "uv_size": [1.375, 0.75]}, + "down": {"uv": [4, 21.75], "uv_size": [1.375, -0.75]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/lang/en_us.json b/src/main/resources/assets/spectrobesmod/lang/en_us.json index abb90390..32c9095c 100644 --- a/src/main/resources/assets/spectrobesmod/lang/en_us.json +++ b/src/main/resources/assets/spectrobesmod/lang/en_us.json @@ -42,6 +42,7 @@ "item.spectrobesmod.basic_sword_item": "Basic Sword", "item.spectrobesmod.basic_glove_item": "Basic Glove", "item.spectrobesmod.basic_blaster_item": "Basic Blaster", + "item.spectrobesmod.weapon_basic_blaster_item": "Testing New Basic Blaster", "item.spectrobesmod.basic_npp_helmet": "Basic NPP Helmet", "item.spectrobesmod.basic_npp_chestplate": "Basic NPP Chestplate", "item.spectrobesmod.basic_npp_leggings": "Basic NPP Leggings", diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_c_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_c_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_c_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_basic_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_double_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_double_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_double_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_homing_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_homing_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_homing_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_hyper_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_hyper_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_hyper_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_photon_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_photon_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_photon_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_ray_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_ray_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_ray_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_rupture_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_rupture_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_rupture_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_shatter_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_shatter_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_shatter_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_tracking_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_tracking_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_tracking_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/models/item/weapon_triple_blaster_item.json b/src/main/resources/assets/spectrobesmod/models/item/weapon_triple_blaster_item.json new file mode 100644 index 00000000..2fdcf0f2 --- /dev/null +++ b/src/main/resources/assets/spectrobesmod/models/item/weapon_triple_blaster_item.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_righthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "firstperson_lefthand": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + -1.5, + 5 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "gui": { + "rotation": [ + 0, + 89, + 0 + ], + "translation": [ + 0, + -5.75, + 0 + ] + }, + "head": { + "translation": [ + 0, + 6.5, + 0 + ] + }, + "fixed": { + "translation": [ + 0, + -5.75, + -2.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_basic_c.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_basic_c.png new file mode 100644 index 00000000..bfde9a83 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_basic_c.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_double.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_double.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_double.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_homing.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_homing.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_homing.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_hyper.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_hyper.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_hyper.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_photon.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_photon.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_photon.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_ray.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_ray.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_ray.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_rupture.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_rupture.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_rupture.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_shatter.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_shatter.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_shatter.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_tracking.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_tracking.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_tracking.png differ diff --git a/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_triple.png b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_triple.png new file mode 100644 index 00000000..ce959cf3 Binary files /dev/null and b/src/main/resources/assets/spectrobesmod/textures/models/item/blaster_triple.png differ