Compare commits
	
		
			16 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 06a3ca6265 | |||
| 0cbc98900a | |||
| 0a06acc1d8 | |||
|  | c129dea077 | ||
| a9cac59e4c | |||
| 11f39382ef | |||
| b500873215 | |||
| 0e277c51fb | |||
| 36d76ca7fb | |||
|  | efe57c3137 | ||
|  | ee1eb7d8ce | ||
|  | 32e3f8928b | ||
|  | c515b58ca1 | ||
|  | 8bf04f444e | ||
|  | dd3a7d13c7 | ||
|  | fef074b9ed | 
| @@ -13,7 +13,7 @@ minetest.register_node("witchcraft:brewing_stand", { | |||||||
| 		"witchcraft_brewing_stand_side.png" | 		"witchcraft_brewing_stand_side.png" | ||||||
| 	}, | 	}, | ||||||
| 	drawtype = "nodebox", | 	drawtype = "nodebox", | ||||||
| 	use_texture_alpha = true, | 	use_texture_alpha = "blend", | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	drop = { | 	drop = { | ||||||
| 		items = { | 		items = { | ||||||
| @@ -36,14 +36,14 @@ minetest.register_node("witchcraft:brewing_stand", { | |||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 	on_rightclick = function(pos, node, clicker, item, _) | 	on_rightclick = function(pos, node, clicker, item, _) | ||||||
| 		local wield_item = clicker:get_wielded_item():get_name() | 		local wield_item = item:get_name() | ||||||
| 		local new_item = wield_item.."_2" | 		local new_item = wield_item.."_2" | ||||||
| 		if minetest.get_item_group(wield_item, "potion") ~= 0 then | 		if minetest.get_item_group(wield_item, "potion") ~= 0 then | ||||||
| 			minetest.set_node(pos, {name="witchcraft:brewing_stand_active", param2=node.param2}) | 			minetest.set_node(pos, {name="witchcraft:brewing_stand_active", param2=node.param2}) | ||||||
| 			item:take_item() | 			item:take_item() | ||||||
| 			minetest.after(30, function() | 			minetest.after(30, function() | ||||||
| 			minetest.set_node(pos, {name="witchcraft:brewing_stand_unready", param2=node.param2}) | 				minetest.set_node(pos, {name="witchcraft:brewing_stand_unready", param2=node.param2}) | ||||||
| 			minetest.add_item(pos, new_item) | 				minetest.add_item(pos, new_item) | ||||||
| 			end) | 			end) | ||||||
| 		end | 		end | ||||||
| 	end, | 	end, | ||||||
| @@ -59,7 +59,7 @@ minetest.register_node("witchcraft:brewing_stand_active", { | |||||||
| 		"witchcraft_brewing_stand_side.png" | 		"witchcraft_brewing_stand_side.png" | ||||||
| 	}, | 	}, | ||||||
| 	drawtype = "nodebox", | 	drawtype = "nodebox", | ||||||
| 	use_texture_alpha = true, | 	use_texture_alpha = "blend", | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	light_source = 1,  | 	light_source = 1,  | ||||||
| 	drop = { | 	drop = { | ||||||
| @@ -96,7 +96,7 @@ minetest.register_node("witchcraft:brewing_stand_unready", { | |||||||
| 	}, | 	}, | ||||||
| 	inventory_image = "witchcraft_brewing_stand_inv.png", | 	inventory_image = "witchcraft_brewing_stand_inv.png", | ||||||
| 	drawtype = "nodebox", | 	drawtype = "nodebox", | ||||||
| 	use_texture_alpha = true, | 	use_texture_alpha = "blend", | ||||||
| 	paramtype = "light", | 	paramtype = "light", | ||||||
| 	light_source = 1,  | 	light_source = 1,  | ||||||
| 	drop = { | 	drop = { | ||||||
| @@ -120,7 +120,7 @@ minetest.register_node("witchcraft:brewing_stand_unready", { | |||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| 	on_rightclick = function(pos, node, clicker, item, _) | 	on_rightclick = function(pos, node, clicker, item, _) | ||||||
| 		local wield_item = clicker:get_wielded_item():get_name() | 		local wield_item = item:get_name() | ||||||
| 		if wield_item == "default:mese_crystal_fragment" then | 		if wield_item == "default:mese_crystal_fragment" then | ||||||
| 			minetest.set_node(pos, {name="witchcraft:brewing_stand", param2=node.param2}) | 			minetest.set_node(pos, {name="witchcraft:brewing_stand", param2=node.param2}) | ||||||
| 			item:take_item() | 			item:take_item() | ||||||
| @@ -161,4 +161,4 @@ minetest.register_craft({ | |||||||
| 		{'group:stick', 'default:diamond', 'group:stick'}, | 		{'group:stick', 'default:diamond', 'group:stick'}, | ||||||
| 		{'', 'default:obsidian_shard', ''}, | 		{'', 'default:obsidian_shard', ''}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -2,11 +2,12 @@ default | |||||||
| vessels | vessels | ||||||
| tnt | tnt | ||||||
| fire | fire | ||||||
| player_physics |  | ||||||
| playereffects | playereffects | ||||||
|  | player_monoids? | ||||||
| farming? | farming? | ||||||
| lightning? | lightning? | ||||||
| pmobs? | pmobs? | ||||||
| hud_hunger? | hud_hunger? | ||||||
|  | hunger_ng? | ||||||
| moreplants? | moreplants? | ||||||
| horror? | horror? | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | name = witchcraft | ||||||
|  | depends = default,vessels,tnt,fire,playereffects | ||||||
|  | optional_depends = player_monoids,farming,lightning,pmobs,hud_hunger,hunger_ng,moreplants,horror | ||||||
							
								
								
									
										
											BIN
										
									
								
								screenshot.png
									
									
									
									
									
								
							
							
						
						| Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 22 KiB | 
							
								
								
									
										508
									
								
								scrolls.lua
									
									
									
									
									
								
							
							
						
						| @@ -1,21 +1,17 @@ | |||||||
| --scrolls | --scrolls | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll_day", { | ||||||
| 	"witchcraft:scroll_day", | 		 description = "Scroll of day", | ||||||
| 	{ | 		 inventory_image = "witchcraft_scroll.png^witchcraft_sun_over.png", | ||||||
| 		description = "Scroll of day", | 		 stack_max = 1, | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_sun_over.png", | 		 on_use = function(item) | ||||||
| 		stack_max = 1, | 			 minetest.set_timeofday(0.5) | ||||||
| 		on_use = function(item) | 			 item:take_item() | ||||||
| 			minetest.set_timeofday(0.5) | 			 return item | ||||||
| 			item:take_item() | 		 end, | ||||||
| 			return item | }) | ||||||
| 		end, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll_night", { | ||||||
| 	"witchcraft:scroll_night", |  | ||||||
| 	{ |  | ||||||
| 		description = "Scroll of night", | 		description = "Scroll of night", | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_moon_over.png", | 		inventory_image = "witchcraft_scroll.png^witchcraft_moon_over.png", | ||||||
| 		stack_max = 1, | 		stack_max = 1, | ||||||
| @@ -24,252 +20,230 @@ minetest.register_craftitem( | |||||||
| 			item:take_item() | 			item:take_item() | ||||||
| 			return item | 			return item | ||||||
| 		end, | 		end, | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| if minetest.get_modpath("pmobs") then | if minetest.get_modpath("pmobs")then | ||||||
| 	minetest.register_craftitem( | 	minetest.register_craftitem("witchcraft:scroll_wild", { | ||||||
| 		"witchcraft:scroll_wild", | 		description = "Scroll of Wild", | ||||||
| 		{ | 		inventory_image = "witchcraft_scroll.png^witchcraft_dark_over.png", | ||||||
| 			description = "Scroll of Wild", |  | ||||||
| 			inventory_image = "witchcraft_scroll.png^witchcraft_dark_over.png", |  | ||||||
| 			stack_max = 1, |  | ||||||
| 			on_use = function(item, placer) |  | ||||||
| 				local pos = placer:getpos(); |  | ||||||
| 				minetest.add_entity(pos, "pmobs:dog") |  | ||||||
| 				item:take_item() |  | ||||||
| 				return item |  | ||||||
| 			end, |  | ||||||
| 		}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| minetest.register_craftitem( |  | ||||||
| 	"witchcraft:scroll_fireball", |  | ||||||
| 	{ |  | ||||||
| 		description = "Scroll of fireball", |  | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_fire_over.png", |  | ||||||
| 		stack_max = 1, | 		stack_max = 1, | ||||||
| 		on_use = function(item, placer, pos) | 		on_use = function(item, placer) | ||||||
| 			local dir = placer:get_look_dir(); | 			local pos = placer:get_pos() | ||||||
| 			local playerpos = placer:getpos(); | 			minetest.add_entity(pos, "pmobs:dog") | ||||||
| 			local obj = minetest.add_entity( |  | ||||||
| 				{x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, |  | ||||||
| 				"witchcraft:fireball") |  | ||||||
| 			local obj2 = minetest.add_entity( |  | ||||||
| 				{x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, |  | ||||||
| 				"witchcraft:fireball") |  | ||||||
| 			local obj3 = minetest.add_entity( |  | ||||||
| 				{x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, |  | ||||||
| 				"witchcraft:fireball") |  | ||||||
| 			local obj4 = minetest.add_entity( |  | ||||||
| 				{x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, |  | ||||||
| 				"witchcraft:fireball") |  | ||||||
| 			obj2:setvelocity({x=dir.x*7+0.5,y=dir.y*7,z=dir.z*7+0.5}) |  | ||||||
| 			obj3:setvelocity({x=dir.x*7-0.5,y=dir.y*7,z=dir.z*7-0.5}) |  | ||||||
| 			obj4:setvelocity({x=dir.x*7,y=dir.y*7-0.5,z=dir.z*7}) |  | ||||||
| 			obj:setvelocity({x=dir.x*7,y=dir.y*7+0.5,z=dir.z*7}) |  | ||||||
| 			item:take_item() | 			item:take_item() | ||||||
| 			return item | 			return item | ||||||
| 		end, | 		end, | ||||||
| 	}) | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | minetest.register_craftitem("witchcraft:scroll_fireball", { | ||||||
|  | 		description = "Scroll of fireball", | ||||||
|  | 		inventory_image = "witchcraft_scroll.png^witchcraft_fire_over.png", | ||||||
|  | 		stack_max = 1, | ||||||
|  | 		on_use = function(item, placer, pointed_thing) | ||||||
|  | 			local dir = placer:get_look_dir() | ||||||
|  | 			local playerpos = placer:get_pos() | ||||||
|  | 			local entities = {} | ||||||
|  | 			for i=1,4 do | ||||||
|  | 				entities[i] = minetest.add_entity({ | ||||||
|  | 						x=playerpos.x+dir.x*1.5, | ||||||
|  | 						y=playerpos.y+1.5+dir.y, | ||||||
|  | 						z=playerpos.z+0+dir.z | ||||||
|  | 					}, "witchcraft:fireball") | ||||||
|  | 			end | ||||||
|  | 			entities[2]:set_velocity({x=dir.x*7+0.5,y=dir.y*7,z=dir.z*7+0.5}) | ||||||
|  | 			entities[3]:set_velocity({x=dir.x*7-0.5,y=dir.y*7,z=dir.z*7-0.5}) | ||||||
|  | 			entities[4]:set_velocity({x=dir.x*7,y=dir.y*7-0.5,z=dir.z*7}) | ||||||
|  | 			entities[1]:set_velocity({x=dir.x*7,y=dir.y*7+0.5,z=dir.z*7}) | ||||||
|  | 			item:take_item() | ||||||
|  | 			return item | ||||||
|  | 		end, | ||||||
|  | }) | ||||||
|  |  | ||||||
| if minetest.get_modpath("lightning") then | if minetest.get_modpath("lightning") then | ||||||
| 	minetest.register_craftitem( | 	minetest.register_craftitem("witchcraft:scroll_lightning", { | ||||||
| 		"witchcraft:scroll_lightning", |  | ||||||
| 		{ |  | ||||||
| 			description = "Scroll of lightning", | 			description = "Scroll of lightning", | ||||||
| 			inventory_image = "witchcraft_scroll.png^witchcraft_thunder_over.png", | 			inventory_image = "witchcraft_scroll.png^witchcraft_thunder_over.png", | ||||||
| 			stack_max = 1, | 			stack_max = 1, | ||||||
| 			on_use = function(item, placer, pos) | 			on_use = function(item, placer, pointed_thing) | ||||||
| 				local playerpos = placer:getpos(); | 				local playerpos = placer:get_pos() | ||||||
| 				local dir = placer:get_look_dir(); | 				local dir = placer:get_look_dir() | ||||||
| 				lightning.strike({x=playerpos.x+dir.x*2,y=playerpos.y+0+dir.y,z=playerpos.z+dir.z*2}) | 				lightning.strike({x=playerpos.x+dir.x*2,y=playerpos.y+0+dir.y,z=playerpos.z+dir.z*2}) | ||||||
| 				item:take_item() | 				item:take_item() | ||||||
| 				return item | 				return item | ||||||
| 			end, | 			end, | ||||||
| 		}) | 	}) | ||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll_icicle", { | ||||||
| 	"witchcraft:scroll_icicle", |  | ||||||
| 	{ |  | ||||||
| 		description = "Scroll of icicle", | 		description = "Scroll of icicle", | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_ice_over.png", | 		inventory_image = "witchcraft_scroll.png^witchcraft_ice_over.png", | ||||||
| 		stack_max = 1, | 		stack_max = 1, | ||||||
| 		on_use = function(item, placer, pos) | 		on_use = function(item, placer, pointed_thing) | ||||||
| 			local dir = placer:get_look_dir(); | 			local dir = placer:get_look_dir() | ||||||
| 			local playerpos = placer:getpos(); | 			local playerpos = placer:get_pos() | ||||||
| 			local vec = {x=dir.x*7,y=dir.y*7,z=dir.z*7} | 			local vec = {x=dir.x*7,y=dir.y*7,z=dir.z*7} | ||||||
| 			local obj = minetest.add_entity({x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, "witchcraft:ice") | 			local obj = minetest.add_entity({ | ||||||
| 			local obj2 = minetest.add_entity({x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+1+dir.z}, "witchcraft:ice") | 					x=playerpos.x+dir.x*1.5, | ||||||
| 			local obj3 = minetest.add_entity({x=playerpos.x+1+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, "witchcraft:ice") | 					y=playerpos.y+1.5+dir.y, | ||||||
| 			obj:setvelocity(vec) | 					z=playerpos.z+0+dir.z | ||||||
| 			obj2:setvelocity(vec) | 				}, "witchcraft:ice") | ||||||
| 			obj3:setvelocity(vec) | 			local obj2 = minetest.add_entity({ | ||||||
| 			 | 					x=playerpos.x+dir.x*1.5, | ||||||
|  | 					y=playerpos.y+1.5+dir.y, | ||||||
|  | 					z=playerpos.z+1+dir.z | ||||||
|  | 				}, "witchcraft:ice") | ||||||
|  | 			local obj3 = minetest.add_entity({ | ||||||
|  | 					x=playerpos.x+1+dir.x*1.5, | ||||||
|  | 					y=playerpos.y+1.5+dir.y, | ||||||
|  | 					z=playerpos.z+0+dir.z | ||||||
|  | 				}, "witchcraft:ice") | ||||||
|  | 			obj:set_velocity(vec) | ||||||
|  | 			obj2:set_velocity(vec) | ||||||
|  | 			obj3:set_velocity(vec) | ||||||
| 			item:take_item() | 			item:take_item() | ||||||
| 			return item | 			return item | ||||||
| 		end, | 		end, | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll_nature", { | ||||||
| 	"witchcraft:scroll_nature", |  | ||||||
| 	{ |  | ||||||
| 		description = "Scroll of nature", | 		description = "Scroll of nature", | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_leaf_over.png", | 		inventory_image = "witchcraft_scroll.png^witchcraft_leaf_over.png", | ||||||
| 		stack_max = 1, | 		stack_max = 1, | ||||||
| 		on_use = function(item, placer, pos) | 		on_use = function(item, placer, pointed_thing) | ||||||
| 			local dir = placer:get_look_dir(); | 			local dir = placer:get_look_dir() | ||||||
| 			local playerpos = placer:getpos(); | 			local playerpos = placer:get_pos() | ||||||
| 			local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6} | 			local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6} | ||||||
| 			local obj = minetest.add_entity({x=playerpos.x+dir.x*1.5,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, "witchcraft:tree") | 			local obj = minetest.add_entity({ | ||||||
| 			obj:setvelocity(vec) | 					x=playerpos.x+dir.x*1.5, | ||||||
| 			 | 					y=playerpos.y+1.5+dir.y, | ||||||
|  | 					z=playerpos.z+0+dir.z | ||||||
|  | 				}, "witchcraft:tree") | ||||||
|  | 			obj:set_velocity(vec) | ||||||
| 			item:take_item() | 			item:take_item() | ||||||
| 			return item | 			return item | ||||||
| 		end, | 		end, | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll", { | ||||||
| 	"witchcraft:scroll", |  | ||||||
| 	{ |  | ||||||
| 		description = "Blank Scroll", | 		description = "Blank Scroll", | ||||||
| 		inventory_image = "witchcraft_scroll.png", | 		inventory_image = "witchcraft_scroll.png", | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craftitem( | minetest.register_craftitem("witchcraft:scroll_recipe", { | ||||||
| 	"witchcraft:scroll_recipe", |  | ||||||
| 	{ |  | ||||||
| 		description = "Recipe Scroll", | 		description = "Recipe Scroll", | ||||||
| 		inventory_image = "witchcraft_scroll.png^witchcraft_writing_over.png", | 		inventory_image = "witchcraft_scroll.png^witchcraft_writing_over.png", | ||||||
| 		on_use = function(itemstack, user, pointed_thing)			 | 		on_use = function(itemstack, user, pointed_thing)									  | ||||||
| 			local formspec = "size[10,9]".. | 			local formspec = "size[10,9]".. | ||||||
| 				"background[-0.6,-0.5;11.5,10.4;witchcraft_recipes.png]"; | 				"background[-0.6,-0.5;11.5,10.4;witchcraft_recipes.png]"											  | ||||||
| 			 | 			minetest.show_formspec(user:get_player_name(), "witchcraft:scroll", formspec)	 | ||||||
| 			minetest.show_formspec(user:get_player_name(), "witchcraft:scroll", formspec);	 |  | ||||||
| 		end, | 		end, | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| if minetest.get_modpath("pmobs")then | if minetest.get_modpath("pmobs")then | ||||||
| 	minetest.register_craft( | 	minetest.register_craft({ | ||||||
| 		{ |  | ||||||
| 			output = 'witchcraft:scroll_wild', | 			output = 'witchcraft:scroll_wild', | ||||||
| 			recipe = { | 			recipe = { | ||||||
| 				{'mobs:meat_raw'}, | 				{'mobs:meat_raw'}, | ||||||
| 				{'witchcraft:scroll'}, | 				{'witchcraft:scroll'}, | ||||||
| 			} | 			} | ||||||
| 		}) | 	}) | ||||||
| 	 |  | ||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll', | 		output = 'witchcraft:scroll', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:paper', 'default:paper', ''}, | 			{'default:paper', 'default:paper', ''}, | ||||||
| 			{'default:paper', 'default:paper', ''}, | 			{'default:paper', 'default:paper', ''}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_recipe', | 		output = 'witchcraft:scroll_recipe', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'dye:black'}, | 			{'dye:black'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_icicle', | 		output = 'witchcraft:scroll_icicle', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:ice'}, | 			{'default:ice'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_fireball', | 		output = 'witchcraft:scroll_fireball', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:obsidian_shard'}, | 			{'default:obsidian_shard'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_nature', | 		output = 'witchcraft:scroll_nature', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:leaves'}, | 			{'default:leaves'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_day', | 		output = 'witchcraft:scroll_day', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:torch'}, | 			{'default:torch'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| minetest.register_craft( | minetest.register_craft({ | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_night', | 		output = 'witchcraft:scroll_night', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:coal_lump'}, | 			{'default:coal_lump'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
|  | minetest.register_craft({ | ||||||
| minetest.register_craft( |  | ||||||
| 	{ |  | ||||||
| 		output = 'witchcraft:scroll_lightning', | 		output = 'witchcraft:scroll_lightning', | ||||||
| 		recipe = { | 		recipe = { | ||||||
| 			{'default:steel_ingot'}, | 			{'default:steel_ingot'}, | ||||||
| 			{'default:diamond'}, | 			{'default:diamond'}, | ||||||
| 			{'witchcraft:scroll'}, | 			{'witchcraft:scroll'}, | ||||||
| 		} | 		} | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
| --scroll powers | --scroll powers | ||||||
|  |  | ||||||
| minetest.register_entity( | minetest.register_entity("witchcraft:fireball", { | ||||||
| 	"witchcraft:fireball", |  | ||||||
| 	{ |  | ||||||
| 		textures = {"tnt_boom.png"}, | 		textures = {"tnt_boom.png"}, | ||||||
| 		velocity = 0.1, | 		velocity = 0.1, | ||||||
| 		damage = 2, | 		damage = 2, | ||||||
| 		collisionbox = {0, 0, 0, 0, 0, 0}, | 		collisionbox = {0, 0, 0, 0, 0, 0}, | ||||||
| 		on_step = function(self, obj, pos)		 | 		on_step = function(self, obj, pos)		 | ||||||
| 			local remove = minetest.after( | 			local remove = minetest.after(2, function()  | ||||||
| 				2, |  | ||||||
| 				function()  |  | ||||||
| 					self.object:remove() | 					self.object:remove() | ||||||
| 				end) | 			end) | ||||||
| 			local pos = self.object:getpos() | 			local pos = self.object:get_pos() | ||||||
| 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | ||||||
| 			for k, obj in pairs(objs) do | 			for k, obj in pairs(objs) do | ||||||
| 				if obj:get_luaentity() ~= nil then | 				if obj:get_luaentity() then | ||||||
| 					if obj:get_luaentity().name ~= "witchcraft:fireball" | 					if obj:get_luaentity().name ~= "witchcraft:fireball" | ||||||
| 						and obj:get_luaentity().name ~= "__builtin:item" | 						and obj:get_luaentity().name ~= "__builtin:item" | ||||||
| 						and obj:get_luaentity().name ~= "gauges:hp_bar" | 					and obj:get_luaentity().name ~= "gauges:hp_bar" then | ||||||
| 					then | 						obj:punch(self.object, 1.0, { | ||||||
| 						obj:punch( |  | ||||||
| 							self.object, 1.0, |  | ||||||
| 							{ |  | ||||||
| 								full_punch_interval=1.0, | 								full_punch_interval=1.0, | ||||||
| 								damage_groups={fleshy=3}, | 								damage_groups={fleshy=3}, | ||||||
| 							}, nil) | 							}, nil) | ||||||
| 						self.object:remove() | 						self.object:remove() | ||||||
|  | 						return | ||||||
| 					end | 					end | ||||||
| 				end | 				end | ||||||
| 			end | 			end | ||||||
| @@ -279,9 +253,8 @@ minetest.register_entity( | |||||||
| 						local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz} | 						local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz} | ||||||
| 						local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} | 						local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} | ||||||
| 						local n = minetest.get_node(p).name | 						local n = minetest.get_node(p).name | ||||||
| 						if n ~= "witchcraft:fireball" and n ~="default:dirt_with_grass" | 						if n ~= "witchcraft:fireball" and n ~="default:dirt_with_grass" then	 | ||||||
| 						and n ~="default:dirt_with_dry_grass" and n ~="default:stone" then	 | 							if minetest.registered_nodes[n].groups.flammable then | ||||||
| 							if minetest.registered_nodes[n].groups.flammable --[[or math.random(1, 100) <= 1]] then |  | ||||||
| 								minetest.set_node(t, {name="fire:basic_flame"}) | 								minetest.set_node(t, {name="fire:basic_flame"}) | ||||||
| 								self.object:remove() | 								self.object:remove() | ||||||
| 								return | 								return | ||||||
| @@ -290,124 +263,77 @@ minetest.register_entity( | |||||||
| 					end | 					end | ||||||
| 				end | 				end | ||||||
| 			end | 			end | ||||||
| 			hit_node = function(self, pos, node) |  | ||||||
| 				--	local pos = self.object:getpos() |  | ||||||
| 				for dx=-4,4 do |  | ||||||
| 					for dy=-4,4 do |  | ||||||
| 						for dz=-4,4 do |  | ||||||
| 							local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} |  | ||||||
| 							local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} |  | ||||||
| 							local n = minetest.get_node(pos).name |  | ||||||
| 							if math.random(1, 50) <= 35 then |  | ||||||
| 								minetest.remove_node(p) |  | ||||||
| 							end |  | ||||||
| 							if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <=5 then |  | ||||||
| 								minetest.set_node(t, {name="fire:basic_flame"}) |  | ||||||
| 							end |  | ||||||
| 						end |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
|  |  | ||||||
| 			local apos = self.object:getpos() | 			local vec = self.object:get_velocity() | ||||||
| 			local vec = self.object:getvelocity() | 			minetest.add_particlespawner({ | ||||||
| 			local part = minetest.add_particlespawner( | 				amount = 6, | ||||||
| 				6, --amount | 				time = 0.3, | ||||||
| 				0.3, --time | 				minpos = {x=pos.x-0.3, y=pos.y-0.3, z=pos.z-0.3}, | ||||||
| 				{x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos | 				maxpos = {x=pos.x+0.3, y=pos.y+0.3, z=pos.z+0.3}, | ||||||
| 				{x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos | 				minvel = {x=-0, y=-0, z=-0}, | ||||||
| 				{x=-0, y=-0, z=-0}, --minvel | 				maxvel = {x=0, y=0, z=0}, | ||||||
| 				{x=0, y=0, z=0}, --maxvel | 				minacc = {x=0,y=-0.5,z=0}, | ||||||
| 				{x=0,y=-0.5,z=0}, --minacc | 				maxacc = {x=-vec.x,y=-vec.y,z=-vec.z}, | ||||||
| 				{x=-vec.x,y=-vec.y,z=-vec.z}, --maxacc | 				minexptime = 0.1, | ||||||
| 				0.1, --minexptime | 				maxexptime = 0.3, | ||||||
| 				0.3, --maxexptime | 				minsize = 1, | ||||||
| 				1, --minsize | 				maxsize = 2, | ||||||
| 				2, --maxsize | 				collisiondetection = false, | ||||||
| 				false, --collisiondetection | 				texture = "witchcraft_flame.png" | ||||||
| 				"witchcraft_flame.png" --texture | 			}) | ||||||
| 			) |  | ||||||
| 			 |  | ||||||
| 		end, | 		end, | ||||||
| 	}) | }) | ||||||
|  |  | ||||||
|  | minetest.register_entity("witchcraft:tree", { | ||||||
|  |  | ||||||
| minetest.register_entity( |  | ||||||
| 	"witchcraft:tree", |  | ||||||
| 	{ |  | ||||||
| 		textures = {"witchcraft_skin.png"}, | 		textures = {"witchcraft_skin.png"}, | ||||||
| 		velocity = 1, | 		velocity = 1, | ||||||
| 		damage = 2, | 		damage = 2, | ||||||
| 		collisionbox = {0, 0, 0, 0, 0, 0}, | 		collisionbox = {0, 0, 0, 0, 0, 0}, | ||||||
| 		on_step = function(self, obj, pos)		 | 		on_step = function(self, obj, pos)		 | ||||||
| 			local remove = minetest.after( | 			local remove = minetest.after(2, function()  | ||||||
| 				2, |  | ||||||
| 				function()  |  | ||||||
| 					self.object:remove() | 					self.object:remove() | ||||||
| 				end) | 			end) | ||||||
| 			local pos = self.object:getpos() | 			local pos = self.object:get_pos() | ||||||
| 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | ||||||
| 			for k, obj in pairs(objs) do | 			for k, obj in pairs(objs) do | ||||||
| 				if obj:get_luaentity() ~= nil then | 				if obj:get_luaentity() then | ||||||
| 					if obj:get_luaentity().name ~= "witchcraft:tree" | 					if obj:get_luaentity().name ~= "witchcraft:tree" | ||||||
| 						and obj:get_luaentity().name ~= "__builtin:item" | 						and obj:get_luaentity().name ~= "__builtin:item" | ||||||
| 						and obj:get_luaentity().name ~= "gauges:hp_bar" | 					and obj:get_luaentity().name ~= "gauges:hp_bar" then | ||||||
| 					then |  | ||||||
| 						obj:remove() | 						obj:remove() | ||||||
| 						local treepos = self.object:getpos() | 						default.grow_new_jungle_tree(pos) | ||||||
| 						default.grow_new_jungle_tree(treepos) |  | ||||||
| 						self.object:remove() | 						self.object:remove() | ||||||
|  | 						return | ||||||
| 					end | 					end | ||||||
| 				end | 				end | ||||||
| 			end | 			end | ||||||
| 			for dx=0,1 do |  | ||||||
| 				for dy=0,1 do |  | ||||||
| 					for dz=0,1 do |  | ||||||
| 						local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz} |  | ||||||
| 						local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} |  | ||||||
| 						local n = minetest.get_node(p).name |  | ||||||
| 						if n ~= "witchcraft:tree" and n ~="air" then	 |  | ||||||
| 							local treepos = self.object:getpos() |  | ||||||
| 							default.grow_new_jungle_tree(treepos) |  | ||||||
| 							self.object:remove() |  | ||||||
| 						elseif n == "default:wood" or n =="default:tree" or n =="default:dirt_with_grass" or n =="default:dirt_with_dry_grass" then |  | ||||||
| 							self.hit_node(self, pos, node) |  | ||||||
| 							self.object:remove() |  | ||||||
| 							return |  | ||||||
| 						end |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 			hit_node = function(self, pos, node) |  | ||||||
| 				local treepos = self.object:getpos() |  | ||||||
| 				default.grow_new_jungle_tree(treepos) |  | ||||||
| 			end |  | ||||||
| 			 | 			 | ||||||
| 			local apos = self.object:getpos() | 			local n = minetest.get_node(pos).name | ||||||
| 			local part = minetest.add_particlespawner( | 			if n ~= "witchcraft:tree" and n ~="air" then	 | ||||||
| 				6, --amount | 				default.grow_new_jungle_tree(pos) | ||||||
| 				0.3, --time | 				self.object:remove() | ||||||
| 				{x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos | 			end | ||||||
| 				{x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos |  | ||||||
| 				{x=-0, y=-0, z=-0}, --minvel |  | ||||||
| 				{x=0, y=0, z=0}, --maxvel |  | ||||||
| 				{x=0,y=-0.5,z=0}, --minacc |  | ||||||
| 				{x=0.5,y=0.5,z=0.5}, --maxacc |  | ||||||
| 				0.1, --minexptime |  | ||||||
| 				0.3, --maxexptime |  | ||||||
| 				1, --minsize |  | ||||||
| 				2, --maxsize |  | ||||||
| 				false, --collisiondetection |  | ||||||
| 				"witchcraft_leaf_over.png" --texture |  | ||||||
| 			) |  | ||||||
| 			 |  | ||||||
| 		end, |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| minetest.register_entity( | 			minetest.add_particlespawner({ | ||||||
| 	"witchcraft:ice", | 				amount = 6, | ||||||
| 	{ | 				time = 0.3, | ||||||
|  | 				minpos = {x=pos.x-0.3, y=pos.y-0.3, z=pos.z-0.3}, | ||||||
|  | 				maxpos = {x=pos.x+0.3, y=pos.y+0.3, z=pos.z+0.3}, | ||||||
|  | 				minvel = {x=-0, y=-0, z=-0}, | ||||||
|  | 				maxvel = {x=0, y=0, z=0}, | ||||||
|  | 				minacc = {x=0,y=-0.5,z=0}, | ||||||
|  | 				maxacc = {x=0.5,y=0.5,z=0.5}, | ||||||
|  | 				minexptime = 0.1, | ||||||
|  | 				maxexptime = 0.3, | ||||||
|  | 				minsize = 1, | ||||||
|  | 				maxsize = 2, | ||||||
|  | 				collisiondetection = false, | ||||||
|  | 				texture = "witchcraft_leaf_over.png" | ||||||
|  | 			}) | ||||||
|  | 		end, | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | minetest.register_entity("witchcraft:ice", { | ||||||
| 		visual="sprite", | 		visual="sprite", | ||||||
| 		visual_size={x=1,y=1}, | 		visual_size={x=1,y=1}, | ||||||
| 		physical=false, | 		physical=false, | ||||||
| @@ -419,62 +345,68 @@ minetest.register_entity( | |||||||
| 		collisionbox = {0, 0, 0, 0, 0, 0}, | 		collisionbox = {0, 0, 0, 0, 0, 0}, | ||||||
| 		on_step = function(self, obj, pos)		 | 		on_step = function(self, obj, pos)		 | ||||||
| 			local remove = minetest.after(10, function()  | 			local remove = minetest.after(10, function()  | ||||||
| 														self.object:remove() | 					self.object:remove() | ||||||
| 														 end) | 			end) | ||||||
| 			local pos = self.object:getpos() | 			local pos = self.object:get_pos() | ||||||
| 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | 			local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 2)	 | ||||||
| 			for k, obj in pairs(objs) do | 			for k, obj in pairs(objs) do | ||||||
| 				if obj:get_luaentity() ~= nil then | 				if obj:get_luaentity() ~= nil then | ||||||
| 					if obj:get_luaentity().name ~= "witchcraft:ice" | 					if obj:get_luaentity().name ~= "witchcraft:ice" | ||||||
| 						and obj:get_luaentity().name ~= "__builtin:item" | 						and obj:get_luaentity().name ~= "__builtin:item" | ||||||
| 						and obj:get_luaentity().name ~= "gauges:hp_bar" | 					and obj:get_luaentity().name ~= "gauges:hp_bar" then | ||||||
| 					then | 						obj:punch(self.object, 1.0, { | ||||||
| 						obj:punch( |  | ||||||
| 							self.object, 1.0, |  | ||||||
| 							{ |  | ||||||
| 								full_punch_interval=1.0, | 								full_punch_interval=1.0, | ||||||
| 								damage_groups={fleshy=1}, | 								damage_groups={fleshy=1}, | ||||||
| 							}, nil) | 							}, nil) | ||||||
| 						self.object:remove() | 						self.object:remove() | ||||||
|  | 						return | ||||||
| 					end | 					end | ||||||
| 				end | 				end | ||||||
| 				for dx=0,1 do |  | ||||||
| 					for dy=0,1 do |  | ||||||
| 						for dz=0,1 do |  | ||||||
| 							local p = {x=pos.x+dx, y=pos.y, z=pos.z+dz} |  | ||||||
| 							local t = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} |  | ||||||
| 							local n = minetest.get_node(p).name |  | ||||||
| 							if n == "default:water_source" or n =="default:river_water_source" then	 |  | ||||||
| 								local pos = self.object:getpos() |  | ||||||
| 								minetest.set_node(pos, {name="default:ice"}) |  | ||||||
| 								self.object:remove() |  | ||||||
| 							elseif n ~= "air" then |  | ||||||
| 								local velo = self.object:getvelocity() |  | ||||||
| 								self.object:setvelocity({x=velo.x*-1, y=velo.y*0, z=velo.z*1}) |  | ||||||
| 								--self.object:remove() |  | ||||||
| 								return |  | ||||||
| 							end |  | ||||||
| 						end |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
|  |  | ||||||
| 				local apos = self.object:getpos() |  | ||||||
| 				local part = minetest.add_particlespawner( |  | ||||||
| 					10, --amount |  | ||||||
| 					0.3, --time |  | ||||||
| 					{x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos |  | ||||||
| 					{x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos |  | ||||||
| 					{x=-0, y=-0, z=-0}, --minvel |  | ||||||
| 					{x=0, y=0, z=0}, --maxvel |  | ||||||
| 					{x=0,y=-0.5,z=0}, --minacc |  | ||||||
| 					{x=0.5,y=0.5,z=0.5}, --maxacc |  | ||||||
| 					0.1, --minexptime |  | ||||||
| 					0.3, --maxexptime |  | ||||||
| 					0.2, --minsize |  | ||||||
| 					0.5, --maxsize |  | ||||||
| 					false, --collisiondetection |  | ||||||
| 					"witchcraft_light_over.png" --texture |  | ||||||
| 				) |  | ||||||
| 			end | 			end | ||||||
|  | 			 | ||||||
|  | 			local velo = self.object:get_velocity() | ||||||
|  | 			local hit = { | ||||||
|  | 				{ p = {x=pos.x+1, y=pos.y, z=pos.z}, | ||||||
|  | 				  v = {x=math.abs(velo.x)*-1, y=velo.y, z=velo.z}}, -- x | ||||||
|  | 				{ p = {x=pos.x-1, y=pos.y, z=pos.z}, | ||||||
|  | 				  v = {x=math.abs(velo.x), y=velo.y, z=velo.z}}, | ||||||
|  | 				{ p = {x=pos.x, y=pos.y+1, z=pos.z}, | ||||||
|  | 				  v = {x=velo.x, y=math.abs(velo.y)*-1, z=velo.z}}, -- y | ||||||
|  | 				{ p = {x=pos.x, y=pos.y-1, z=pos.z}, | ||||||
|  | 				  v = {x=velo.x, y=math.abs(velo.y), z=velo.z}}, | ||||||
|  | 				{ p = {x=pos.x, y=pos.y, z=pos.z+1}, | ||||||
|  | 				  v = {x=velo.x, y=velo.y, z=math.abs(velo.z)*-1}}, -- z | ||||||
|  | 				{ p = {x=pos.x, y=pos.y, z=pos.z-1}, | ||||||
|  | 				  v = {x=velo.x, y=velo.y, z=math.abs(velo.z)}} | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			for _,h in pairs(hit) do | ||||||
|  | 				local n = minetest.get_node(h.p).name | ||||||
|  | 				if n ~= "air" and n~= "witchcraft:ice" then | ||||||
|  | 					if n == "default:water_source" or n =="default:river_water_source" then | ||||||
|  | 						minetest.set_node(h.p, {name="default:ice"}) | ||||||
|  | 						h.v.y = 0 | ||||||
|  | 					end | ||||||
|  | 					self.object:set_velocity(h.v) | ||||||
|  | 					break | ||||||
|  | 				end | ||||||
|  | 			end | ||||||
|  |  | ||||||
|  | 			minetest.add_particlespawner({ | ||||||
|  | 				amount = 10, | ||||||
|  | 				time = 0.3, | ||||||
|  | 				minpos = {x=pos.x-0.3, y=pos.y-0.3, z=pos.z-0.3}, | ||||||
|  | 				maxpos = {x=pos.x+0.3, y=pos.y+0.3, z=pos.z+0.3}, | ||||||
|  | 				minvel = {x=-0, y=-0, z=-0}, | ||||||
|  | 				maxvel = {x=0, y=0, z=0}, | ||||||
|  | 				minacc = {x=0,y=-0.5,z=0}, | ||||||
|  | 				maxacc = {x=0.5,y=0.5,z=0.5}, | ||||||
|  | 				minexptime = 0.1, | ||||||
|  | 				maxexptime = 0.3, | ||||||
|  | 				minsize = 0.2, | ||||||
|  | 				maxsize = 0.5, | ||||||
|  | 				collisiondetection = false, | ||||||
|  | 				texture = "witchcraft_light_over.png" | ||||||
|  | 			}) | ||||||
| 		end | 		end | ||||||
| }) | }) | ||||||
|   | |||||||
| Before Width: | Height: | Size: 175 B After Width: | Height: | Size: 159 B | 
| Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 163 B | 
| Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 185 B | 
| Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 172 B | 
| Before Width: | Height: | Size: 493 B After Width: | Height: | Size: 333 B | 
| Before Width: | Height: | Size: 458 B After Width: | Height: | Size: 297 B | 
| Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 124 B | 
| Before Width: | Height: | Size: 162 B After Width: | Height: | Size: 142 B | 
| Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 142 B | 
| Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 434 B | 
| Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 127 B | 
| Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 177 B | 
| Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 176 B | 
| Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 159 B | 
| Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 196 B | 
| Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 127 B | 
| Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 225 B | 
| Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 202 B | 
| Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 204 B | 
| Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 129 B | 
| Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 233 B | 
| Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 178 B | 
| Before Width: | Height: | Size: 414 B After Width: | Height: | Size: 296 B | 
| Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB | 
| Before Width: | Height: | Size: 679 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 341 B | 
| Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 86 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 341 B | 
| Before Width: | Height: | Size: 667 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 1017 B After Width: | Height: | Size: 548 B | 
| Before Width: | Height: | Size: 961 B After Width: | Height: | Size: 561 B | 
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 838 B | 
| Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 544 B | 
| Before Width: | Height: | Size: 981 B After Width: | Height: | Size: 570 B | 
| Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 674 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 238 B | 
| Before Width: | Height: | Size: 664 B After Width: | Height: | Size: 361 B | 
| Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 251 B | 
| Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 679 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 377 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 272 B | 
| Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 272 B | 
| Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 295 B | 
| Before Width: | Height: | Size: 546 B After Width: | Height: | Size: 271 B | 
| Before Width: | Height: | Size: 552 B After Width: | Height: | Size: 272 B | 
| Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 378 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 289 B | 
| Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 218 B | 
| Before Width: | Height: | Size: 465 KiB After Width: | Height: | Size: 300 KiB | 
| Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 200 KiB | 
| Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 374 B | 
| Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 177 B | 
| Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 154 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 814 B | 
| Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 339 B | 
| Before Width: | Height: | Size: 428 B After Width: | Height: | Size: 333 B | 
| Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 339 B | 
| Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 339 B | 
| Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 345 B | 
| Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 336 B | 
| Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 315 B | 
| Before Width: | Height: | Size: 403 B After Width: | Height: | Size: 337 B | 
| Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 316 B | 
| Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 340 B | 
| Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 337 B | 
| Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 336 B | 
| Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 318 B | 
| Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 271 B | 
| Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 119 B |