Esempio n. 1
0
    def __init__(self, ss, WorldSize, font, rand_seed):
        self.size = WorldSize
        #How big the map is
        self.TileSize = 32
        self.ssize = (self.size[0] / self.TileSize,
                      self.size[1] / self.TileSize)
        self.seed = rand_seed
        seed(self.seed)

        self.ss = ss
        self.w, self.h = self.size
        #Certain functions entities need this.
        self.center = vector2.Vector2(self.w / 2, self.h / 2)

        self.building = {}
        self.entities = {}
        #Stores all entities the game processes
        self.entity_id = 0
        #Each entity is given a unique id so the program can find it
        self.wood = 0
        #Probably will add other resources
        self.MAXwood = 50
        self.food = 0
        self.MAXfood = 0
        self.population = 0
        self.MAXpopulation = 15
        self.background_pos = vector2.Vector2(ss[0] / 5.0, 0)
        self.mapGenerator = mapGen()

        self.background_over = pygame.Surface((1600, 900), pygame.HWSURFACE)
        self.background_over.set_alpha(128)
        self.background_over.fill((0, 0, 20, 128))

        self.full_surface = pygame.Surface(self.size, pygame.HWSURFACE)

        self.clock = pygame.time.Clock()

        print self.size
        self.background = pygame.Surface((self.size[0], self.size[1]),
                                         pygame.HWSURFACE)
        self.background.fill((255, 255, 255))

        self.font = font
        self.font_size = self.font.size("A")[1]

        self.text = self.font.render(str(self.wood), True, (0, 0, 0))
        #World entity also stores global font for rendering to the screen.

        self.clock_degree = 0
        #Used for the clock

        self.convert_all()
        self.new_world()
        self.cliper = Clips(self, self.ss)

        self.BuildingQueue = []
        self.buildqueue = 0
Esempio n. 2
0
def run():
    """Simply runs the game."""

    font = pygame.font.SysFont("Terminal", 20)
    bool_full = False
    screen_size = (1280, 720)

    screen_width, screen_height = screen_size

    side_size = screen_width / 5.0

    if bool_full:
        screen = pygame.display.set_mode(
            (1600, 900), pygame.FULLSCREEN | pygame.HWSURFACE, 32)
    else:
        screen = pygame.display.set_mode(screen_size, 0, 32)

    # For the selection
    draw = False
    held = False

    s_size = 128
    size = (s_size, s_size)

    seed = None

    world = World(size, font, seed, screen_size)

    # These are all loaded here to be used in the main file.
    # TODO: Move these somewhere else
    placing_lumberyard_img = pygame.image.load(
        "Images/Buildings/Dark_LumberYard.png").convert()
    placing_lumberyard_img.set_colorkey((255, 0, 255))

    placing_house_img = pygame.image.load(
        "Images/Buildings/Dark_House.png").convert()
    placing_house_img.set_colorkey((255, 0, 255))

    placing_dock_img = pygame.image.load(
        "Images/Buildings/Dark_Dock.png").convert()
    placing_dock_img.set_colorkey((255, 0, 255))

    placing_manor_img = pygame.image.load(
        "Images/Buildings/Dark_Manor.png").convert()
    placing_manor_img.set_colorkey((255, 0, 255))

    bad_lumberyard_img = pygame.image.load(
        "Images/Buildings/Red_LumberYard.png").convert()
    bad_lumberyard_img.set_colorkey((255, 0, 255))

    world.clipper = Clips(world, (screen_width, screen_height))
    selected_building = "LumberYard"
    selected_img = pygame.image.load(
        "Images/Buildings/Dark_LumberYard.png").convert()
    selected_img.set_colorkey((255, 0, 255))

    world.clock.tick()
    done = False
    while not done:

        time_passed_seconds = world.clock.tick_busy_loop(60) / 1000.
        pos = Vector2(*pygame.mouse.get_pos())

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True

            if event.type == pygame.MOUSEBUTTONDOWN:
                if (pos.x > world.clipper.minimap_rect.x
                        and pos.y > world.clipper.minimap_rect.y):
                    pass
                else:
                    if event.button == 1 and selected_building is None:
                        """This determines what icon you clicked on in the building selector"""
                        held = True
                        start = Vector2(*pygame.mouse.get_pos())
                        draw = True
                        if (pos.x < world.clipper.side.w) and (
                                pos.y < world.clipper.side.top_rect.h):
                            for tile_list in world.clipper.side.tiles:
                                for tile in tile_list:
                                    if tile is None:
                                        continue

                                    if tile.rect.collidepoint((pos.x, pos.y)):
                                        if tile.selected:
                                            tile.selected = False
                                        else:
                                            tile.selected = True

                                        selected_building = tile.rep
                                        world.clipper.side.update(tile)

                        else:
                            world.clipper.side.update()

                    elif event.button == 1 and selected_building is not None:
                        if pos.x > world.clipper.side.w:
                            world.add_building(selected_building, pos)
                            if world.test_buildable(selected_building, 0, pos):
                                selected_building = None
                                world.clipper.side.update()

                    if event.button == 3:
                        selected_building = None

            if event.type == pygame.MOUSEBUTTONUP:
                draw = False
                held = False

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_F2 or event.key == pygame.K_F3 or \
                        event.key == pygame.K_F4:
                    str1 = str(datetime.now())
                    str1 = str1.split(".")
                    str2 = str1[0] + str1[1]
                    str2 = str2.split(":")
                    str1 = ""
                    for i in str2:
                        str1 += i

                    if event.key == pygame.K_F2:
                        pygame.image.save(
                            screen,
                            "Images/Screenshots/SCREENSHOT%s.png" % str1)

                    elif event.key == pygame.K_F3:
                        pygame.image.save(
                            world.clipper.minimap,
                            "Images/Screenshots/MinimapSCREENSHOT%s.png" %
                            str1)

                    elif event.key == pygame.K_F4:
                        pygame.image.save(
                            world.full_surface,
                            "Images/Screenshots/FULL_MAP_RENDER%s.png" % str1)

                if event.key == pygame.K_n:
                    world.new_world()

                if event.key == pygame.K_ESCAPE:
                    done = True

        # ------------------Keys Below--------------------------------------
        pressed_keys = pygame.key.get_pressed()
        if pressed_keys[pygame.K_ESCAPE]:  # quits the game
            done = True

        if pressed_keys[pygame.K_d]:  # Fast-forward function
            world.clock_degree += 5

        # Test to see what the first entity's current state is
        if pressed_keys[pygame.K_l]:
            print world.entities[0].brain.active_state

        # --------------Keys Above----------------------------------------
        # --------------Mouse Below---------------------------------------

        if int(pos.x) <= 15:
            if not bool_full:
                pygame.mouse.set_pos((15, pos.y))
            world.background_pos.x += 500 * time_passed_seconds
            if world.background_pos.x > side_size:
                world.background_pos.x = side_size

        elif int(pos.x) >= screen_width - 16:
            if not bool_full:
                pygame.mouse.set_pos((screen_width - 16, pos.y))
            world.background_pos.x -= 500 * time_passed_seconds

            if world.background_pos.x < -1 * (world.w - screen_width):
                world.background_pos.x = -1 * (world.w - screen_width)

            # print world.background_pos.x

        if int(pos.y) <= 15:
            if not bool_full:
                pygame.mouse.set_pos((pos.x, 15))
            world.background_pos.y += 500 * time_passed_seconds

            if world.background_pos.y > 0:
                world.background_pos.y = 0

        elif int(pos.y) >= screen_height - 16:

            if not bool_full:
                pygame.mouse.set_pos((pos.x, screen_height - 16))

            world.background_pos.y -= 500 * time_passed_seconds

            if world.background_pos.y < -1 * (world.h - screen_height):
                world.background_pos.y = -1 * (world.h - screen_height)

        if pygame.mouse.get_pressed()[0]:
            if pos.x > world.clipper.minimap_rect.x and pos.y > world.clipper.minimap_rect.y:
                """ If the player clicked on the mini map,
                    go to that location with the view centered on the event position"""
                draw = False
                if not held:
                    world.background_pos.x = (
                        -1 * (pos.x - world.clipper.minimap_rect.x) *
                        world.clipper.a) + (world.clipper.rect_view_w *
                                            world.clipper.a) / 2

                    world.background_pos.y = (
                        -1 * (pos.y - world.clipper.minimap_rect.y) *
                        world.clipper.b) + (world.clipper.rect_view_h *
                                            world.clipper.b) / 2

        # --------------Mouse Above---------------------------------------
        # --------------Process below-------------------------------------

        world.process(time_passed_seconds)

        if selected_building == "House":
            selected_img = placing_house_img
        elif selected_building == "LumberYard":
            selected_img = placing_lumberyard_img
        elif selected_building == "Dock":
            selected_img = placing_dock_img
        elif selected_building == "Manor":
            selected_img = placing_manor_img

        # --------------Process above-------------------------------------
        # --------------Render Below------------------------

        screen.fill((0, 0, 0))
        world.render_all(screen, time_passed_seconds, pos)

        #world.grow_trees(world.baby_tree_locations)

        if selected_building is not None:
            if (pos.x > world.clipper.minimap_rect.x
                    and pos.y > world.clipper.minimap_rect.y) or (
                        pos.x < world.clipper.side.w + 32):
                pass
            else:
                if not world.test_buildable(selected_building, 0, pos):
                    selected_img = bad_lumberyard_img
                blit_pos = world.get_tile_pos(pos - world.background_pos) * 32
                screen.blit(selected_img,
                            ((blit_pos.x - (selected_img.get_width() - 32)) +
                             world.background_pos.x,
                             (blit_pos.y - (selected_img.get_height() - 32)) +
                             world.background_pos.y))

        # ------------Render above----------------------------
        # This is for selecting-------------
        if draw and selected_building is None:
            current_mouse_pos = Vector2(*pygame.mouse.get_pos())

            lst = world.get_tile_array(start,
                                       ((current_mouse_pos.x - start.x) / 32,
                                        (current_mouse_pos.x - start.x) / 32))
            for i in lst:
                for j in i:
                    j.selected = 1

            select_surface = pygame.Surface(
                (abs(current_mouse_pos.x - start.x),
                 abs(current_mouse_pos.y - start.y)))
            select_surface.set_alpha(25)
            select_surface.fill((255, 255, 255))

            if current_mouse_pos.x - \
                    start.x <= 0 and current_mouse_pos.y < start.y and current_mouse_pos.x > start.x:
                newa = (current_mouse_pos.x - (current_mouse_pos.x - start.x),
                        current_mouse_pos.y)
                screen.blit(select_surface, (newa))
            if current_mouse_pos.x - \
                    start.x <= 0 and current_mouse_pos.y > start.y and current_mouse_pos.x < start.x:
                newa = (current_mouse_pos.x,
                        current_mouse_pos.y - (current_mouse_pos.y - start.y))
                screen.blit(select_surface, (newa))
            if current_mouse_pos.x - \
                    start.x > 0 and current_mouse_pos.y - start.y > 0:
                screen.blit(select_surface, (start))
            if current_mouse_pos.x - \
                    start.x < 0 and current_mouse_pos.y - start.y < 0:
                screen.blit(select_surface, (current_mouse_pos))
            pygame.draw.rect(screen, (255, 255, 255),
                             (start, (current_mouse_pos.x - start.x,
                                      current_mouse_pos.y - start.y)), 1)
        # Selecting Above------------------

        # --------------Render Above------------------------

        pygame.display.flip()
        pygame.display.set_caption("VillagerSim")

    pygame.quit()
def run():
    pygame.display.set_caption("Villager Simulation")

    sizes = pygame.display.list_modes()
    SCREEN_SIZE = sizes[0]
    Owidth, Oheight = SCREEN_SIZE

    side_size = Owidth / 5.0

    mapGenerator = mapGen()

    if FULL_ON:
        screen = pygame.display.set_mode(SCREEN_SIZE,
                                         pygame.FULLSCREEN | pygame.HWSURFACE,
                                         32)
    else:
        screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)

    fade = CrossFade(screen)
    all_sprites = pygame.sprite.Group(fade)

    draw = False
    held = False

    #Load the image the world will be based on,
    #then set the world size proportionate to it

    #world_img_str, mini_img_str = random_map("SCREENSHOT", "*")
    #world_img = pygame.image.load(world_img_str).convert()

    #mini_img_str = None
    #world_img = mapGenerator.whole_new(25, (256, 256))

    size = (256, 256)
    w_size = size[0] * TILE_SIZE, size[1] * TILE_SIZE

    seed = randint(0, 100)
    #print seed

    world = World.World(SCREEN_SIZE, w_size, font, seed)
    #pygame.image.save(world.minimap_img, "Images/UBER-COOL-small.png")

    Villager_image = pygame.image.load(
        "Images/Entities/Villager.PNG").convert()
    Farmer_image = pygame.image.load("Images/Entities/Farmer.png").convert()
    Lumberjack_image = pygame.image.load(
        "Images/Entities/Lumberjack.png").convert()
    Builder_image = pygame.image.load("Images/Entities/Builder.png").convert()

    placing_lumberyard_img = pygame.image.load(
        "Images/Buildings/Dark_Lumberyard.png").convert()
    placing_lumberyard_img.set_colorkey((255, 0, 255))
    placing_house_img = pygame.image.load(
        "Images/Buildings/Dark_House.png").convert()
    placing_house_img.set_colorkey((255, 0, 255))
    placing_dock_img = pygame.image.load(
        "Images/Buildings/Dark_Dock.png").convert()
    placing_dock_img.set_colorkey((255, 0, 255))
    placing_manor_img = pygame.image.load(
        "Images/Buildings/Dark_Manor.png").convert()
    placing_manor_img.set_colorkey((255, 0, 255))

    bad_lumberyard_img = pygame.image.load(
        "Images/Buildings/Red_Lumberyard.png").convert()
    bad_lumberyard_img.set_colorkey((255, 0, 255))

    #pygame.image.save(me_double_size(pygame.image.load(
    #    "Images/Buildings/LumberYard_Icon.png").convert()), "LARGERLumb.png")
    #pygame.image.save(me_double_size(pygame.image.load(
    #    "Images/Buildings/Manor_Icon.png").convert()), "LARGERMan.png")

    world.clipper = Clips(world, (Owidth, Oheight))
    #pygame.image.save(world.background, "Images/VeryLargeShowingOff.png")
    #pygame.image.save(world.minimap_img, "Images/SmallAndVariety2.png")

    selected_building = "LumberYard"
    selected_img = pygame.image.load(
        "Images/Buildings/Dark_Lumberyard.png").convert()
    selected_img.set_colorkey((255, 0, 255))

    world.clock.tick()
    while True:

        time_passed = world.clock.tick(60)
        time_passed_seconds = time_passed / 1000.
        pos = vector2.Vector2(*pygame.mouse.get_pos())

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                quit()

            if event.type == pygame.MOUSEBUTTONDOWN:
                if (pos.x > world.clipper.minimap_rect.x
                        and pos.y > world.clipper.minimap_rect.y):
                    pass
                else:
                    if event.button == 1:
                        held = True
                        start = vector2.Vector2(*pygame.mouse.get_pos())
                        draw = True
                        if (pos.x < world.clipper.side.w) and (
                                pos.y < world.clipper.side.top_rect.h):
                            for L in world.clipper.side.tiles:
                                for T in L:
                                    if T is None:
                                        continue

                                    if T.rect.collidepoint((pos.x, pos.y)):
                                        if T.selected:
                                            T.selected = False
                                        else:
                                            T.selected = True

                                        selected_building = T.rep
                                        world.clipper.side.update(T)

                        else:
                            selected_building = None
                            world.clipper.side.update()

                    if event.button == 3 and selected_building is not None:
                        world.add_building(selected_building, pos)
                        if world.test_buildable(selected_building, 0, pos):
                            selected_building = None
                            world.clipper.side.update()

            if event.type == pygame.MOUSEBUTTONUP:
                draw = False
                held = False

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_F2:
                    str1 = str(datetime.now())
                    str1 = str1.split(".")
                    str2 = str1[0] + str1[1]
                    str2 = str2.split(":")
                    str1 = ""
                    for i in str2:
                        str1 += i
                    pygame.image.save(
                        screen, "Images/Screenshots/SCREENSHOT%s.png" % str1)
                if event.key == pygame.K_n:
                    world.new_world()

            if event.type == pygame.VIDEORESIZE:
                Owidth, Oheight = event.size

        #------------------Keys Below------------------------------------------
        pressed_keys = pygame.key.get_pressed()
        if pressed_keys[pygame.K_ESCAPE]:
            #quits the game
            pygame.quit()
            exit()

        if pressed_keys[pygame.K_SPACE]:
            #Resets wood
            world.wood = 0

        if pressed_keys[pygame.K_d]:
            #Fast-forward-esk functionability
            world.clock_degree += 5

        if pressed_keys[pygame.K_l]:
            #Test to see what the first entity's state is
            print world.entities[1].brain.active_state

        #--------------Keys Above----------------------------------------
        #--------------Mouse Below---------------------------------------

        if int(pos.x) <= 15:
            if not FULL_ON:
                pygame.mouse.set_pos((15, pos.y))
            world.background_pos.x += 500 * time_passed_seconds
            #print world.background_pos.x
            if world.background_pos.x > side_size:

                world.background_pos.x = side_size

        elif int(pos.x) >= Owidth - 16:
            if not FULL_ON:
                pygame.mouse.set_pos((Owidth - 16, pos.y))
            world.background_pos.x -= 500 * time_passed_seconds

            if world.background_pos.x < -1 * (world.w - Owidth):
                world.background_pos.x = -1 * (world.w - Owidth)
            #print world.background_pos.x

        if int(pos.y) <= 15:
            if not FULL_ON:
                pygame.mouse.set_pos((pos.x, 15))
            world.background_pos.y += 500 * time_passed_seconds

            if world.background_pos.y > 0:
                world.background_pos.y = 0

        elif int(pos.y) >= Oheight - 16:

            if not FULL_ON:
                pygame.mouse.set_pos((pos.x, Oheight - 16))

            world.background_pos.y -= 500 * time_passed_seconds

            if world.background_pos.y < -1 * (world.h - Oheight):
                world.background_pos.y = -1 * (world.h - Oheight)

        if pygame.mouse.get_pressed()[0]:
            if (pos.x > world.clipper.minimap_rect.x
                    and pos.y > world.clipper.minimap_rect.y):
                draw = False
                if held is not True:
                    world.background_pos.x = (
                        -1 * (pos.x - world.clipper.minimap_rect.x) *
                        world.clipper.a) + (world.clipper.rect_view_w *
                                            world.clipper.a) / 2
                    world.background_pos.y = (
                        -1 * (pos.y - world.clipper.minimap_rect.y) *
                        world.clipper.b) + (world.clipper.rect_view_h *
                                            world.clipper.b) / 2

        #--------------Mouse Above---------------------------------------
        #--------------Process below-------------------------------------

        world.process(time_passed_seconds)

        if selected_building == "House":
            selected_img = placing_house_img
        elif selected_building == "LumberYard":
            selected_img = placing_lumberyard_img
        elif selected_building == "Dock":
            selected_img = placing_dock_img
        elif selected_building == "Manor":
            selected_img = placing_manor_img

        #--------------Process above-------------------------------------
        #--------------Render Below------------------------

        screen.fill((0, 0, 0))
        world.render_all(screen, time_passed_seconds, pos)

        all_sprites.clear(screen, world.background)
        all_sprites.update()
        all_sprites.draw(screen)

        world.grow_trees(world.Baby_TreeLocations)

        if fade.trans_value == 0:
            all_sprites.remove(fade)

        if selected_building is not None:
            if (pos.x > world.clipper.minimap_rect.x
                    and pos.y > world.clipper.minimap_rect.y) or (
                        pos.x < world.clipper.side.w + 32):
                pass
            else:
                if not world.test_buildable(selected_building, 0, pos):
                    selected_img = bad_lumberyard_img
                blit_pos = world.get_tile_pos(pos - world.background_pos) * 32
                screen.blit(selected_img,
                            ((blit_pos.x - (selected_img.get_width() - 32)) +
                             world.background_pos.x,
                             (blit_pos.y - (selected_img.get_height() - 32)) +
                             world.background_pos.y))

        #This is for selecting-------------
        if draw is True and selected_building is None:
            a = vector2.Vector2(*pygame.mouse.get_pos())
            lst = world.get_tile_array(start, ((a.x - start.x) / 32,
                                               (a.x - start.x) / 32))
            for i in lst:
                for j in i:
                    j.selected = 1
            s = pygame.Surface((abs(a.x - start.x), abs(a.y - start.y)))
            s.set_alpha(25)
            s.fill((255, 255, 255))
            if a.x - start.x <= 0 and a.y < start.y and a.x > start.x:
                newa = (a.x - (a.x - start.x), a.y)
                screen.blit(s, (newa))
            if a.x - start.x <= 0 and a.y > start.y and a.x < start.x:
                newa = (a.x, a.y - (a.y - start.y))
                screen.blit(s, (newa))
            if a.x - start.x > 0 and a.y - start.y > 0:
                screen.blit(s, (start))
            if a.x - start.x < 0 and a.y - start.y < 0:
                screen.blit(s, (a))
            pygame.draw.rect(screen, (255, 255, 255),
                             (start, (a.x - start.x, a.y - start.y)), 1)
        #Selecting Above------------------

        #--------------Render Above------------------------

        pygame.display.flip()
Esempio n. 4
0
    def new_world(self):
        del self.full_surface
        #seed(self.seed)
        img = self.mapGenerator.negative(
            self.mapGenerator.reallyCoolFull(self.ssize, num_p=23))
        #img = self.mapGenerator.whole_new(25, self.ssize, 1, -1)
        self.map_width, self.map_height = img.get_size()

        self.minimap_img = pygame.Surface((self.map_width, self.map_height))

        self.TileArray = [[0 for i in xrange(self.map_width)]
                          for a in xrange(self.map_height)]

        self.TreeID = 0
        self.TreeLocations = {}
        self.Baby_TreeID = 0
        self.Baby_TreeLocations = {}

        self.buildings = {
            "LumberYard": {},
            "Dock": {},
            "House": {},
            "Manor": {},
            "UC": {}
        }

        self.building = {}
        self.entities = {}
        #Stores all entities the game processes
        self.entity_id = 0
        #Each entity is given a unique id so the program can find it
        self.wood = 0
        #Probably will add other resources
        self.MAXwood = 50
        self.food = 0
        self.MAXfood = 0
        self.population = 0
        self.MAXpopulation = 15
        self.background_pos = vector2.Vector2(self.ss[0] / 5.0, 0)
        self.mapGenerator = mapGen()

        self.full_surface = pygame.Surface(self.size, pygame.HWSURFACE)

        self.clock_degree = 0
        #Used for the clock

        self.BuildingQueue = []
        self.buildqueue = 0

        for i in xrange(self.map_width):
            self.current_height = 0
            w_last = False
            for a in xrange(self.map_height):

                f_color = img.get_at((i, a))
                color = f_color[0]

                to_rotate = 1

                color2 = (255, 0, 220)

                #                 if color < 95:
                #                     colorb = 0
                #                     tile = DeepWaterTile(self, self.deepwater_img)

                if color < 110:
                    colorb = 0
                    tile = Tile.WaterTile(self, self.water_img)

                    last_image = self.sand_img
                    last_color = 0

                elif color >= 110 and color < 120:
                    colorb = 110
                    tile = Tile.BeachTile(self, self.sand_img)
                    last_image = self.sand_img
                    #to_rotate = 0
                    last_color = 110

                elif color >= 120 and color < 140:
                    colorb = 120
                    tile = Tile.GrassTile(self, self.grass_img)
                    last_image = self.sand_img
                    last_color = 120

                elif color >= 140 and color < 160:
                    colorb = 140
                    tile = Tile.TreePlantedTile(self, self.tree_img)
                    last_image = self.grass_img
                    last_color = 140

                elif color >= 160 and color < 170:
                    colorb = 160
                    if color2[2] == 220:

                        tile = Tile.TreePlantedTile_w(self, self.WithTree_img)
                        tile.location = vector2.Vector2(i << 5, a << 5)
                        tile.rect.topleft = tile.location
                        tile.id = self.TreeID

                        self.TreeLocations[str(self.TreeID)] = tile.location
                        self.TreeID += 1

                        to_rotate = 0
                    else:
                        tile = Tile.TreePlantedTile(self, self.tree_img)

                    last_image = self.tree_img
                    last_color = 160

                elif color >= 170 and color < 190:
                    colorb = 170
                    tile = Tile.TreePlantedTile(self, self.tree_img)
                    last_image = self.WithTree_img
                    last_color = 170

                elif color >= 190 and color < 236:
                    colorb = 190
                    tile = Tile.SmoothStoneTile(self, self.SStone_img)
                    last_image = self.tree_img
                    to_rotate = 0
                    last_color = 190

                else:
                    colorb = 236
                    tile = Tile.SnowTile(self, self.snow_img)
                    last_image = self.SStone_img
                    last_color = 236

                #Shadows----
                fake_color = color
                if color < 110:
                    fake_color = 110
                if fake_color > self.current_height - 3:

                    dark_surface = pygame.Surface((32, 32))
                    dark_surface.set_alpha(0)
                    if color >= 110:
                        self.current_height = fake_color

                    else:
                        self.current_height -= 3

                else:
                    self.current_height -= 3
                    dark_surface = pygame.Surface((1, 1))
                    dark_surface.set_alpha(128)
                #-----------

                #Used for determening start position
                if color2[1] == 255:
                    WORLD_START_POS = (i, a)
                #-----

                tile.location = vector2.Vector2(i << 5, a << 5)
                tile.rect.topleft = tile.location
                tile.color = color

                if to_rotate:
                    tile.img = pygame.transform.rotate(tile.img,
                                                       randint(0, 4) * 90)

                self.background.blit(tile.img, tile.location)

                dark_surface2 = pygame.Surface((32, 32))

                alph = 235 - color
                if color >= 190 and color < 236:
                    alph = 330 - color

                dark_surface2.set_alpha(alph)

                tile.darkness = alph

                self.background.blit(dark_surface, tile.location)
                self.background.blit(dark_surface2, tile.location)
                """
                try:
                    percentage = (color-last_color) / float(
                        colorb - last_color)

                except ZeroDivisionError:
                    percentage = 0.0
                combined_img = self.mapGenerator.lerp_two_images(tile.img,
                 last_image, percentage)
                """

                #self.minimap_img.blit(combined_img.subsurface(
                #   (0,0,1,1)), (i,a))
                self.minimap_img.blit(tile.img.subsurface((0, 0, 1, 1)),
                                      (i, a))
                self.minimap_img.blit(dark_surface.subsurface((0, 0, 1, 1)),
                                      (i, a))
                self.minimap_img.blit(dark_surface2.subsurface((0, 0, 1, 1)),
                                      (i, a))

                self.TileArray[a][i] = tile

        self.populate()
        self.cliper = Clips(self, self.ss)