Update mobs_mc, properly implement totem
[MineClone/MineClone2.git] / mods / ENTITIES / mobs_mc / 0_gameconfig.lua
blob9e1c1edb28826627d4de671133e53541527ca8ed
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". ]]
12 -- Standard items
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
18 mobs_mc.items = {}
20 mobs_mc.items = {
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",
33 egg = "mobs_mc: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",
64 -- External items
65 -- Mobs Redo
66 leather = "mobs:leather",
67 shears = "mobs:shears",
69 -- Minetest Game
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",
106 -- Boss items
107 wet_sponge = "default:gold_block", -- only dropped by elder guardian; there is no equivalent block in Minetest Game
109 -- Other
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
149 -- Special items
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
154 mobs_mc.follow = {
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,
169 -- Mobs Redo items
170 "mobs:meat", "mobs:meat_raw" },
173 -- Contents for replace_what
174 mobs_mc.replace = {
175 -- Rabbits reduce carrot growth stage by 1
176 rabbit = {
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},
195 -- Sheep eat grass
196 sheep = {
197 -- Grass Block
198 { "default:dirt_with_grass", "default:dirt", -1 },
199 -- “Tall Grass”
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
207 silverfish = {
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",
221 -- Generic nodes
222 "group:sand",
223 "group:flower",
225 -- Minetest Game
226 "default:dirt",
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
235 "default:gravel",
236 "default:clay",
237 "flowers:mushroom_red",
238 "flowers:mushroom_brown",
239 "tnt:tnt",
241 -- Nether mod
242 "nether:rack",
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
249 Example:
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
266 mobs_mc.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)
297 nether_min = -3369,
298 nether_max = -3000,
300 -- End boundaries (inclusive)
301 end_min = -6200,
302 end_max = -6000,
305 mobs_mc.misc = {
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"}
313 for t=1, #tables do
314 local tbl = tables[t]
315 if mobs_mc.override[tbl] then
316 for k, v in pairs(mobs_mc.override[tbl]) do
317 mobs_mc[tbl][k] = v
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