Skip to content

Commit 6f177bc

Browse files
committed
Add dire wolf
1 parent 66b6ecb commit 6f177bc

28 files changed

Lines changed: 827 additions & 16 deletions

src/generated/resources/.cache/20f5c98dc0fe2d7a53fc98de5b4a9405da0eaab5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.21.1 2025-09-05T00:02:47.4252701 Biome Modifier Registries: ifw
1+
// 1.21.1 2025-09-06T01:54:36.7041415 Biome Modifier Registries: ifw
22
49f499fed8f8f7c797c3124710dff297dfe03998 data/ifw/neoforge/biome_modifier/ifw_add_deepslate_spawns.json
33
d3ce835cbe615798480c31acf5200397159fd125 data/ifw/neoforge/biome_modifier/ifw_add_deep_ores.json
44
5073fcccdb1b63e1972de71daef79b5d55a8ea59 data/ifw/neoforge/biome_modifier/ifw_add_forest_spawns.json

src/generated/resources/.cache/4bcb1c211b05e58ffb2380862bfb6b11ccce7318

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.21.1 2025-09-04T14:40:45.0932348 Item Models: ifw
1+
// 1.21.1 2025-09-05T23:45:53.2309291 Item Models: ifw
22
9ab6010cac42ea73553903db669fc5c01da3210b assets/ifw/models/item/adamantium_axe.json
33
3e249b9ae88c47d265a6ad92dba33dd7b78a34b9 assets/ifw/models/item/adamantium_battle_axe.json
44
76e201d75e58d642af30ed859a4d320fe680b55d assets/ifw/models/item/adamantium_block.json
@@ -136,6 +136,7 @@ b78af853ecaa5af80d81db63b2054d16917f0ffc assets/ifw/models/item/copper_private_c
136136
bdf58386b051960f0d26eeac6c1c261ab5c4070f assets/ifw/models/item/deepslate_silver_ore.json
137137
63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets/ifw/models/item/demon_spider_spawn_egg.json
138138
0955c32d3a2cc0cf31a008e92cb33d5343ef2eb5 assets/ifw/models/item/diamond_shard.json
139+
63ec6c618a3a23eab4cab9c52d7d3250de9b516e assets/ifw/models/item/dire_wolf_spawn_egg.json
139140
daf6346ca531b34d4767b2afbcfc25245933aa70 assets/ifw/models/item/dough.json
140141
efa8ef12d6bfc417aa334d6db1a6a5e54836f9c8 assets/ifw/models/item/emerald_enchanting_table.json
141142
def1fa39cdc255f8288f173b3bf26d5754a443ce assets/ifw/models/item/emerald_shard.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.21.1 2025-09-04T14:40:45.1053388 Languages: zh_cn for mod: ifw
2-
f975bcbee775026542d72a9fb134e0d088eaae75 assets/ifw/lang/zh_cn.json
1+
// 1.21.1 2025-09-05T23:48:44.5108623 Languages: zh_cn for mod: ifw
2+
f72115ade5a3dd8736d9a4e42b6981b003fd64f0 assets/ifw/lang/zh_cn.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.21.1 2025-09-04T14:40:45.10859 Languages: en_us for mod: ifw
2-
159f9467124c9e482e4d6ddd0750e41d9fdf3b22 assets/ifw/lang/en_us.json
1+
// 1.21.1 2025-09-05T23:48:44.5108623 Languages: en_us for mod: ifw
2+
8cacedbfb99f501606b1e10bd5cf64d623755a5d assets/ifw/lang/en_us.json

src/generated/resources/assets/ifw/lang/en_us.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@
274274
"entity.ifw.chicken": "Chicken",
275275
"entity.ifw.cow": "Cow",
276276
"entity.ifw.demon_spider": "Demon Spider",
277+
"entity.ifw.dire_wolf": "Dire Wolf",
277278
"entity.ifw.ghoul": "Ghoul",
278279
"entity.ifw.hell_hound": "Hell Hound",
279280
"entity.ifw.inferno_creeper": "Inferno Creeper",
@@ -413,6 +414,7 @@
413414
"item.ifw.cow_spawn_egg": "Cow Spawn Egg",
414415
"item.ifw.demon_spider_spawn_egg": "Demon Spider Spawn Egg",
415416
"item.ifw.diamond_shard": "Diamond Shard",
417+
"item.ifw.dire_wolf_spawn_egg": "Dire Wolf Spawn Egg",
416418
"item.ifw.dough": "Dough",
417419
"item.ifw.emerald_shard": "Emerald Shard",
418420
"item.ifw.flint_axe": "Flint Axe",

src/generated/resources/assets/ifw/lang/zh_cn.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@
274274
"entity.ifw.chicken": "",
275275
"entity.ifw.cow": "",
276276
"entity.ifw.demon_spider": "恶魔蜘蛛",
277+
"entity.ifw.dire_wolf": "恐狼",
277278
"entity.ifw.ghoul": "食尸鬼",
278279
"entity.ifw.hell_hound": "地狱犬",
279280
"entity.ifw.inferno_creeper": "地狱苦力怕",
@@ -413,6 +414,7 @@
413414
"item.ifw.cow_spawn_egg": "牛刷怪蛋",
414415
"item.ifw.demon_spider_spawn_egg": "恶魔蜘蛛刷怪蛋",
415416
"item.ifw.diamond_shard": "钻石碎片",
417+
"item.ifw.dire_wolf_spawn_egg": "恐狼刷怪蛋",
416418
"item.ifw.dough": "面团",
417419
"item.ifw.emerald_shard": "绿宝石碎片",
418420
"item.ifw.flint_axe": "燧石斧",
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "minecraft:item/template_spawn_egg"
3+
}

src/main/java/huix/infinity/common/client/model/ModelLayers.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@
77
public class ModelLayers {
88
public static final ModelLayerLocation HELLHOUND = new ModelLayerLocation(
99
ResourceLocation.fromNamespaceAndPath(InfinityWay.MOD_ID, "hellhound"), "main");
10+
11+
public static final ModelLayerLocation DIRE_WOLF = new ModelLayerLocation(
12+
ResourceLocation.fromNamespaceAndPath(InfinityWay.MOD_ID, "dire_wolf"), "main");
13+
1014
}

src/main/java/huix/infinity/common/world/entity/IFWEntityType.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ public class IFWEntityType {
6363
.build("cow")
6464
);
6565

66+
public static final DeferredHolder<EntityType<?>, EntityType<IFWDireWolf>> DIRE_WOLF =
67+
ENTITIES.register("dire_wolf",
68+
() -> EntityType.Builder.of(IFWDireWolf::new, MobCategory.MONSTER)
69+
.sized(0.6F, 0.8F)
70+
.clientTrackingRange(8)
71+
.build("dire_wolf")
72+
);
73+
6674
public static final DeferredHolder<EntityType<?>, EntityType<IFWZombie>> ZOMBIE =
6775
ENTITIES.register("zombie",
6876
() -> EntityType.Builder.<IFWZombie>of(IFWZombie::new, MobCategory.MONSTER)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package huix.infinity.common.world.entity.ai;
2+
3+
import huix.infinity.common.world.entity.bridge.WolfDuck;
4+
import net.minecraft.world.entity.LivingEntity;
5+
import net.minecraft.world.entity.Mob;
6+
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
7+
8+
/**
9+
* 兼容原版狼与恐狼(IFWDireWolf)的玩家目标追击AI。
10+
* 只要实体实现了WolfDuck接口(通过Mixin桥接),即可自动兼容。
11+
*/
12+
public class HostileToPlayersTargetGoal<T extends LivingEntity> extends NearestAttackableTargetGoal<T> {
13+
private final WolfDuck duck;
14+
15+
public HostileToPlayersTargetGoal(LivingEntity wolf, Class<T> targetClass, boolean mustSee) {
16+
super((Mob) wolf, targetClass, mustSee);
17+
this.duck = (WolfDuck)wolf;
18+
}
19+
20+
@Override
21+
public boolean canUse() {
22+
return (duck.ifw$isHostileToPlayers() || duck.ifw$isWitchAlly()) && super.canUse();
23+
}
24+
25+
@Override
26+
public void start() {
27+
duck.ifw$setIsAttacking(true);
28+
super.start();
29+
}
30+
}

0 commit comments

Comments
 (0)