diff --git a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java index 7969051df..de9eb0cb6 100644 --- a/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java +++ b/src/main/java/net/id/paradiselost/entities/hostile/EnvoyEntity.java @@ -10,8 +10,10 @@ import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.entity.mob.SkeletonEntity; import net.minecraft.nbt.NbtCompound; +import net.minecraft.particle.ParticleTypes; import net.minecraft.util.math.random.Random; import net.minecraft.world.LocalDifficulty; import net.minecraft.world.World; @@ -35,6 +37,21 @@ protected void initDataTracker() { protected void initEquipment(Random random, LocalDifficulty localDifficulty) { } + public boolean isShaking() { + return this.getEnlightened() || super.isShaking(); + } + + + public void tick() { + if (this.world.isClient && this.getEnlightened() && this.random.nextInt(3) == 0) { + this.world.addParticle(ParticleTypes.CLOUD, + this.getParticleX(0.2), (this.getY() + this.random.nextDouble() * 0.6) + 0.85, this.getParticleZ(0.2), + (this.random.nextDouble() - 0.5) * 0.05, -this.random.nextDouble() * 0.025, (this.random.nextDouble() - 0.5) * 0.05 + ); + } + super.tick(); + } + public boolean tryAttack(Entity target) { if (!super.tryAttack(target)) { return false; diff --git a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java index cc3f136ba..c3d6ac4f9 100644 --- a/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java +++ b/src/main/java/net/id/paradiselost/items/ParadiseLostItems.java @@ -191,6 +191,7 @@ private static Settings misc() { public static final AurelBucketItem AUREL_MILK_BUCKET = add("aurel_milk_bucket", new AurelBucketItem(aurelBucket)); public static final SpawnEggItem HELLENROSE_SPAWN_EGG = add("hellenrose_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.HELLENROSE, 0x97DED4, 0x31897D, misc), spawnEggBehavior); + public static final SpawnEggItem ENVOY_SPAWN_EGG = add("envoy_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.ENVOY, 0xc5b1af, 0x993c3c, misc), spawnEggBehavior); public static final SpawnEggItem PARADISE_HARE_SPAWN_EGG = add("corsican_hare_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.PARADISE_HARE, 0xC5D6ED, 0x82A6D9, misc), spawnEggBehavior); public static final SpawnEggItem MOA_SPAWN_EGG = add("moa_spawn_egg", new SpawnEggItem(ParadiseLostEntityTypes.MOA, 0xC55C2E4, 0xB3A8BB, misc), spawnEggBehavior); diff --git a/src/main/resources/assets/paradise_lost/lang/en_us.json b/src/main/resources/assets/paradise_lost/lang/en_us.json index a2b63c81c..e879f640c 100644 --- a/src/main/resources/assets/paradise_lost/lang/en_us.json +++ b/src/main/resources/assets/paradise_lost/lang/en_us.json @@ -338,6 +338,7 @@ "item.paradise_lost.cloud_vial": "Cloud Vial", "item.paradise_lost.hellenrose_spawn_egg": "Hellenrose Spawn Egg", + "item.paradise_lost.envoy_spawn_egg": "Envoy Spawn Egg", "item.paradise_lost.corsican_hare_spawn_egg": "Corsican Hare Spawn Egg", "item.paradise_lost.moa_spawn_egg": "Moa Spawn Egg", diff --git a/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json b/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json new file mode 100644 index 000000000..cbd5c36b9 --- /dev/null +++ b/src/main/resources/assets/paradise_lost/models/item/envoy_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "paradise_lost:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png index feb174efa..e79e04bb3 100644 Binary files a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png and b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy.png differ diff --git a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png index a01b1dd4f..5daa18d4b 100644 Binary files a/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png and b/src/main/resources/assets/paradise_lost/textures/entity/envoy/envoy_enlightened.png differ diff --git a/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json b/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json new file mode 100644 index 000000000..4d30d3c39 --- /dev/null +++ b/src/main/resources/data/paradise_lost/loot_tables/entities/envoy.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "paradise_lost:bloomed_calcite" + } + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.05 + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0, + "max": 2 + }, + "add": false + }, + { + "function": "minecraft:looting_enchant", + "count": { + "type": "minecraft:uniform", + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +}