diff --git a/aris_random_additions.mcreator b/aris_random_additions.mcreator
index 0b0401f..2a97a4b 100644
--- a/aris_random_additions.mcreator
+++ b/aris_random_additions.mcreator
@@ -3899,6 +3899,67 @@
]
},
"path": "~/Other"
+ },
+ {
+ "name": "Ari",
+ "type": "livingentity",
+ "compiles": true,
+ "locked_code": false,
+ "registry_name": "ari",
+ "metadata": {
+ "files": [
+ "src/main/resources/assets/aris_random_additions/models/item/ari_spawn_egg.json",
+ "src/main/java/net/mcreator/arisrandomadditions/client/renderer/AriRenderer.java",
+ "src/main/java/net/mcreator/arisrandomadditions/entity/AriEntity.java",
+ "src/main/resources/data/aris_random_additions/forge/biome_modifier/ari_biome_modifier.json"
+ ]
+ },
+ "path": "~/Other"
+ },
+ {
+ "name": "AriSpawnEggRecipe",
+ "type": "recipe",
+ "compiles": true,
+ "locked_code": false,
+ "registry_name": "ari_spawn_egg_recipe",
+ "metadata": {
+ "files": [
+ "src/main/resources/data/aris_random_additions/recipes/ari_spawn_egg_recipe.json"
+ ]
+ },
+ "path": "~/SpawnEggs"
+ },
+ {
+ "name": "FoxSpawnEgg",
+ "type": "recipe",
+ "compiles": true,
+ "locked_code": false,
+ "registry_name": "fox_spawn_egg",
+ "metadata": {
+ "files": [
+ "src/main/resources/data/aris_random_additions/recipes/fox_spawn_egg.json"
+ ]
+ },
+ "path": "~/SpawnEggs"
+ },
+ {
+ "name": "AriOnInitialEntitySpawn",
+ "type": "procedure",
+ "compiles": true,
+ "locked_code": false,
+ "registry_name": "ari_on_initial_entity_spawn",
+ "metadata": {
+ "files": [
+ "src/main/java/net/mcreator/arisrandomadditions/procedures/AriOnInitialEntitySpawnProcedure.java"
+ ],
+ "dependencies": [
+ {
+ "name": "entity",
+ "type": "entity"
+ }
+ ]
+ },
+ "path": "~/Other"
}
],
"variable_elements": [],
@@ -4136,6 +4197,7 @@
"effect.aris_random_additions.summoned_entity_effect": "Summoned Entity",
"item.nims_random_bullshit.orichalcum": "Orichalcum",
"advancements.magic_egg_advancement.descr": "Obtain a Magic Egg",
+ "entity.aris_random_additions.ari": "Ari",
"item.nims_random_bullshit.night_vision_goggles_helmet": "Night Vision Goggles",
"block.aris_random_additions.orichalcum_ore": "Orichalcum Ore",
"item.aris_random_additions.orichalcum_axe": "Orichalcum Axe",
@@ -4157,6 +4219,7 @@
"block.aris_random_additions.condensed_condensed_condensed_netherrack": "Condensed Condensed Condensed Netherrack",
"advancements.star_wand_advancement.title": "Healius Absorbus!",
"advancements.magic_egg_advancement.title": "Core of a Spawner",
+ "item.aris_random_additions.ari_spawn_egg": "Ari Spawn Egg",
"entity.aris_random_additions.tux": "Tux",
"item.nims_random_bullshit.orichalcum_pickaxe": "Orichalcum Pickaxe",
"item.aris_random_additions.magic_dust": "Magic Dust",
@@ -4263,7 +4326,7 @@
"workspaceSettings": {
"modid": "aris_random_additions",
"modName": "Ari\u0027s Random Additions",
- "version": "2.0.1",
+ "version": "2.0.2",
"description": "Random Additions by Ari. Created with MCreator.",
"author": "nimsolated, MCreator",
"websiteURL": "https://mcreator.net",
diff --git a/elements/Ari.mod.json b/elements/Ari.mod.json
new file mode 100644
index 0000000..0663002
--- /dev/null
+++ b/elements/Ari.mod.json
@@ -0,0 +1,173 @@
+{
+ "_fv": 73,
+ "_type": "livingentity",
+ "definition": {
+ "mobName": "Ari",
+ "mobLabel": "Ari",
+ "mobModelName": "Biped",
+ "mobModelTexture": "ari.png",
+ "transparentModelCondition": {
+ "fixedValue": false
+ },
+ "isShakingCondition": {
+ "fixedValue": false
+ },
+ "solidBoundingBox": {
+ "fixedValue": false
+ },
+ "visualScale": {
+ "fixedValue": 1.0
+ },
+ "boundingBoxScale": {
+ "fixedValue": 1.0
+ },
+ "modelLayers": [],
+ "animations": [],
+ "modelWidth": 0.6,
+ "modelHeight": 1.8,
+ "modelShadowSize": 0.5,
+ "mountedYOffset": 0.0,
+ "hasSpawnEgg": true,
+ "spawnEggBaseColor": {
+ "value": -65448,
+ "falpha": 0.0
+ },
+ "spawnEggDotColor": {
+ "value": -1,
+ "falpha": 0.0
+ },
+ "creativeTabs": [
+ {
+ "value": "MISC"
+ }
+ ],
+ "isBoss": false,
+ "bossBarColor": "PINK",
+ "bossBarType": "PROGRESS",
+ "equipmentMainHand": {
+ "value": "CUSTOM:OrichalcumSword"
+ },
+ "equipmentOffHand": {
+ "value": ""
+ },
+ "equipmentHelmet": {
+ "value": ""
+ },
+ "equipmentBody": {
+ "value": ""
+ },
+ "equipmentLeggings": {
+ "value": ""
+ },
+ "equipmentBoots": {
+ "value": ""
+ },
+ "mobBehaviourType": "Mob",
+ "mobCreatureType": "UNDEFINED",
+ "attackStrength": 3,
+ "attackKnockback": 0.0,
+ "knockbackResistance": 0.0,
+ "movementSpeed": 0.3,
+ "stepHeight": 0.6,
+ "armorBaseValue": 3.0,
+ "trackingRange": 64,
+ "followRange": 16,
+ "health": 20,
+ "xpAmount": 0,
+ "waterMob": false,
+ "breatheUnderwater": {
+ "fixedValue": false
+ },
+ "pushedByFluids": {
+ "fixedValue": true
+ },
+ "flyingMob": false,
+ "inventorySize": 9,
+ "inventoryStackSize": 64,
+ "disableCollisions": false,
+ "ridable": false,
+ "canControlForward": false,
+ "canControlStrafe": false,
+ "immuneToFire": false,
+ "immuneToArrows": false,
+ "immuneToFallDamage": true,
+ "immuneToCactus": true,
+ "immuneToDrowning": false,
+ "immuneToLightning": false,
+ "immuneToPotions": false,
+ "immuneToPlayer": false,
+ "immuneToExplosion": false,
+ "immuneToTrident": false,
+ "immuneToAnvil": false,
+ "immuneToWither": false,
+ "immuneToDragonBreath": false,
+ "mobDrop": {
+ "value": "CUSTOM:Orichalcum"
+ },
+ "livingSound": {
+ "value": "block.amethyst_block.chime"
+ },
+ "hurtSound": {
+ "value": "block.amethyst_block.hit"
+ },
+ "deathSound": {
+ "value": "block.amethyst_block.break"
+ },
+ "stepSound": {
+ "value": "block.amethyst_block.step"
+ },
+ "raidCelebrationSound": {
+ "value": ""
+ },
+ "entityDataEntries": [],
+ "onInitialSpawn": {
+ "name": "AriOnInitialEntitySpawn"
+ },
+ "hasAI": true,
+ "aiBase": "(none)",
+ "aixml": "1.2FALSEnull,null1FALSEnull,nullCUSTOM:OrichalcumEntityPlayer6null,null1null,nullTRUETRUEEntityMobnull,nullFALSEnull,nullnull,nullnull,null",
+ "breedable": false,
+ "tameable": false,
+ "breedTriggerItems": [],
+ "ranged": false,
+ "rangedAttackItem": {
+ "value": ""
+ },
+ "rangedItemType": "Default item",
+ "rangedAttackInterval": 20,
+ "rangedAttackRadius": 10.0,
+ "spawnThisMob": true,
+ "doesDespawnWhenIdle": false,
+ "spawningProbability": 9,
+ "mobSpawningType": "monster",
+ "minNumberOfMobsPerGroup": 1,
+ "maxNumberOfMobsPerGroup": 1,
+ "restrictionBiomes": [
+ {
+ "value": "cold_beach"
+ },
+ {
+ "value": "snowy_tundra"
+ },
+ {
+ "value": "taiga_cold"
+ },
+ {
+ "value": "cherry_grove"
+ },
+ {
+ "value": "snowy_slopes"
+ }
+ ],
+ "spawnInDungeons": false,
+ "raidSpawnsCount": [
+ 4,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 2
+ ]
+ }
+}
\ No newline at end of file
diff --git a/elements/AriOnInitialEntitySpawn.mod.json b/elements/AriOnInitialEntitySpawn.mod.json
new file mode 100644
index 0000000..9e3e461
--- /dev/null
+++ b/elements/AriOnInitialEntitySpawn.mod.json
@@ -0,0 +1,7 @@
+{
+ "_fv": 73,
+ "_type": "procedure",
+ "definition": {
+ "procedurexml": "pickedScaleno_ext_triggerlocal:pickedScale0.51.5HEIGHTlocal:pickedScaleWIDTHlocal:pickedScale"
+ }
+}
\ No newline at end of file
diff --git a/elements/AriSpawnEggRecipe.mod.json b/elements/AriSpawnEggRecipe.mod.json
new file mode 100644
index 0000000..044c3ce
--- /dev/null
+++ b/elements/AriSpawnEggRecipe.mod.json
@@ -0,0 +1,48 @@
+{
+ "_fv": 73,
+ "_type": "recipe",
+ "definition": {
+ "recipeType": "Crafting",
+ "recipeRetstackSize": 1,
+ "group": "",
+ "cookingBookCategory": "MISC",
+ "xpReward": 0.0,
+ "cookingTime": 200,
+ "craftingBookCategory": "MISC",
+ "recipeShapeless": false,
+ "recipeSlots": [
+ {
+ "value": "Blocks.RED_FLOWER#0"
+ },
+ {
+ "value": "CUSTOM:Orichalcum"
+ },
+ {
+ "value": "Blocks.RED_FLOWER#0"
+ },
+ {
+ "value": "CUSTOM:Orichalcum"
+ },
+ {
+ "value": "Items.FOX_SPAWN_EGG"
+ },
+ {
+ "value": "CUSTOM:Orichalcum"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ },
+ {
+ "value": "CUSTOM:Orichalcum"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ }
+ ],
+ "recipeReturnStack": {
+ "value": "CUSTOM:Ari.spawn_egg"
+ },
+ "name": "ari_spawn_egg_recipe",
+ "namespace": "mod"
+ }
+}
\ No newline at end of file
diff --git a/elements/FoxSpawnEgg.mod.json b/elements/FoxSpawnEgg.mod.json
new file mode 100644
index 0000000..c13ad2c
--- /dev/null
+++ b/elements/FoxSpawnEgg.mod.json
@@ -0,0 +1,48 @@
+{
+ "_fv": 73,
+ "_type": "recipe",
+ "definition": {
+ "recipeType": "Crafting",
+ "recipeRetstackSize": 1,
+ "group": "",
+ "cookingBookCategory": "MISC",
+ "xpReward": 0.0,
+ "cookingTime": 200,
+ "craftingBookCategory": "MISC",
+ "recipeShapeless": false,
+ "recipeSlots": [
+ {
+ "value": "Items.CHICKEN"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ },
+ {
+ "value": "Items.CHICKEN"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ },
+ {
+ "value": "CUSTOM:MagicEgg"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ },
+ {
+ "value": "Items.RABBIT"
+ },
+ {
+ "value": "Items.SWEET_BERRIES"
+ },
+ {
+ "value": "Items.RABBIT"
+ }
+ ],
+ "recipeReturnStack": {
+ "value": "Items.FOX_SPAWN_EGG"
+ },
+ "name": "fox_spawn_egg",
+ "namespace": "mod"
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/net/mcreator/arisrandomadditions/client/renderer/AriRenderer.java b/src/main/java/net/mcreator/arisrandomadditions/client/renderer/AriRenderer.java
new file mode 100644
index 0000000..b5c8fea
--- /dev/null
+++ b/src/main/java/net/mcreator/arisrandomadditions/client/renderer/AriRenderer.java
@@ -0,0 +1,23 @@
+
+package net.mcreator.arisrandomadditions.client.renderer;
+
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer;
+import net.minecraft.client.renderer.entity.HumanoidMobRenderer;
+import net.minecraft.client.renderer.entity.EntityRendererProvider;
+import net.minecraft.client.model.geom.ModelLayers;
+import net.minecraft.client.model.HumanoidModel;
+
+import net.mcreator.arisrandomadditions.entity.AriEntity;
+
+public class AriRenderer extends HumanoidMobRenderer> {
+ public AriRenderer(EntityRendererProvider.Context context) {
+ super(context, new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER)), 0.5f);
+ this.addLayer(new HumanoidArmorLayer(this, new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_INNER_ARMOR)), new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_OUTER_ARMOR)), context.getModelManager()));
+ }
+
+ @Override
+ public ResourceLocation getTextureLocation(AriEntity entity) {
+ return new ResourceLocation("aris_random_additions:textures/entities/ari.png");
+ }
+}
diff --git a/src/main/java/net/mcreator/arisrandomadditions/entity/AriEntity.java b/src/main/java/net/mcreator/arisrandomadditions/entity/AriEntity.java
new file mode 100644
index 0000000..bed8994
--- /dev/null
+++ b/src/main/java/net/mcreator/arisrandomadditions/entity/AriEntity.java
@@ -0,0 +1,161 @@
+
+package net.mcreator.arisrandomadditions.entity;
+
+import net.minecraftforge.registries.ForgeRegistries;
+import net.minecraftforge.network.PlayMessages;
+import net.minecraftforge.network.NetworkHooks;
+
+import net.minecraft.world.level.levelgen.Heightmap;
+import net.minecraft.world.level.block.state.BlockState;
+import net.minecraft.world.level.ServerLevelAccessor;
+import net.minecraft.world.level.Level;
+import net.minecraft.world.item.crafting.Ingredient;
+import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.entity.player.Player;
+import net.minecraft.world.entity.monster.Monster;
+import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
+import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
+import net.minecraft.world.entity.ai.goal.TemptGoal;
+import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
+import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal;
+import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
+import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal;
+import net.minecraft.world.entity.ai.goal.FloatGoal;
+import net.minecraft.world.entity.ai.attributes.Attributes;
+import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
+import net.minecraft.world.entity.SpawnPlacements;
+import net.minecraft.world.entity.SpawnGroupData;
+import net.minecraft.world.entity.MobType;
+import net.minecraft.world.entity.MobSpawnType;
+import net.minecraft.world.entity.Mob;
+import net.minecraft.world.entity.LivingEntity;
+import net.minecraft.world.entity.EquipmentSlot;
+import net.minecraft.world.entity.EntityType;
+import net.minecraft.world.damagesource.DamageTypes;
+import net.minecraft.world.damagesource.DamageSource;
+import net.minecraft.world.DifficultyInstance;
+import net.minecraft.world.Difficulty;
+import net.minecraft.sounds.SoundEvent;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.network.protocol.game.ClientGamePacketListener;
+import net.minecraft.network.protocol.Packet;
+import net.minecraft.network.chat.Component;
+import net.minecraft.nbt.CompoundTag;
+import net.minecraft.core.BlockPos;
+
+import net.mcreator.arisrandomadditions.procedures.AriOnInitialEntitySpawnProcedure;
+import net.mcreator.arisrandomadditions.init.ArisRandomAdditionsModItems;
+import net.mcreator.arisrandomadditions.init.ArisRandomAdditionsModEntities;
+
+import javax.annotation.Nullable;
+
+public class AriEntity extends Monster {
+ public AriEntity(PlayMessages.SpawnEntity packet, Level world) {
+ this(ArisRandomAdditionsModEntities.ARI.get(), world);
+ }
+
+ public AriEntity(EntityType type, Level world) {
+ super(type, world);
+ setMaxUpStep(0.6f);
+ xpReward = 0;
+ setNoAi(false);
+ setCustomName(Component.literal("Ari"));
+ setCustomNameVisible(true);
+ setPersistenceRequired();
+ this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(ArisRandomAdditionsModItems.ORICHALCUM_SWORD.get()));
+ }
+
+ @Override
+ public Packet getAddEntityPacket() {
+ return NetworkHooks.getEntitySpawningPacket(this);
+ }
+
+ @Override
+ protected void registerGoals() {
+ super.registerGoals();
+ this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.2, false) {
+ @Override
+ protected double getAttackReachSqr(LivingEntity entity) {
+ return this.mob.getBbWidth() * this.mob.getBbWidth() + entity.getBbWidth();
+ }
+ });
+ this.goalSelector.addGoal(2, new TemptGoal(this, 1, Ingredient.of(ArisRandomAdditionsModItems.ORICHALCUM.get()), false));
+ this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, (float) 6));
+ this.goalSelector.addGoal(4, new RandomStrollGoal(this, 1));
+ this.targetSelector.addGoal(5, new NearestAttackableTargetGoal(this, Mob.class, true, true));
+ this.targetSelector.addGoal(6, new HurtByTargetGoal(this));
+ this.goalSelector.addGoal(7, new RandomLookAroundGoal(this));
+ this.goalSelector.addGoal(8, new FloatGoal(this));
+ }
+
+ @Override
+ public MobType getMobType() {
+ return MobType.UNDEFINED;
+ }
+
+ @Override
+ public boolean removeWhenFarAway(double distanceToClosestPlayer) {
+ return false;
+ }
+
+ @Override
+ public double getMyRidingOffset() {
+ return -0.35D;
+ }
+
+ protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHitIn) {
+ super.dropCustomDeathLoot(source, looting, recentlyHitIn);
+ this.spawnAtLocation(new ItemStack(ArisRandomAdditionsModItems.ORICHALCUM.get()));
+ }
+
+ @Override
+ public SoundEvent getAmbientSound() {
+ return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.amethyst_block.chime"));
+ }
+
+ @Override
+ public void playStepSound(BlockPos pos, BlockState blockIn) {
+ this.playSound(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.amethyst_block.step")), 0.15f, 1);
+ }
+
+ @Override
+ public SoundEvent getHurtSound(DamageSource ds) {
+ return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.amethyst_block.hit"));
+ }
+
+ @Override
+ public SoundEvent getDeathSound() {
+ return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.amethyst_block.break"));
+ }
+
+ @Override
+ public boolean hurt(DamageSource damagesource, float amount) {
+ if (damagesource.is(DamageTypes.FALL))
+ return false;
+ if (damagesource.is(DamageTypes.CACTUS))
+ return false;
+ return super.hurt(damagesource, amount);
+ }
+
+ @Override
+ public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) {
+ SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag);
+ AriOnInitialEntitySpawnProcedure.execute(this);
+ return retval;
+ }
+
+ public static void init() {
+ SpawnPlacements.register(ArisRandomAdditionsModEntities.ARI.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
+ (entityType, world, reason, pos, random) -> (world.getDifficulty() != Difficulty.PEACEFUL && Monster.isDarkEnoughToSpawn(world, pos, random) && Mob.checkMobSpawnRules(entityType, world, reason, pos, random)));
+ }
+
+ public static AttributeSupplier.Builder createAttributes() {
+ AttributeSupplier.Builder builder = Mob.createMobAttributes();
+ builder = builder.add(Attributes.MOVEMENT_SPEED, 0.3);
+ builder = builder.add(Attributes.MAX_HEALTH, 20);
+ builder = builder.add(Attributes.ARMOR, 3);
+ builder = builder.add(Attributes.ATTACK_DAMAGE, 3);
+ builder = builder.add(Attributes.FOLLOW_RANGE, 16);
+ return builder;
+ }
+}
diff --git a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntities.java b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntities.java
index e3cd3e9..0f32a4b 100644
--- a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntities.java
+++ b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntities.java
@@ -20,6 +20,7 @@ import net.mcreator.arisrandomadditions.entity.TuxEntity;
import net.mcreator.arisrandomadditions.entity.TurdProjectileEntity;
import net.mcreator.arisrandomadditions.entity.PocketLightningProjectileEntity;
import net.mcreator.arisrandomadditions.entity.GhoulEntity;
+import net.mcreator.arisrandomadditions.entity.AriEntity;
import net.mcreator.arisrandomadditions.ArisRandomAdditionsMod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
@@ -36,6 +37,10 @@ public class ArisRandomAdditionsModEntities {
.setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject> TURD_PROJECTILE = register("turd_projectile",
EntityType.Builder.of(TurdProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TurdProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
+ public static final RegistryObject> ARI = register("ari",
+ EntityType.Builder.of(AriEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(AriEntity::new)
+
+ .sized(0.6f, 1.8f));
// Start of user code block custom entities
// End of user code block custom entities
@@ -48,6 +53,7 @@ public class ArisRandomAdditionsModEntities {
event.enqueueWork(() -> {
GhoulEntity.init();
TuxEntity.init();
+ AriEntity.init();
});
}
@@ -55,5 +61,6 @@ public class ArisRandomAdditionsModEntities {
public static void registerAttributes(EntityAttributeCreationEvent event) {
event.put(GHOUL.get(), GhoulEntity.createAttributes().build());
event.put(TUX.get(), TuxEntity.createAttributes().build());
+ event.put(ARI.get(), AriEntity.createAttributes().build());
}
}
diff --git a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntityRenderers.java b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntityRenderers.java
index 43b39e1..71877ce 100644
--- a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntityRenderers.java
+++ b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModEntityRenderers.java
@@ -13,6 +13,7 @@ import net.minecraft.client.renderer.entity.ThrownItemRenderer;
import net.mcreator.arisrandomadditions.client.renderer.TuxRenderer;
import net.mcreator.arisrandomadditions.client.renderer.GhoulRenderer;
+import net.mcreator.arisrandomadditions.client.renderer.AriRenderer;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class ArisRandomAdditionsModEntityRenderers {
@@ -22,5 +23,6 @@ public class ArisRandomAdditionsModEntityRenderers {
event.registerEntityRenderer(ArisRandomAdditionsModEntities.TUX.get(), TuxRenderer::new);
event.registerEntityRenderer(ArisRandomAdditionsModEntities.POCKET_LIGHTNING_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(ArisRandomAdditionsModEntities.TURD_PROJECTILE.get(), ThrownItemRenderer::new);
+ event.registerEntityRenderer(ArisRandomAdditionsModEntities.ARI.get(), AriRenderer::new);
}
}
diff --git a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModItems.java b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModItems.java
index 5ce9bd1..77b8ff4 100644
--- a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModItems.java
+++ b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModItems.java
@@ -116,6 +116,7 @@ public class ArisRandomAdditionsModItems {
public static final RegistryObject- RAVE_BLOCK = block(ArisRandomAdditionsModBlocks.RAVE_BLOCK);
public static final RegistryObject
- TURD = REGISTRY.register("turd", () -> new TurdItem());
public static final RegistryObject
- WAND_OF_DRAINING = REGISTRY.register("wand_of_draining", () -> new WandOfDrainingItem());
+ public static final RegistryObject
- ARI_SPAWN_EGG = REGISTRY.register("ari_spawn_egg", () -> new ForgeSpawnEggItem(ArisRandomAdditionsModEntities.ARI, -65448, -1, new Item.Properties()));
// Start of user code block custom items
// End of user code block custom items
diff --git a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModTabs.java b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModTabs.java
index f87d093..40c3e44 100644
--- a/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModTabs.java
+++ b/src/main/java/net/mcreator/arisrandomadditions/init/ArisRandomAdditionsModTabs.java
@@ -75,6 +75,7 @@ public class ArisRandomAdditionsModTabs {
} else if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) {
tabData.accept(ArisRandomAdditionsModItems.GHOUL_SPAWN_EGG.get());
tabData.accept(ArisRandomAdditionsModItems.TUX_SPAWN_EGG.get());
+ tabData.accept(ArisRandomAdditionsModItems.ARI_SPAWN_EGG.get());
} else if (tabData.getTabKey() == CreativeModeTabs.REDSTONE_BLOCKS) {
tabData.accept(ArisRandomAdditionsModBlocks.REDSTONE_BRICKS.get().asItem());
tabData.accept(ArisRandomAdditionsModBlocks.REDSTONE_BRICK_STAIRS.get().asItem());
diff --git a/src/main/java/net/mcreator/arisrandomadditions/procedures/AriOnInitialEntitySpawnProcedure.java b/src/main/java/net/mcreator/arisrandomadditions/procedures/AriOnInitialEntitySpawnProcedure.java
new file mode 100644
index 0000000..581cd83
--- /dev/null
+++ b/src/main/java/net/mcreator/arisrandomadditions/procedures/AriOnInitialEntitySpawnProcedure.java
@@ -0,0 +1,19 @@
+package net.mcreator.arisrandomadditions.procedures;
+
+import virtuoel.pehkui.api.ScaleTypes;
+import virtuoel.pehkui.api.ScaleOperations;
+
+import net.minecraft.world.entity.Entity;
+import net.minecraft.util.RandomSource;
+import net.minecraft.util.Mth;
+
+public class AriOnInitialEntitySpawnProcedure {
+ public static void execute(Entity entity) {
+ if (entity == null)
+ return;
+ double pickedScale = 0;
+ pickedScale = Mth.nextDouble(RandomSource.create(), 0.5, 1.5);
+ ScaleTypes.HEIGHT.getScaleData(entity).setTargetScale((float) ScaleOperations.SET.applyAsDouble(ScaleTypes.HEIGHT.getScaleData(entity).getTargetScale(), pickedScale));
+ ScaleTypes.WIDTH.getScaleData(entity).setTargetScale((float) ScaleOperations.SET.applyAsDouble(ScaleTypes.WIDTH.getScaleData(entity).getTargetScale(), pickedScale));
+ }
+}
diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml
index a2e2ffd..1b43f27 100644
--- a/src/main/resources/META-INF/mods.toml
+++ b/src/main/resources/META-INF/mods.toml
@@ -4,7 +4,7 @@ license="Academic Free License v3.0"
[[mods]]
modId="aris_random_additions"
-version="2.0.1"
+version="2.0.2"
displayName="Ari's Random Additions"
displayURL="https://mcreator.net"
logoFile="logo.png"
diff --git a/src/main/resources/assets/aris_random_additions/lang/en_us.json b/src/main/resources/assets/aris_random_additions/lang/en_us.json
index 1bdcd8a..762c64e 100644
--- a/src/main/resources/assets/aris_random_additions/lang/en_us.json
+++ b/src/main/resources/assets/aris_random_additions/lang/en_us.json
@@ -146,6 +146,7 @@
"effect.aris_random_additions.summoned_entity_effect": "Summoned Entity",
"item.nims_random_bullshit.orichalcum": "Orichalcum",
"advancements.magic_egg_advancement.descr": "Obtain a Magic Egg",
+ "entity.aris_random_additions.ari": "Ari",
"item.nims_random_bullshit.night_vision_goggles_helmet": "Night Vision Goggles",
"block.aris_random_additions.orichalcum_ore": "Orichalcum Ore",
"item.aris_random_additions.orichalcum_axe": "Orichalcum Axe",
@@ -167,6 +168,7 @@
"block.aris_random_additions.condensed_condensed_condensed_netherrack": "Condensed Condensed Condensed Netherrack",
"advancements.star_wand_advancement.title": "Healius Absorbus!",
"advancements.magic_egg_advancement.title": "Core of a Spawner",
+ "item.aris_random_additions.ari_spawn_egg": "Ari Spawn Egg",
"entity.aris_random_additions.tux": "Tux",
"item.nims_random_bullshit.orichalcum_pickaxe": "Orichalcum Pickaxe",
"item.aris_random_additions.magic_dust": "Magic Dust",
diff --git a/src/main/resources/assets/aris_random_additions/textures/entities/ari.png b/src/main/resources/assets/aris_random_additions/textures/entities/ari.png
new file mode 100644
index 0000000..5d990ed
Binary files /dev/null and b/src/main/resources/assets/aris_random_additions/textures/entities/ari.png differ
diff --git a/src/main/resources/data/aris_random_additions/forge/biome_modifier/ari_biome_modifier.json b/src/main/resources/data/aris_random_additions/forge/biome_modifier/ari_biome_modifier.json
new file mode 100644
index 0000000..74a7cae
--- /dev/null
+++ b/src/main/resources/data/aris_random_additions/forge/biome_modifier/ari_biome_modifier.json
@@ -0,0 +1,16 @@
+{
+ "type": "forge:add_spawns",
+ "biomes": [
+ "snowy_beach",
+ "snowy_plains",
+ "snowy_taiga",
+ "cherry_grove",
+ "snowy_slopes"
+ ],
+ "spawners": {
+ "type": "aris_random_additions:ari",
+ "weight": 9,
+ "minCount": 1,
+ "maxCount": 1
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/data/aris_random_additions/recipes/ari_spawn_egg_recipe.json b/src/main/resources/data/aris_random_additions/recipes/ari_spawn_egg_recipe.json
new file mode 100644
index 0000000..5e075c9
--- /dev/null
+++ b/src/main/resources/data/aris_random_additions/recipes/ari_spawn_egg_recipe.json
@@ -0,0 +1,27 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "category": "misc",
+ "pattern": [
+ "aba",
+ "bcb",
+ "dbd"
+ ],
+ "key": {
+ "a": {
+ "item": "minecraft:poppy"
+ },
+ "b": {
+ "item": "aris_random_additions:orichalcum"
+ },
+ "c": {
+ "item": "minecraft:fox_spawn_egg"
+ },
+ "d": {
+ "item": "minecraft:sweet_berries"
+ }
+ },
+ "result": {
+ "item": "aris_random_additions:ari_spawn_egg",
+ "count": 1
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/data/aris_random_additions/recipes/fox_spawn_egg.json b/src/main/resources/data/aris_random_additions/recipes/fox_spawn_egg.json
new file mode 100644
index 0000000..663f136
--- /dev/null
+++ b/src/main/resources/data/aris_random_additions/recipes/fox_spawn_egg.json
@@ -0,0 +1,27 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "category": "misc",
+ "pattern": [
+ "aba",
+ "bcb",
+ "dbd"
+ ],
+ "key": {
+ "a": {
+ "item": "minecraft:chicken"
+ },
+ "b": {
+ "item": "minecraft:sweet_berries"
+ },
+ "c": {
+ "item": "aris_random_additions:magic_egg"
+ },
+ "d": {
+ "item": "minecraft:rabbit"
+ }
+ },
+ "result": {
+ "item": "minecraft:fox_spawn_egg",
+ "count": 1
+ }
+}
\ No newline at end of file