Пример #1
0
def update():
    global DRAW_CALLS

    for call in DRAW_CALLS[:constants.MAX_DRAW_CALLS_PER_FRAME]:
        _draw_list = list(call)

        if not _draw_list:
            continue

        for draw in _draw_list:
            surface_name, x, y, c, fore_color, back_color = draw

            _set_char(surface_name,
                      x,
                      y,
                      c,
                      fore_color=fore_color,
                      back_color=back_color)

    DRAW_CALLS = DRAW_CALLS[constants.MAX_DRAW_CALLS_PER_FRAME:]

    tcod.console_set_default_background(0, tcod.dark_gray)
    tcod.console_fill_char(0, SCREEN['c'])
    tcod.console_fill_background(0, SCREEN['b'][0], SCREEN['b'][1],
                                 SCREEN['b'][2])
    tcod.console_fill_foreground(0, SCREEN['f'][0], SCREEN['f'][1],
                                 SCREEN['f'][2])

    _clear_screen()
    cleanup()
Пример #2
0
def _draw_view(view):
    if view['light_buffer']:
        tcod.console_fill_foreground(
            view['console'],
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][0][0],
                                   RGB_LIGHT_BUFFER[0]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255),
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][0][1],
                                   RGB_LIGHT_BUFFER[1]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255),
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][0][2],
                                   RGB_LIGHT_BUFFER[2]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255))

        tcod.console_fill_background(
            view['console'],
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][1][0],
                                   RGB_LIGHT_BUFFER[0]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255),
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][1][1],
                                   RGB_LIGHT_BUFFER[1]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255),
            numpy.subtract(
                numpy.add(
                    numpy.subtract(view['col_buffer'][1][2],
                                   RGB_LIGHT_BUFFER[2]),
                    view['light_buffer'][0]),
                view['light_buffer'][1]).clip(0, 255))
    else:
        tcod.console_fill_foreground(view['console'], view['col_buffer'][0][0],
                                     view['col_buffer'][0][1],
                                     view['col_buffer'][0][2])
        tcod.console_fill_background(view['console'], view['col_buffer'][1][0],
                                     view['col_buffer'][1][1],
                                     view['col_buffer'][1][2])

    tcod.console_fill_char(view['console'], view['char_buffer'][0])
Пример #3
0
def _draw_view(view):
	if view['light_buffer']:
		tcod.console_fill_foreground(view['console'],
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][0],RGB_LIGHT_BUFFER[0]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255),
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][1],RGB_LIGHT_BUFFER[1]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255),
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][0][2],RGB_LIGHT_BUFFER[2]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255))
		
		tcod.console_fill_background(view['console'],
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][0],RGB_LIGHT_BUFFER[0]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255),
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][1],RGB_LIGHT_BUFFER[1]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255),
			numpy.subtract(numpy.add(numpy.subtract(view['col_buffer'][1][2],RGB_LIGHT_BUFFER[2]),view['light_buffer'][0]),view['light_buffer'][1]).clip(0,255))
	else:
		tcod.console_fill_foreground(view['console'], view['col_buffer'][0][0], view['col_buffer'][0][1], view['col_buffer'][0][2])
		tcod.console_fill_background(view['console'], view['col_buffer'][1][0], view['col_buffer'][1][1], view['col_buffer'][1][2])
	
	tcod.console_fill_char(view['console'], view['char_buffer'][0])
Пример #4
0
def test_console_fill(console):
    width = libtcodpy.console_get_width(console)
    height = libtcodpy.console_get_height(console)
    fill = [i % 256 for i in range(width * height)]
    libtcodpy.console_fill_background(console, fill, fill, fill)
    libtcodpy.console_fill_foreground(console, fill, fill, fill)
    libtcodpy.console_fill_char(console, fill)

    # verify fill
    bg, fg, ch = [], [], []
    for y in range(height):
        for x in range(width):
            bg.append(libtcodpy.console_get_char_background(console, x, y)[0])
            fg.append(libtcodpy.console_get_char_foreground(console, x, y)[0])
            ch.append(libtcodpy.console_get_char(console, x, y))
    assert fill == bg
    assert fill == fg
    assert fill == ch
Пример #5
0
def update():
	global DRAW_CALLS

	for call in DRAW_CALLS[:constants.MAX_DRAW_CALLS_PER_FRAME]:
		_draw_list = list(call)

		if not _draw_list:
			continue

		for draw in _draw_list:
			surface_name, x, y, c, fore_color, back_color = draw

			_set_char(surface_name, x, y, c, fore_color=fore_color, back_color=back_color)

	DRAW_CALLS = DRAW_CALLS[constants.MAX_DRAW_CALLS_PER_FRAME:]

	tcod.console_set_default_background(0, tcod.dark_gray)
	tcod.console_fill_char(0, SCREEN['c'])
	tcod.console_fill_background(0, SCREEN['b'][0], SCREEN['b'][1], SCREEN['b'][2])
	tcod.console_fill_foreground(0, SCREEN['f'][0], SCREEN['f'][1], SCREEN['f'][2])

	_clear_screen()
	cleanup()
Пример #6
0
def test_console_fill_numpy(console):
    width = libtcodpy.console_get_width(console)
    height = libtcodpy.console_get_height(console)
    fill = numpy.zeros((height, width), dtype=numpy.intc)
    for y in range(height):
        fill[y, :] = y % 256

    libtcodpy.console_fill_background(console, fill, fill, fill)
    libtcodpy.console_fill_foreground(console, fill, fill, fill)
    libtcodpy.console_fill_char(console, fill)

    # verify fill
    bg = numpy.zeros((height, width), dtype=numpy.intc)
    fg = numpy.zeros((height, width), dtype=numpy.intc)
    ch = numpy.zeros((height, width), dtype=numpy.intc)
    for y in range(height):
        for x in range(width):
            bg[y, x] = libtcodpy.console_get_char_background(console, x, y)[0]
            fg[y, x] = libtcodpy.console_get_char_foreground(console, x, y)[0]
            ch[y, x] = libtcodpy.console_get_char(console, x, y)
    fill = fill.tolist()
    assert fill == bg.tolist()
    assert fill == fg.tolist()
    assert fill == ch.tolist()
Пример #7
0
def start_of_frame_terraform():
	tcod.console_fill_background(PREFAB_WINDOW,PREFAB_RGB_BACK_BUFFER[0],PREFAB_RGB_BACK_BUFFER[1],PREFAB_RGB_BACK_BUFFER[2])
	tcod.console_fill_foreground(PREFAB_WINDOW,PREFAB_RGB_FORE_BUFFER[0],PREFAB_RGB_FORE_BUFFER[1],PREFAB_RGB_FORE_BUFFER[2])
	tcod.console_fill_char(PREFAB_WINDOW,PREFAB_CHAR_BUFFER[0])
	
	tcod.console_fill_background(X_CUTOUT_WINDOW,X_CUTOUT_RGB_BACK_BUFFER[0],X_CUTOUT_RGB_BACK_BUFFER[1],X_CUTOUT_RGB_BACK_BUFFER[2])
	tcod.console_fill_foreground(X_CUTOUT_WINDOW,X_CUTOUT_RGB_FORE_BUFFER[0],X_CUTOUT_RGB_FORE_BUFFER[1],X_CUTOUT_RGB_FORE_BUFFER[2])
	tcod.console_fill_char(X_CUTOUT_WINDOW,X_CUTOUT_CHAR_BUFFER[0])
	
	tcod.console_fill_background(Y_CUTOUT_WINDOW,Y_CUTOUT_RGB_BACK_BUFFER[0],Y_CUTOUT_RGB_BACK_BUFFER[1],Y_CUTOUT_RGB_BACK_BUFFER[2])
	tcod.console_fill_foreground(Y_CUTOUT_WINDOW,Y_CUTOUT_RGB_FORE_BUFFER[0],Y_CUTOUT_RGB_FORE_BUFFER[1],Y_CUTOUT_RGB_FORE_BUFFER[2])
	tcod.console_fill_char(Y_CUTOUT_WINDOW,Y_CUTOUT_CHAR_BUFFER[0])
Пример #8
0
def start_of_frame_terraform():
    tcod.console_fill_background(PREFAB_WINDOW, PREFAB_RGB_BACK_BUFFER[0],
                                 PREFAB_RGB_BACK_BUFFER[1],
                                 PREFAB_RGB_BACK_BUFFER[2])
    tcod.console_fill_foreground(PREFAB_WINDOW, PREFAB_RGB_FORE_BUFFER[0],
                                 PREFAB_RGB_FORE_BUFFER[1],
                                 PREFAB_RGB_FORE_BUFFER[2])
    tcod.console_fill_char(PREFAB_WINDOW, PREFAB_CHAR_BUFFER[0])

    tcod.console_fill_background(X_CUTOUT_WINDOW, X_CUTOUT_RGB_BACK_BUFFER[0],
                                 X_CUTOUT_RGB_BACK_BUFFER[1],
                                 X_CUTOUT_RGB_BACK_BUFFER[2])
    tcod.console_fill_foreground(X_CUTOUT_WINDOW, X_CUTOUT_RGB_FORE_BUFFER[0],
                                 X_CUTOUT_RGB_FORE_BUFFER[1],
                                 X_CUTOUT_RGB_FORE_BUFFER[2])
    tcod.console_fill_char(X_CUTOUT_WINDOW, X_CUTOUT_CHAR_BUFFER[0])

    tcod.console_fill_background(Y_CUTOUT_WINDOW, Y_CUTOUT_RGB_BACK_BUFFER[0],
                                 Y_CUTOUT_RGB_BACK_BUFFER[1],
                                 Y_CUTOUT_RGB_BACK_BUFFER[2])
    tcod.console_fill_foreground(Y_CUTOUT_WINDOW, Y_CUTOUT_RGB_FORE_BUFFER[0],
                                 Y_CUTOUT_RGB_FORE_BUFFER[1],
                                 Y_CUTOUT_RGB_FORE_BUFFER[2])
    tcod.console_fill_char(Y_CUTOUT_WINDOW, Y_CUTOUT_CHAR_BUFFER[0])
Пример #9
0
                tile.Render(self)
                Renderer.LightStack.append((tile.x, tile.y))

            except Exception, e:
                raise e

        while len(Renderer.LightStack) > 0:
            try:
                x, y = Renderer.LightStack.pop()
                self.ApplyLight(x, y)
            except Exception, e:
                raise e

        console_fill_background(self.__MapConsole, self.Final_Bg_R, self.Final_Bg_G, self.Final_Bg_B)
        console_fill_foreground(self.__MapConsole, self.Final_Fg_R, self.Final_Fg_G, self.Final_Fg_B)
        libtcod.console_fill_char(self.__MapConsole, self.Char)
        libtcod.console_clear(self.console)
        camX, camY = self.Focus
        libtcod.console_blit(self.__MapConsole, camX, camY, EngineSettings.ViewWidth, EngineSettings.ViewHeight, self.console, 0, 0)

    def ApplyLight(self, x, y):
        from core import Core  # importing here to circumvent an annoying circular import dependency

        fg_r, fg_g, fg_b = self.GetForegroundRGB(x, y)
        bg_r, bg_g, bg_b = self.GetBackgroundRGB(x, y)
        brightness = Core.mainScene.GetLightStrengthAt(x, y)
        ambient_brightness = 0 if (Core.mainScene.AmbientLight is None) else Core.mainScene.AmbientLight.Brightness

        mapWidth = self.Scene.Rect.w
        self.Final_Fg_R[mapWidth * y + x] = min(int(fg_r*(brightness + ambient_brightness)), 255)
        self.Final_Fg_G[mapWidth * y + x] = min(int(fg_g*(brightness + ambient_brightness)), 255)