init.lua 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. local SPRITE_VERSION = false -- set to true to use upright sprites instead of meshes
  2. -- local variables
  3. local l_spawn_chance = 10000
  4. local l_water_level = minetest.settings:get("water_level") - 1
  5. local l_visual = "mesh"
  6. local l_visual_size = {x = .75, y = .75}
  7. local l_clown_mesh = "animal_clownfish.b3d"
  8. local l_trop_mesh = "fish_blue_white.b3d"
  9. local l_clown_textures = {
  10. {"clownfish.png"},
  11. {"clownfish2.png"}
  12. }
  13. local l_trop_textures = {
  14. {"fish.png"},
  15. {"fish2.png"},
  16. {"fish3.png"}
  17. }
  18. if SPRITE_VERSION then
  19. l_visual = "upright_sprite"
  20. l_visual_size = {x = .5, y = .5}
  21. l_clown_mesh = nil
  22. l_trop_mesh = nil
  23. l_clown_textures = {{"animal_clownfish_clownfish_item.png"}}
  24. l_trop_textures = {{"animal_fish_blue_white_fish_blue_white_item.png"}}
  25. end
  26. -- Clownfish
  27. mobs:register_mob("mobs_fish:clownfish", {
  28. type = "animal",
  29. passive = true,
  30. hp_min = 1,
  31. hp_max = 4,
  32. armor = 100,
  33. collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
  34. rotate = 270,
  35. visual = l_visual,
  36. mesh = l_clown_mesh,
  37. textures = l_clown_textures,
  38. visual_size = l_visual_size,
  39. makes_footstep_sound = false,
  40. stepheight = 0,
  41. fly = true,
  42. fly_in = "default:water_source",
  43. fall_speed = 0,
  44. view_range = 8,
  45. water_damage = 0,
  46. air_damage = 0,
  47. lava_damage = 5,
  48. light_damage = 0,
  49. animation = {
  50. speed_normal = 24,
  51. speed_run = 24,
  52. stand_start = 1,
  53. stand_end = 80,
  54. walk_start = 81,
  55. walk_end = 155,
  56. run_start = 81,
  57. run_end = 155
  58. },
  59. on_rightclick = function(self, clicker)
  60. mobs:capture_mob(self, clicker, 25, 80, 0, true,
  61. "mobs_fish:clownfish")
  62. end,
  63. on_flop = function(self)
  64. -- print("=== am on land, help!", self.state)
  65. self.object:set_acceleration({
  66. x = math.random(-0.1, 0.1),
  67. y = -10,
  68. z = math.random(-0.1, 0.1)
  69. })
  70. self.object:set_velocity({x = 0, y = -10, z = 0})
  71. return true
  72. end,
  73. })
  74. mobs:spawn({
  75. name = "mobs_fish:clownfish",
  76. nodes = {
  77. "default:water_source", "default:water_flowing",
  78. "default:river_water_source", "default:river_water_flowing"
  79. },
  80. neighbors = {
  81. "default:sand","default:dirt","group:seaplants","group:seacoral"
  82. },
  83. min_light = 5,
  84. interval = 30,
  85. chance = l_spawn_chance,
  86. max_height = l_water_level,
  87. active_object_count = 5,
  88. })
  89. mobs:register_egg("mobs_fish:clownfish", "Clownfish",
  90. "animal_clownfish_clownfish_item.png", 0)
  91. -- Tropical fish
  92. mobs:register_mob("mobs_fish:tropical", {
  93. type = "animal",
  94. passive = true,
  95. hp_min = 1,
  96. hp_max = 4,
  97. armor = 100,
  98. collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
  99. rotate = 270,
  100. visual = l_visual,
  101. mesh = l_trop_mesh,
  102. textures = l_trop_textures,
  103. visual_size = l_visual_size,
  104. makes_footstep_sound = false,
  105. stepheight = 0,
  106. fly = true,
  107. fly_in = "default:water_source",
  108. fall_speed = 0,
  109. view_range = 8,
  110. water_damage = 0,
  111. lava_damage = 5,
  112. light_damage = 0,
  113. air_damage = 0,
  114. animation = {
  115. speed_normal = 24,
  116. speed_run = 24,
  117. stand_start = 1,
  118. stand_end = 80,
  119. walk_start = 81,
  120. walk_end = 155,
  121. run_start = 81,
  122. run_end = 155
  123. },
  124. on_rightclick = function(self, clicker)
  125. mobs:capture_mob(self, clicker, 25, 80, 0, true,
  126. "mobs_fish:tropical")
  127. end,
  128. on_flop = function(self)
  129. -- print("=== am on land, help!", self.state)
  130. self.object:set_acceleration({
  131. x = math.random(-0.1, 0.1),
  132. y = -10,
  133. z = math.random(-0.1, 0.1)
  134. })
  135. self.object:set_velocity({x = 0, y = -10, z = 0})
  136. return true
  137. end,
  138. })
  139. mobs:spawn({
  140. name = "mobs_fish:tropical",
  141. nodes = {
  142. "default:water_source", "default:water_flowing",
  143. "default:river_water_source", "default:river_water_flowing"
  144. },
  145. neighbors = {
  146. "default:sand","default:dirt","group:seaplants","group:seacoral"
  147. },
  148. min_light = 5,
  149. interval = 30,
  150. chance = l_spawn_chance,
  151. max_height = l_water_level,
  152. active_object_count = 5,
  153. })
  154. mobs:register_egg("mobs_fish:tropical", "Tropical fish",
  155. "animal_fish_blue_white_fish_blue_white_item.png", 0)