Files
SysAdmin 7c8cd5b075 feat(addons): hemp plant, wild cherry tree, naturalist-lite
New addons:
- hemp-addon: silverlabs:hemp_crop (5 ages, indoor sun-lamp grown vs
  outdoor sky-lit), shears harvest, cauldron tincture, brownie food,
  bonemeal, sun-lamp redstone-lit block (light_dampening: 0 so crops
  beneath stay lit), grass-seed bootstrap, wandering-trader buyback,
  pillager raid stealing.
- trees-features-addon: ods_orch wild cherry tree — log/leaves/planks/
  stripped/sapling/fruit blocks with seasonal fruit states, structure-
  spawn worldgen.
- naturalist-lite-addon: 13-mob subset of Naturalist (deer, fox, owl,
  skunk, snake, hedgehog, red panda, capybara, elephant, kangaroo,
  moose, tiger, firefly), trimmed for Switch joinability.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 22:00:06 +01:00

94 lines
5.3 KiB
JSON

{
"format_version": "1.10.0",
"minecraft:client_entity": {
"description": {
"identifier": "silverlabs_nat:elephant",
"materials": { "default": "entity_alphatest" },
"textures": {
"default": "textures/sf/nba/entity/elephant/elephant",
"baby": "textures/sf/nba/entity/elephant/elephant_baby"
},
"geometry": {
"default": "geometry.silverlabs_nat.elephant",
"baby": "geometry.silverlabs_nat.elephant_baby"
},
"animations": {
"walk": "animation.silverlabs_nat.elephant.walk2",
"look_at_target": "animation.silverlabs_nat.elephant.look_at_target",
"body_rotation": "animation.silverlabs_nat.elephant.body_rotation",
"idle": "animation.silverlabs_nat.elephant.idle",
"water": "animation.silverlabs_nat.elephant.water",
"swing": "animation.silverlabs_nat.elephant.swing",
"drink": "animation.silverlabs_nat.elephant.drink",
"move": "controller.animation.silverlabs_nat.elephant.move",
"attack": "controller.animation.silverlabs_nat.elephant.attack",
"drinking": "controller.animation.silverlabs_nat.elephant.drinking",
"body_rotation_controller": "controller.animation.silverlabs_nat.elephant.body_rotation",
"baby_idle": "animation.silverlabs_nat.elephant_baby.idle",
"baby_walk": "animation.silverlabs_nat.elephant_baby.walk",
"baby_run": "animation.silverlabs_nat.elephant_baby.run",
"baby_playful": "animation.silverlabs_nat.elephant_baby.playful",
"baby_idle_event": "animation.silverlabs_nat.elephant_baby.idle_event",
"baby_look_at_target": "animation.silverlabs_nat.look_at_target",
"baby_body_rotation": "animation.silverlabs_nat.elephant_baby.body_rotation",
"baby_move": "controller.animation.silverlabs_nat.elephant.baby_move",
"baby_look_at_target_controller": "controller.animation.silverlabs_nat.elephant.baby_look_at_target",
"baby_body_rotation_controller": "controller.animation.silverlabs_nat.elephant.baby_body_rotation",
"baby_idle_event_controller": "controller.animation.silverlabs_nat.elephant.baby_idle_event"
},
"scripts": {
"initialize": [
"v.anim_speed_multiplier = 0;",
"v.anim_speed_movement_max = 0;"
],
"pre_animation": [
"v.anim_speed_multiplier = 1.5;",
"v.anim_speed_movement_max = 0.5;",
"v.head_y_rot = q.is_baby ? math.clamp(q.target_y_rotation, -45, 45) : math.clamp(q.target_y_rotation, -35, 35);",
"v.head_x_rot = q.is_baby ? math.clamp(q.target_x_rotation, -45, 22.5) : math.clamp(q.target_x_rotation, -45, 30);",
"v.target_head_rot_x = q.is_baby ? math.clamp(q.target_x_rotation, -45, 22.5) : math.clamp(q.target_x_rotation, -45, 30);",
"v.head_rot_x = math.lerp(v.head_rot_x ?? 0.0, v.target_head_rot_x, 0.1);",
"v.target_head_rot_y = q.modified_move_speed < 0.01 ? v.head_y_rot : 0.0;",
"v.head_rot_y = math.lerp(v.head_rot_y ?? 0.0, v.target_head_rot_y, 0.1);",
"v.body_rot_x = q.is_baby ? math.lerp(v.body_rot_x ?? 0.0, v.target_head_rot_x * 0.3, 0.05) : math.clamp(math.lerp(v.body_rot_x ?? 0.0, v.target_head_rot_x * 0.3, 0.05), -10, 10);",
"v.body_rot_y = q.is_baby ? math.lerp(v.body_rot_y ?? 0.0, v.target_head_rot_y * 0.3, 0.05) : math.clamp(math.lerp(v.body_rot_y ?? 0.0, v.target_head_rot_y * 0.3, 0.05), -10, 10);",
"v.trunk_immediate_y = v.head_y_rot * (q.is_baby ? 0.5 : 0.35);",
"v.trunk_target_y = math.lerp(v.trunk_target_y ?? 0, v.trunk_immediate_y, q.is_baby ? 0.4 : 0.3);",
"v.trunk_target_y = math.lerp(v.trunk_target_y, 0, 0.15);",
"v.trunk_y = math.lerp(v.trunk_y ?? 0, v.trunk_target_y, q.is_baby ? 0.15 : 0.1);",
"v.trunk_immediate_x = q.is_baby ? (-v.head_x_rot + math.abs(v.head_y_rot) * 0.1) : (-v.head_x_rot * 0.8 + math.abs(v.head_y_rot) * 0.08);",
"v.trunk_target_x = math.lerp(v.trunk_target_x ?? 0, v.trunk_immediate_x, q.is_baby ? 0.4 : 0.3);",
"v.trunk_target_x = math.lerp(v.trunk_target_x, 0, v.head_x_rot == 0 && v.head_y_rot == 0 ? 0.15 : (q.is_baby ? 0.03 : 0.02));",
"v.trunk_x = math.lerp(v.trunk_x ?? 0, v.trunk_target_x, q.is_baby ? 0.15 : 0.1);"
],
"animate": [
{ "body_rotation_controller": "!q.is_baby" },
{ "baby_body_rotation_controller": "q.is_baby" },
{ "look_at_target": "!q.is_baby" },
{ "baby_look_at_target_controller": "q.is_baby" },
{ "move": "!q.is_baby" },
{ "baby_move": "q.is_baby" },
{ "baby_idle_event_controller": "q.is_baby" },
"attack",
"drinking"
]
},
"particle_effects": {
"dirt": "silverlabs_nat:elephant_dirt"
},
"render_controllers": ["controller.render.silverlabs_nat.elephant"],
"spawn_egg": {
"texture": "silverlabs_nat.elephant_spawn_egg"
},
"sound_effects": {
"water": "silverlabs_nat.elephant.water",
"drink": "silverlabs_nat.elephant.drink",
"attack": "silverlabs_nat.elephant.attack",
"step": "silverlabs_nat.step.largehoof",
"step_-6dB": "silverlabs_nat.step.largehoof_-6dB",
"step_-12dB": "silverlabs_nat.step.largehoof_-12dB"
}
}
}
}