1 --[[ This table contains the concrete itemstrings to be used by this mod.
2 All mobs in this mod must use variables in this table, instead
3 of hardcoding the itemstring.
4 This way, external mods are enabled to replace the itemstrings to provide
5 their own items and subgame integration is made much simpler.
7 An item IDs is supposed to be overwritten by adding
8 mobs_mc.override.items["example:item"] in a subgame mod
9 with name "mobs_mc_gameconfig". ]]
14 -- If true, mobs_mc adds the monster egg nodes (needs default mod).
15 -- Set to false in your gameconfig mod if you create your own monster egg nodes.
16 mobs_mc
.create_monster_egg_nodes
= true
21 -- Items defined in mobs_mc
22 blaze_rod
= "mobs_mc:blaze_rod",
23 blaze_powder
= "mobs_mc:blaze_powder",
24 chicken_raw
= "mobs_mc:chicken_raw",
25 chicken_cooked
= "mobs_mc:chicken_cooked",
26 feather
= "mobs_mc:feather",
27 beef_raw
= "mobs_mc:beef_raw",
28 beef_cooked
= "mobs_mc:beef_cooked",
29 bowl
= "mobs_mc:bowl",
30 mushroom_stew
= "mobs_mc:mushroom_stew",
31 milk
= "mobs_mc:milk_bucket",
32 dragon_egg
= "mobs_mc:dragon_egg",
34 ender_eye
= "mobs_mc:ender_eye",
35 ghast_tear
= "mobs_mc:ghast_tear",
36 saddle
= "mobs:saddle",
37 iron_horse_armor
= "mobs_mc:iron_horse_armor",
38 gold_horse_armor
= "mobs_mc:gold_horse_armor",
39 diamond_horse_armor
= "mobs_mc:diamond_horse_armor",
40 porkchop_raw
= "mobs_mc:porkchop_raw",
41 porkchop_cooked
= "mobs_mc:porkchop_cooked",
42 carrot_on_a_stick
= "mobs_mc:carrot_on_a_stick",
43 rabbit_raw
= "mobs_mc:rabbit_raw",
44 rabbit_cooked
= "mobs_mc:rabbit_cooked",
45 rabbit_hide
= "mobs_mc:rabbit_hide",
46 mutton_raw
= "mobs_mc:mutton_raw",
47 mutton_cooked
= "mobs_mc:mutton_cooked",
48 shulker_shell
= "mobs_mc:shulker_shell",
49 magma_cream
= "mobs_mc:magma_cream",
50 spider_eye
= "mobs_mc:spider_eye",
51 snowball
= "mobs_mc:snowball",
52 totem
= "mobs_mc:totem",
53 rotten_flesh
= "mobs_mc:rotten_flesh",
54 nether_star
= "mobs_mc:nether_star",
55 bone
= "mobs_mc:bone",
56 slimeball
= "mobs_mc:slimeball",
57 arrow
= "mobs_mc:arrow",
58 bow
= "mobs_mc:bow_wood",
59 head_creeper
= "mobs_mc:head_creeper",
60 head_zombie
= "mobs_mc:head_zombie",
61 head_skeleton
= "mobs_mc:head_skeleton",
62 head_wither_skeleton
= "mobs_mc:head_wither_skeleton",
66 leather
= "mobs:leather",
67 shears
= "mobs:shears",
70 top_snow
= "default:snow",
71 snow_block
= "default:snowblock",
72 mushroom_red
= "flowers:mushroom_red",
73 bucket
= "bucket:bucket_empty",
74 grass_block
= "default:dirt_with_grass",
75 string = "farming:string",
76 stick
= "default:stick",
77 flint
= "default:flint",
78 iron_ingot
= "default:steel_ingot",
79 iron_block
= "default:steelblock",
80 fire
= "fire:basic_flame",
81 gunpowder
= "tnt:gunpowder",
82 flint_and_steel
= "fire:flint_and_steel",
83 water_source
= "default:water_source",
84 river_water_source
= "default:river_water_source",
85 black_dye
= "dye:black",
86 poppy
= "flowers:rose",
87 dandelion
= "flowers:dandelion_yellow",
88 coal
= "default:coal_lump",
89 emerald
= "default:diamond",
90 iron_axe
= "default:axe_steel",
91 gold_sword
= "default:sword_mese",
92 gold_ingot
= "default:gold_ingot",
93 gold_nugget
= "default:gold_lump",
94 glowstone_dust
= "default:mese_crystal_fragment",
95 redstone
= "default:mese_crystal_fragment",
96 glass_bottle
= "vessels:glass_bottle",
97 sugar
= "default:papyrus",
98 wheat
= "farming:wheat",
99 hay_bale
= "farming:straw",
100 prismarine_shard
= "default:mese_crystal_fragment",
101 prismarine_crystals
= "default:mese_crystal",
102 apple
= "default:apple",
103 golden_apple
= "default:apple",
104 rabbit_foot
= "mobs_mc:rabbit_foot",
107 wet_sponge
= "default:gold_block", -- only dropped by elder guardian; there is no equivalent block in Minetest Game
110 nether_brick_block
= "nether:brick",
111 mycelium
= "ethereal:mushroom_dirt",
112 carrot
= "farming:carrot",
113 potato
= "farming:potato",
114 golden_carrot
= "farming:carrot_gold",
115 fishing_rod
= "fishing:pole_wood",
116 fish_raw
= "fishing:fish_raw",
117 salmon_raw
= "fishing:carp_raw",
118 clownfish_raw
= "fishing:clownfish_raw",
119 pufferfish_raw
= "fishing:pike_raw",
121 cookie
= "farming:cookie",
124 -- TODO: Add actual ender pearl
125 ender_pearl
= "farorb:farorb",
127 nether_portal
= "nether:portal",
128 netherrack
= "nether:rack",
129 nether_brick_block
= "nether:brick",
131 -- Wool (Minecraft color scheme)
132 wool_white
= "wool:white",
133 wool_light_grey
= "wool:grey",
134 wool_grey
= "wool:dark_grey",
135 wool_blue
= "wool:blue",
136 wool_lime
= "wool:green",
137 wool_green
= "wool:dark_green",
138 wool_purple
= "wool:violet",
139 wool_pink
= "wool:pink",
140 wool_yellow
= "wool:yellow",
141 wool_orange
= "wool:orange",
142 wool_brown
= "wool:brown",
143 wool_red
= "wool:red",
144 wool_cyan
= "wool:cyan",
145 wool_magenta
= "wool:magenta",
146 wool_black
= "wool:black",
147 -- Light blue intentionally missing
150 music_discs
= {}, -- No music discs by default; used by creeper. Override this if your subgame has music discs.
153 -- Tables for attracting, feeding and breeding mobs
155 sheep
= { mobs_mc
.items
.wheat
},
156 cow
= { mobs_mc
.items
.wheat
},
157 chicken
= { "farming:seed_wheat", "farming:seed_cotton" }, -- seeds in general
158 parrot
= { "farming:seed_wheat", "farming:seed_cotton" }, -- seeds in general
159 horse
= { mobs_mc
.items
.apple
, mobs_mc
.items
.sugar
, mobs_mc
.items
.wheat
, mobs_mc
.items
.hay_bale
, mobs_mc
.items
.golden_apple
, mobs_mc
.items
.golden_carrot
},
160 pig
= { mobs_mc
.items
.potato
, mobs_mc
.items
.carrot
, mobs_mc
.items
.carrot_on_a_stick
,
161 mobs_mc
.items
.apple
, -- Minetest Game extra
163 rabbit
= { mobs_mc
.items
.dandelion
, mobs_mc
.items
.carrot
, mobs_mc
.items
.golden_carrot
, "farming_plus:carrot_item", },
164 ocelot
= { mobs_mc
.items
.fish_raw
, mobs_mc
.items
.salmon_raw
, mobs_mc
.items
.clownfish_raw
, mobs_mc
.items
.pufferfish_raw
,
165 mobs_mc
.items
.chicken_raw
, -- Minetest Game extra
167 wolf
= { mobs_mc
.items
.bone
},
168 dog
= { mobs_mc
.items
.rabbit_raw
, mobs_mc
.items
.rabbit_cooked
, mobs_mc
.items
.mutton_raw
, mobs_mc
.items
.mutton_cooked
, mobs_mc
.items
.beef_raw
, mobs_mc
.items
.beef_cooked
, mobs_mc
.items
.chicken_raw
, mobs_mc
.items
.chicken_cooked
, mobs_mc
.items
.rotten_flesh
,
170 "mobs:meat", "mobs:meat_raw" },
173 -- Contents for replace_what
175 -- Rabbits reduce carrot growth stage by 1
177 -- Farming Redo carrots
178 {"farming:carrot_8", "farming:carrot_7", 0},
179 {"farming:carrot_7", "farming:carrot_6", 0},
180 {"farming:carrot_6", "farming:carrot_5", 0},
181 {"farming:carrot_5", "farming:carrot_4", 0},
182 {"farming:carrot_4", "farming:carrot_3", 0},
183 {"farming:carrot_3", "farming:carrot_2", 0},
184 {"farming:carrot_2", "farming:carrot_1", 0},
185 {"farming:carrot_1", "air", 0},
186 -- Farming Plus carrots
187 {"farming_plus:carrot", "farming_plus:carrot_7", 0},
188 {"farming_plus:carrot_6", "farming_plus:carrot_5", 0},
189 {"farming_plus:carrot_5", "farming_plus:carrot_4", 0},
190 {"farming_plus:carrot_4", "farming_plus:carrot_3", 0},
191 {"farming_plus:carrot_3", "farming_plus:carrot_2", 0},
192 {"farming_plus:carrot_2", "farming_plus:carrot_1", 0},
193 {"farming_plus:carrot_1", "air", 0},
198 { "default:dirt_with_grass", "default:dirt", -1 },
200 { "default:grass_5", "air", 0 },
201 { "default:grass_4", "air", 0 },
202 { "default:grass_3", "air", 0 },
203 { "default:grass_2", "air", 0 },
204 { "default:grass_1", "air", 0 },
206 -- Silverfish populate stone, etc. with monster eggs
208 {"default:stone", "mobs_mc:monster_egg_stone", -1},
209 {"default:cobble", "mobs_mc:monster_egg_cobble", -1},
210 {"default:mossycobble", "mobs_mc:monster_egg_mossycobble", -1},
211 {"default:stonebrick", "mobs_mc:monster_egg_stonebrick", -1},
212 {"default:stone_block", "mobs_mc:monster_egg_stone_block", -1},
216 -- List of nodes which endermen can take
217 mobs_mc
.enderman_takable
= {
218 -- Generic handling, useful for entensions
219 "group:enderman_takable",
227 "default:dirt_with_grass",
228 "default:dirt_with_dry_grass",
229 "default:dirt_with_snow",
230 "default:dirt_with_rainforest_litter",
231 "default:dirt_with_grass_footsteps",
232 -- FIXME: For some reason, Minetest has a Lua error when an enderman tries to place a Minetest Game cactus.
233 -- Maybe this is because default:cactus has rotate_and_place?
234 -- "default:cactus", -- TODO: Re-enable cactus when it works again
237 "flowers:mushroom_red",
238 "flowers:mushroom_brown",
245 --[[ Table of nodes to replace when an enderman takes it.
246 If the enderman takes an indexed node, it the enderman will get the item in the value.
247 Table indexes: Original node, taken by enderman.
248 Table values: The item which the enderman *actually* gets
250 mobs_mc.enderman_node_replace = {
251 ["default:dirt_with_dry_grass"] = "default_dirt_with_grass",
253 -- This means, if the enderman takes a dirt with dry grass, he will get a dirt with grass
254 -- on his hand instead.
256 mobs_mc
.enderman_replace_on_take
= {} -- no replacements by default
258 -- A table which can be used to override block textures of blocks carried by endermen.
259 -- Only works for cube-shaped nodes and nodeboxes.
260 -- Key: itemstrings of the blocks to replace
261 -- Value: A table with the texture overrides (6 textures)
262 mobs_mc
.enderman_block_texture_overrides
= {
265 -- List of nodes on which mobs can spawn
267 solid
= { "group:cracky", "group:crumbly", "group:shovely", "group:pickaxey" }, -- spawn on "solid" nodes (this is mostly just guessing)
269 grassland
= { mobs_mc
.items
.grass_block
, "ethereal:prairie_dirt" },
270 savanna
= { "default:dirt_with_dry_grass" },
271 grassland_savanna
= { mobs_mc
.items
.grass_block
, "default:dirt_with_dry_grass" },
272 desert
= { "default:desert_sand", "group:sand" },
273 jungle
= { "default:dirt_with_rainforest_litter", "default:jungleleaves", "default:junglewood", "mcl_core:jungleleaves", "mcl_core:junglewood" },
274 snow
= { "default:snow", "default:snowblock", "default:dirt_with_snow" },
275 end_city
= { "default:sandstonebrick", "mcl_end:purpur_block", "mcl_end:end_stone" },
276 wolf
= { mobs_mc
.items
.grass_block
, "default:dirt_with_rainforest_litter", "default:dirt", "default:dirt_with_snow", "default:snow", "default:snowblock" },
277 village
= { "mg_villages:road" },
279 -- These probably don't need overrides
280 mushroom_island
= { mobs_mc
.items
.mycelium
, "mcl_core:mycelium" },
281 nether_fortress
= { mobs_mc
.items
.nether_brick_block
, "mcl_nether:nether_brick", "mcl_portals:nether_air" },
282 nether
= { mobs_mc
.items
.netherrack
, "mcl_nether:netherrack", "mcl_portals:nether_air" },
283 nether_portal
= { mobs_mc
.items
.nether_portal
, "mcl_portals:portal" },
284 water
= { mobs_mc
.items
.water_source
, "mcl_core:water_source", "default:water_source" },
287 -- This table contains important spawn height references for the mob spawn height.
288 -- Please base your mob spawn height on these numbers to keep things clean.
289 mobs_mc
.spawn_height
= {
290 water
= tonumber(minetest
.setting_get("water_level")) or 0, -- Water level in the Overworld
292 -- Overworld boundaries (inclusive)
293 overworld_min
= -2999,
294 overworld_max
= 31000,
296 -- Nether boundaries (inclusive)
300 -- End boundaries (inclusive)
306 shears_wear
= 276, -- Wear to add per shears usage (238 uses)
307 totem_fail_nodes
= {} -- List of nodes in which the totem of undying fails
310 -- Item name overrides from mobs_mc_gameconfig (if present)
311 if minetest
.get_modpath("mobs_mc_gameconfig") and mobs_mc
.override
then
312 local tables
= {"items", "follow", "replace", "spawn", "spawn_height", "misc"}
314 local tbl
= tables
[t
]
315 if mobs_mc
.override
[tbl
] then
316 for k
, v
in pairs(mobs_mc
.override
[tbl
]) do
322 if mobs_mc
.override
.enderman_takable
then
323 mobs_mc
.enderman_takable
= mobs_mc
.override
.enderman_takable
325 if mobs_mc
.override
.enderman_replace_on_take
then
326 mobs_mc
.enderman_replace_on_take
= mobs_mc
.override
.enderman_replace_on_take
328 if mobs_mc
.enderman_block_texture_overrides
then
329 mobs_mc
.enderman_block_texture_overrides
= mobs_mc
.override
.enderman_block_texture_overrides