local RULE_AREAS = {
	categories = {
		area_city = {
			layout_prio = 100,
			decorate_prio = 0,
			apply_instantly = true,
			generator = "sprawling",
			zones = {
				main = "village",
				core = "well",
				path = "village_street",
			},
			sprawl_times = 3,
			sprawl_segments = 2,
			sprawl_length_min = 10,
			sprawl_length_max = 15,
			sprawl_width_min = 0,
			sprawl_width_max = 1,
			sprawl_direction_stickyness = 0.5,
			core_radius = 2,
		},
		area_village = {
			layout_prio = 100,
			decorate_prio = 0,
			apply_instantly = true,
			generator = "sprawling",
			zones = {
				main = "village",
				core = "well",
				path = "village_street",
			},
			sprawl_times = 2,
			sprawl_segments = 1,
			sprawl_length_min = 10,
			sprawl_length_max = 15,
			sprawl_width_min = 0,
			sprawl_width_max = 1,
			sprawl_direction_stickyness = 0.5,
			core_radius = 2,
		},
		area_village_sidewalk = {
			allow_overlap = true,
			apply_instantly = true,
			layout_prio = 120,
			decorate_prio = 0,
			generator = "sprawling",
			zones = {
				main = "village_sidewalk",
				--path = "village_street",
			},
			sprawl_times = 4,
			sprawl_segments = 2,
			sprawl_length_min = 10,
			sprawl_length_max = 15,
			sprawl_width_min = 3,
			sprawl_width_max = 4,
			sprawl_direction_stickyness = 0.5,			
		},
		area_house = {
			layout_prio = 20,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "house",
				edge = "house_wall",
				blocking = "house_blocking",
			},
			--rooms = 2,
			room_ratio_range = 0,
			room_size_falloff = 0.75,
			room_size = 4,
			entrances = 1,
		},
		area_library = {
			layout_prio = 50,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "library",
				edge = "library_wall",
				blocking = "library_blocking",
			},
			--rooms = 1,
			room_size = 6,
			entrances = 1,
			entrance_size = 2,
		},
		area_kitchen = {
			layout_prio = 50,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "kitchen",
				edge = "kitchen_wall",
				blocking = "kitchen_blocking",
			},
			--rooms = 1,
			room_size = 6,
			entrances = 2,
		},
		area_graveyard = {
			layout_prio = 10,
			decorate_prio = 50,
			generator = "room",
			room_buffer = 0,
			zones = {
				main = "graveyard",
				core = "graveyard_core",
				path = "graveyard_path",
				edge = "graveyard_wall",
				blocking = "graveyard_blocking",
			},
			core_factor = 0.25,
			--rooms = 1,
			paths = 4,
			room_size = 9,
			room_ratio_range = 0.5,
			entrances = 4,
			entrance_size = 2,
		},
		area_vampire_crypt = {
			layout_prio = 10,
			decorate_prio = 50,
			generator = "room",
			room_buffer = 0,
			zones = {
				main = "vampire_crypt",
				core = "vampire_crypt_core",
				path = "graveyard_path",
				edge = "graveyard_wall",
				blocking = "vampire_crypt_blocking",
			},
			--rooms = 4,
			room_size = 9,
			room_size_falloff = 1.25,
			room_ratio_range = 0.5,
			entrances = 4,
			entrance_size = 2,
		},
		area_necromancer_crypt = {
			layout_prio = 10,
			decorate_prio = 50,
			generator = "room",
			zones = {
				main = "necromancer_crypt",
				core = "necromancer_crypt_core",
				path = "graveyard_path",
				edge = "graveyard_wall",
				blocking = "vampire_crypt",
			},
			--rooms = 4,
			room_size = 9,
			room_ratio_range = 0.5,
			room_size_falloff = 0.75,
			room_ratio_range = 0.5,
			entrances = 4,
			entrance_size = 2,
		},
		area_armory = {
			layout_prio = 75,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "armory",
				edge = "armory_wall",
				blocking = "armory_blocking",
			},
			--rooms = 1,
			room_size = 4,
			entrances = 2,
		},
		area_smithy = {
			layout_prio = 75,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "smithy",
				edge = "smithy_wall",
				blocking = "smithy_blocking",
			},
			--rooms = 1,
			room_size = 5,
			entrances = 1,
			entrance_size = 4,
		},
		area_wizards_tower = {
			layout_prio = 25,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "wizards_tower",
				edge = "wizards_tower_wall",
				blocking = "wizards_tower_blocking",
			},
			--rooms = 1,
			room_size = 6,
			entrances = 1,
			entrance_size = 1,
		},
		area_alchemy_shop = {
			layout_prio = 65,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "alchemy_shop",
				edge = "alchemy_shop_wall",
				blocking = "alchemy_shop_blocking",
			},
			--rooms = 1,
			room_size = 4,
			entrances = 1,
			entrance_size = 1,
		},
		area_ranger_shop = {
			layout_prio = 65,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "ranger_shop",
				edge = "ranger_shop_wall",
				blocking = "ranger_shop_blocking",
			},
			--rooms = 1,
			room_size = 5,
			entrances = 1,
			entrance_size = 2,
		},
		area_merchant_wagon = {
			layout_prio = 85,
			decorate_prio = 100,
			generator = "blob",
			zones = {
				main = "merchant_wagon",
			},
			blob_size = 4,
			blob_density = 2,
		},
		area_insane_ritual_camp = {
			generator = "blob",
			decorate_prio = 40,
			layout_prio = 10,
			zones = {
				main = "insane_ritual_camp",
				core = "insane_ritual_camp_core",
			},
			blob_size = 8,
			core_radius = 2,
			blob_spread_factor = 1.25,
			blob_density = 4,
			room_buffer = -2,
		},
		area_insane_warrior_camp = {
			generator = "blob",
			decorate_prio = 40,
			layout_prio = 10,
			zones = {
				main = "insane_warrior_camp",
				core = "insane_warrior_camp_core",
			},
			blob_size = 8,
			core_radius = 2,
			blob_spread_factor = 1.25,
			blob_density = 4,
			room_buffer = -2,
		},
		area_insane_invoker_camp = {
			generator = "blob",
			decorate_prio = 40,
			layout_prio = 10,
			zones = {
				main = "insane_invoker_camp",
				core = "insane_invoker_camp_core",
			},
			blob_size = 8,
			core_radius = 2,
			blob_spread_factor = 1.25,
			blob_density = 4,
			room_buffer = -2,
		},
		area_insane_breeder_camp = {
			generator = "blob",
			decorate_prio = 40,
			layout_prio = 10,
			zones = {
				main = "insane_breeder_camp",
				core = "insane_breeder_camp_core",
			},
			blob_size = 8,
			core_radius = 2,
			blob_spread_factor = 1.25,
			blob_density = 4,
			room_buffer = -2,
		},
		area_possum_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "possum_den",
			},
			blob_size = 2,
			blob_density = 2,
			room_buffer = -1,
		},
		area_bunny_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "bunny_den",
			},
			blob_size = 2,
			blob_density = 2,
			room_buffer = -1,
		},
		area_turtle_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "turtle_den",
			},
			blob_size = 2,
			blob_density = 2,
			room_buffer = -1,
		},
		area_snake_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "snake_den",
			},
			blob_size = 2,
			blob_density = 2,
			room_buffer = -1,
		},
		area_fox_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "fox_den",
			},
			blob_size = 2,
			blob_density = 2,
			room_buffer = -1,
		},
		area_wolf_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "wolf_den",
			},
			blob_size = 4,
			blob_density = 3,
			room_buffer = -1,
		},
		area_deer_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "deer_den",
			},
			blob_size = 4,
			blob_density = 3,
			room_buffer = -1,
		},
		area_wolverine_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "wolverine_den",
			},
			blob_size = 4,
			blob_density = 3,
			room_buffer = -1,
		},
		area_moose_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "moose_den",
			},
			blob_size = 5,
			blob_density = 3,
			room_buffer = -1,
		},
		area_bear_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "bear_den",
			},
			blob_size = 5,
			blob_density = 3,
			room_buffer = -1,
		},
		area_tiger_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "tiger_den",
			},
			blob_size = 5,
			blob_density = 3,
			room_buffer = -1,
		},
		area_lion_den = {
			generator = "blob",
			decorate_prio = 25,
			layout_prio = 10,
			zones = {
				main = "lion_den",
			},
			blob_size = 5,
			blob_density = 3,
			room_buffer = -1,
		},
		area_plains = {
			generator = "blob",
			decorate_prio = 5,
			layout_prio = 0,
			zones = {
				main = "plains",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_plains_shrubbery = {
			generator = "blob",
			decorate_prio = 5,
			layout_prio = 0,
			zones = {
				main = "plains_shrubbery",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_plains_rocky = {
			generator = "blob",
			decorate_prio = 5,
			layout_prio = 0,
			zones = {
				main = "plains_rocky",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_forest_light = {
			generator = "blob",
			decorate_prio = 10,
			layout_prio = 0,
			zones = {
				main = "forest_light",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_forest_dense = {
			generator = "blob",
			decorate_prio = 15,
			layout_prio = 0,
			zones = {
				main = "forest_dense",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_forest_old = {
			generator = "blob",
			decorate_prio = 20,
			layout_prio = 0,
			zones = {
				main = "forest_old",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_forest_vile = {
			generator = "blob",
			decorate_prio = 20,
			layout_prio = 0,
			zones = {
				main = "forest_vile",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		area_forest_rotten = {
			generator = "blob",
			decorate_prio = 20,
			layout_prio = 0,
			zones = {
				main = "forest_rotten",
			},
			blob_size = 4,
			blob_density = 2,
			room_buffer = -3,
		},
		monster_city = {
			layout_prio = 100,
			decorate_prio = 0,
			apply_instantly = true,
			generator = "sprawling",
			zones = {
				main = "monster_village",
				core = "monster_well",
				path = "monster_village_street",
			},
			sprawl_times = 3,
			sprawl_segments = 2,
			sprawl_length_min = 10,
			sprawl_length_max = 15,
			sprawl_width_min = 0,
			sprawl_width_max = 1,
			sprawl_direction_stickyness = 0.5,
			core_radius = 2,
		},
		area_monster_house = {
			layout_prio = 20,
			decorate_prio = 100,
			generator = "room",
			room_buffer = 1,
			zones = {
				main = "monster_house",
				edge = "monster_house_wall",
				blocking = "monster_house_blocking",
			},
			--rooms = 2,
			room_ratio_range = 0,
			room_size_falloff = 0.75,
			room_size = 4,
			entrances = 1,
		},
	},
	generate = function(rules, def, level, category)
		local area = Area:new(def, level, category)		
		return area
	end,
}

return RULE_AREAS