Fix load-crash if _magnet_timer of item entity is uninizialized
[MineClone/MineClone2.git] / mods / ENTITIES / mobs_mc_gameconfig / init.lua
blobd504129b91c80bf28d53fbef1c54bfcaeb81c7fd
1 mobs_mc = {}
3 mobs_mc.override = {}
5 mobs_mc.override.items = {
6 blaze_rod = "mcl_mobitems:blaze_rod",
7 blaze_powder = "mcl_mobitems:blaze_powder",
8 chicken_raw = "mcl_mobitems:chicken",
9 chicken_cooked = "mcl_mobitems:cooked_chicken",
10 feather = "mcl_mobitems:feather",
11 beef_raw = "mcl_mobitems:beef",
12 beef_cooked = "mcl_mobitems:cooked_beef",
13 bowl = "mcl_core:bowl",
14 mushroom_stew = "mcl_mushrooms:mushroom_stew",
15 milk = "mcl_mobitems:milk_bucket",
16 dragon_egg = "mcl_end:dragon_egg",
17 egg = "mcl_throwing:egg",
18 ender_eye = "mcl_mobitems:ender_eye",
19 ghast_tear = "mcl_mobitems:ghast_tear",
20 saddle = "mcl_mobitems:saddle",
21 porkchop_raw = "mcl_mobitems:porkchop",
22 porkchop_cooked = "mcl_mobitems:cooked_porkchop",
23 carrot_on_a_stick = "mcl_mobitems:carrot_on_a_stick",
24 rabbit_raw = "mcl_mobitems:rabbit",
25 rabbit_cooked = "mcl_mobitems:cooked_rabbit",
26 rabbit_hide = "mcl_mobitems:rabbit_hide",
27 mutton_raw = "mcl_mobitems:mutton",
28 mutton_cooked = "mcl_mobitems:cooked_mutton",
29 shulker_shell = "mcl_mobitems:shulker_shell",
30 magma_cream = "mcl_mobitems:magma_cream",
31 spider_eye = "mcl_mobitems:spider_eye",
32 rotten_flesh = "mcl_mobitems:rotten_flesh",
33 snowball = "mcl_throwing:snowball",
34 top_snow = "mcl_core:snow",
35 snow_block = "mcl_core:snowblock",
36 arrow = "mcl_bows:arrow",
37 bow = "mcl_bows:bow",
38 head_zombie = "mcl_heads:zombie",
39 head_creeper = "mcl_heads:creeper",
40 head_skeleton = "mcl_heads:skeleton",
41 head_wither_skeleton = "mcl_heads:wither_skeleton",
43 leather = "mcl_mobitems:leather",
44 shears = "mcl_tools:shears",
46 mushroom_red = "mcl_mushrooms:mushroom_red",
47 bucket = "mcl_buckets:bucket_empty",
48 grass_block = "mcl_core:dirt_with_grass",
49 string = "mcl_mobitems:string",
50 stick = "mcl_core:stick",
51 flint = "mcl_core:flint",
52 iron_ingot = "mcl_core:iron_ingot",
53 iron_block = "mcl_core:ironblock",
54 fire = "mcl_fire:fire",
55 gunpowder = "mcl_mobitems:gunpowder",
56 flint_and_steel = "mcl_fire:flint_and_steel",
57 water_source = "mcl_core:water_source",
58 river_water_source = "mclx_core:river_water_source",
59 black_dye = "mcl_dye:black",
60 poppy = "mcl_flowers:poppy",
61 dandelion = "mcl_flowers:dandelion",
62 coal = "mcl_core:coal_lump",
63 emerald = "mcl_core:emerald",
64 iron_axe = "mcl_tools:axe_iron",
65 gold_sword = "mcl_tools:sword_gold",
66 gold_ingot = "mcl_core:gold_ingot",
67 gold_nugget = "mcl_core:gold_nugget",
68 glowstone_dust = "mcl_nether:glowstone_dust",
69 redstone = "mesecons:redstone",
70 glass_bottle = "mcl_potions:glass_bottle",
71 sugar = "mcl_core:sugar",
72 wheat = "mcl_farming:wheat_item",
73 cookie = "mcl_farming:cookie",
74 potato = "mcl_farming:potato_item",
75 hay_bale = "mcl_farming:hay_bale",
76 prismarine_shard = "mcl_ocean:prismarine_shard",
77 prismarine_crystals = "mcl_ocean:prismarine_crystals",
78 apple = "mcl_core:apple",
79 golden_apple = "mcl_core:apple_gold",
80 rabbit_foot = "mcl_mobitems:rabbit_foot",
81 wet_sponge = "mcl_sponges:sponge_wet",
83 -- Other
84 nether_brick_block = "mcl_nether:nether_brick",
85 netherrack = "mcl_nether:netherrack",
86 nether_star = "mcl_mobitems:nether_star",
87 mycelium = "mcl_core:mycelium",
88 carrot = "mcl_farming:carrot_item",
89 golden_carrot = "mcl_farming:carrot_item_gold",
90 fishing_rod = "mcl_core:stick",
91 --TODO: Re-enable: fishing_rod = "mcl_fishing:fishing_rod",
92 fish_raw = "mcl_fishing:fish_raw",
93 salmon_raw = "mcl_fishing:salmon_raw",
94 clownfish_raw = "mcl_fishing:clownfish_raw",
95 pufferfish_raw = "mcl_fishing:pufferfish_raw",
96 bone = "mcl_mobitems:bone",
97 slimeball = "mcl_mobitems:slimeball",
99 ender_pearl = "mcl_throwing:ender_pearl",
101 wool_white = "mcl_wool:white",
102 wool_light_grey = "mcl_wool:silver",
103 wool_grey = "mcl_wool:grey",
104 wool_blue = "mcl_wool:blue",
105 wool_lime = "mcl_wool:lime",
106 wool_green = "mcl_wool:green",
107 wool_purple = "mcl_wool:purple",
108 wool_pink = "mcl_wool:pink",
109 wool_yellow = "mcl_wool:yellow",
110 wool_orange = "mcl_wool:orange",
111 wool_brown = "mcl_wool:brown",
112 wool_red = "mcl_wool:red",
113 wool_cyan = "mcl_wool:cyan",
114 wool_magenta = "mcl_wool:magenta",
115 wool_black = "mcl_wool:black",
116 wool_light_blue = "mcl_wool:light_blue",
118 music_discs = {
119 "mcl_jukebox:record_1",
120 "mcl_jukebox:record_2",
121 "mcl_jukebox:record_3",
122 "mcl_jukebox:record_4",
123 "mcl_jukebox:record_5",
124 "mcl_jukebox:record_6",
125 "mcl_jukebox:record_7",
126 "mcl_jukebox:record_8",
127 "mcl_jukebox:record_9",
131 mobs_mc.override.follow = {
132 chicken = { "mcl_farming:wheat_seeds", "mcl_farming:melon_seeds", "mcl_farming:pumpkin_seeds", "mcl_farming:beetroot_seeds", },
133 parrot = { "mcl_farming:seed_wheat", "mcl_farming:seed_beetroot", "mcl_farming:seed_pumpkin", "mcl_farming:seed_melon" }, -- seeds in general
134 pig = { mobs_mc.override.items.potato, mobs_mc.override.items.carrot, "mcl_farming:beetroot_item", mobs_mc.override.items.carrot_on_a_stick},
135 ocelot = { mobs_mc.override.items.fish_raw, mobs_mc.override.items.salmon_raw, mobs_mc.override.items.clownfish_raw, mobs_mc.override.items.pufferfish_raw, },
136 sheep = { mobs_mc.override.items.wheat },
137 cow = { mobs_mc.override.items.wheat },
138 horse = { mobs_mc.override.items.apple, mobs_mc.override.items.sugar, mobs_mc.override.items.wheat, mobs_mc.override.items.hay_bale, mobs_mc.override.items.golden_apple, mobs_mc.override.items.golden_carrot },
139 rabbit = { mobs_mc.override.items.dandelion, mobs_mc.override.items.carrot, mobs_mc.override.items.golden_carrot },
142 mobs_mc.override.replace = {
143 -- Rabbits reduce carrot growth stage by 1
144 rabbit = {
145 {"mcl_farming:carrot", "mcl_farming:carrot_7", 0},
146 {"mcl_farming:carrot_7", "mcl_farming:carrot_6", 0},
147 {"mcl_farming:carrot_6", "mcl_farming:carrot_5", 0},
148 {"mcl_farming:carrot_5", "mcl_farming:carrot_4", 0},
149 {"mcl_farming:carrot_4", "mcl_farming:carrot_3", 0},
150 {"mcl_farming:carrot_3", "mcl_farming:carrot_2", 0},
151 {"mcl_farming:carrot_2", "mcl_farming:carrot_1", 0},
152 {"mcl_farming:carrot_1", "air", 0},
154 -- Sheep eat grass
155 sheep = {
156 { "mcl_core:dirt_with_grass", "mcl_core:dirt", -1 },
157 { "mcl_core:dirt_with_dry_grass", "mcl_core:dirt", -1 },
158 { "mcl_flowers:tallgrass", "air", 0 },
160 -- Silverfish populate stone, etc. with monster eggs
161 silverfish = {
162 {"mcl_core:stone", "mcl_monster_eggs:monster_egg_stone", -1},
163 {"mcl_core:cobble", "mcl_monster_eggs:monster_egg_cobble", -1},
164 {"mcl_core:stonebrick", "mcl_monster_eggs:monster_egg_stonebrick", -1},
165 {"mcl_core:stonebrickmossy", "mcl_monster_eggs:monster_egg_stonebrickmossy", -1},
166 {"mcl_core:stonebrickcracked", "mcl_monster_eggs:monster_egg_stonebrickcracked", -1},
167 {"mcl_core:stonebrickcarved", "mcl_monster_eggs:monster_egg_stonebrickcarved", -1},
171 -- List of nodes which endermen can take
172 mobs_mc.override.enderman_takable = {
173 -- Generic handling, useful for entensions
174 "group:enderman_takable",
176 mobs_mc.override.enderman_replace_on_take = {
177 ["mcl_core:dirt_with_dry_grass"] = "mcl_core:dirt_with_grass",
179 mobs_mc.override.misc = {
180 totem_fail_nodes = { "mcl_core:void", "mcl_core:realm_barrier" },
183 -- Texuture overrides for enderman block. Required for cactus because it's original is a nodebox
184 -- and the textures have tranparent pixels.
185 local cbackground = "mobs_mc_gameconfig_enderman_cactus_background.png"
186 local ctiles = minetest.registered_nodes["mcl_core:cactus"].tiles
188 local ctable = {}
189 local last
190 for i=1, 6 do
191 if ctiles[i] then
192 last = ctiles[i]
194 table.insert(ctable, cbackground .. "^" .. last)
196 mobs_mc.override.enderman_block_texture_overrides = {
197 ["mcl_core:cactus"] = ctable,
200 -- List of nodes on which mobs can spawn
201 mobs_mc.override.spawn = {
202 solid = { "group:solid", }, -- spawn on "solid" nodes
203 grassland = { "mcl_core:dirt_with_grass" },
204 savanna = { "mcl_core:dirt_with_dry_grass" },
205 grassland_savanna = { "mcl_core:dirt_with_grass", "mcl_core:dirt_with_dry_grass" },
206 desert = { "mcl_core:sand", "mcl_core:sandstone" },
207 jungle = { "mcl_core:jungletree", "mcl_core:jungleleaves", "mcl_flowers:fern", "mcl_core:vine" },
208 snow = { "mcl_core:snow", "mcl_core:snowblock", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow" },
209 -- End stone added for shulkers because End cities don't generate yet
210 end_city = { "mcl_end:end_stone", "mcl_end:purpur_block" },
211 nether = { "mcl_nether:netherrack", "mcl_nether:quartz_ore" },
212 -- Netherrack added because there are no Nether fortresses yet. TODO: Remove netherrac from list as soon they're available
213 nether_fortress = { "mcl_nether:nether_brick", "mcl_nether:netherrack" },
214 wolf = { mobs_mc.override.items.grass_block, "mcl_core:dirt", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol" },
217 -- This table contains important spawn height references for the mob spawn height.
218 mobs_mc.override.spawn_height = {
219 water = tonumber(minetest.setting_get("water_level")) or 0, -- Water level in the Overworld
221 -- Overworld boundaries (inclusive)
222 overworld_min = mcl_vars.mg_overworld_min,
223 overworld_max = mcl_vars.mg_overworld_max,
225 -- Nether boundaries (inclusive)
226 nether_min = mcl_vars.mg_nether_min,
227 nether_max = mcl_vars.mg_nether_max,
229 -- End boundaries (inclusive)
230 end_min = mcl_vars.mg_end_min,
231 end_max = mcl_vars.mg_end_max,