starlit  Diff

Differences From Artifact [c6867ae3a2]:

To Artifact [4823845880]:


   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  +}