def add_target(self, target_conf):
		target = thing.Thing(self.renderer)
		target.texture = pygame.image.load("png/hill_long.png")
		target.position = (target_conf['position']['x'], target_conf['position']['y'] - target.texture.get_height())
		target.size = (target.texture.get_width(), target.texture.get_height())
		target.name = "target"
		physics.add_object(target, False)
		self.drawables.append(target)
	def create_floor(self, floor_conf):
		for segment in floor_conf['segments']:
			floor = thing.Thing(self.renderer)
			floor.position = (segment['position']['x'], segment['position']['y'])
			floor.texture = pygame.image.load("png/%s" % segment['texture'])
			floor.size = (segment['length'], 70)
			floor.draw_continuous = True
			physics.add_object(floor)
			self.drawables.append(floor)
	def set_player(self, position_conf):
		player_physics = physics.Physics()		
		player_physics.on_collide += self.attack_handler
		self.player = entity.Entity(self.renderer, player_physics, self.input_handler)
		self.player.texture = pygame.image.load("png/player.png")
		self.player.texture_dead = pygame.image.load("png/player_dead.png")
		self.player.position = (position_conf['x'], position_conf['y'])
		self.player.size = (46, 64)
		self.player.kill_direction = "horizontal"
		self.player.name = "Player"
		physics.add_object(self.player, False)
		
		self.drawables.append(self.player)
		self.updateables.append(self.player)
		
		self.renderer.set_follow(self.player)
	def create_level(self, levelid):
		lvl = level.Level(levelid)
		lvl.load()
		
		self.add_clouds()
		self.add_decoration(lvl)
		self.create_floor(lvl.get_floor())
		self.add_target(lvl.get_target())
		
		self.set_player(lvl.get_player_position())
		
		for obj in lvl.get_objects():
			new_obj = thing.Thing(self.renderer)
			new_obj.position = (obj['position']['x'], obj['position']['y'])
			new_obj.texture = pygame.image.load("png/%s" % obj['object']['texture'])
			new_obj.size = (obj['object']['size']['x'], obj['object']['size']['y'])
			self.drawables.append(new_obj)
			
			if obj['collision']:
				physics.add_object(new_obj)
		
		for enemy in lvl.get_enemies():
			physics_eng = physics.Physics()
			input_ai = input.Intelligence(physics_eng)
			
			enmy = entity.Entity(self.renderer, physics_eng, input_ai)
			input_ai.set_entity(enmy)
			enmy.texture = pygame.image.load("png/%s" % enemy['object']['texture'])
			enmy.texture_dead = pygame.image.load("png/%s" % enemy['object']['texture_dead'])
			enmy.position = (enemy['position']['x'], enemy['position']['y'])
			enmy.size = (enemy['object']['size']['x'], enemy['object']['size']['y'])
			enmy.speed = enemy['object']['speed']
			enmy.name = enemy['object']['name']
			
			self.drawables.append(enmy)
			self.updateables.append(input_ai) # Update input before enemy
			self.updateables.append(enmy)
			physics.add_ubiquitous_object(enmy, False)