Differences From
Artifact [c6867ae3a2]:
137 137 base.node_dig_prediction = stageID(st.swap)
138 138 function base.after_dig_node(pos, node, digger)
139 139 node.name = stageID(st.swap)
140 140 minetest.swap_node(pos, node)
141 141 return true
142 142 end
143 143 end
144 - if st.biolum then
145 - base.light_source = math.floor(st.biolum * (n/stageCt))
146 - end
144 + if st.biolum then base.light_source = st.biolum; end
147 145 return base
148 146 end
149 147 for i, v in ipairs(b.stages) do
150 148 local n = regStage(i, v)
151 - b.stageNodes[i] = n
152 149 minetest.register_node(stageID(i), n)
150 + b.stageNodes[i] = stageID(i)
153 151 end
154 152 b.fullyGrown = stageID(stageCt)
155 153
156 154 local dec = {
157 155 deco_type = 'simple';
158 - decoration = b.fullyGrown;
156 + decoration = b.stageNodes;
159 157 height = 1;
160 158 param2 = b.meshOpt or 0;
161 159 }
162 160 for k,v in pairs(b.decoration) do dec[k] = v end
163 161 b.decoration = minetest.register_decoration(dec)
164 162 end)
165 163
................................................................................
231 229 end
232 230 -- for every degree of difference you suffer 2 points of damage/s
233 231 local dmg = math.ceil(dv * 2)
234 232 user:statDelta('health', -dmg)
235 233 end
236 234 end
237 235 end)
236 +
237 +
238 +world.ecology.trees.foreach('starlit:tree-gen', {}, function(id, t)
239 + local dec = {
240 + deco_type = 'lsystem';
241 + treedef = t.def;
242 + }
243 + for k,v in pairs(t.decorate) do dec[k]=v end
244 + minetest.register_decoration(dec)
245 +end)
246 +
247 +minetest.register_abm {
248 + label = "plant growth";
249 + nodenames = {'group:plant_grow'};
250 + chance = 15;
251 + interval = 20;
252 + catch_up = true;
253 + action = function(pos, node)
254 + local def = minetest.registered_nodes[node.name]._starlit.plant
255 + local plant = starlit.world.ecology.plants.db[def.id]
256 + local nextStage = plant.stageNodes[def.stage + 1]
257 + minetest.swap_node(pos, {name=nextStage})
258 + end;
259 +}