def render_break_preview(self, background, world, block, block_pos, screen, viewport): blockimg = world.get_block_render(World.get_block_id(block["name"]), block_pos, block["connectedTexture"], background, background).copy() mask = pygame.mask.from_surface(blockimg) olist = mask.outline() polysurface = pygame.Surface((Game.BLOCK_SIZE * Game.SCALE, Game.BLOCK_SIZE * Game.SCALE), pygame.SRCALPHA) color = self.get_color(background) pygame.draw.polygon(polysurface, color, olist, 0) screen.blit(polysurface, Convert.world_to_viewport(block_pos, viewport))
def render(self, pos, screen): if self.can_place: img = World.block_images[False][World.get_block_id(self.name)] else: img = self.imgs[0] screen.blit(img, (pos[0] + GUI.SCALING / 6, pos[1] + GUI.SCALING / 6)) if self.stackable: countimg = Game.get_font().render(str(self.count), 0, Game.WHITE) screen.blit(countimg, (pos[0] + 3 * Game.SCALE, pos[1] + 3 * Game.SCALE))
def render(self, screen): left = (Game.SCREEN_WIDTH - 192) / 2 top = (Game.SCREEN_HEIGHT - 192) / 2 pygame.draw.rect(screen, Game.BLACK, pygame.Rect(left, top, 192, 192), 0) inventory = self.player.inventory for r in range(len(inventory)): for c in range(len(inventory[r])): inv_item = inventory[r][c] if inv_item is not None: # c and r are flipped here so it renders across then down screen.blit( World.block_images[World.get_block_id(inv_item.itemtype)], (left + c * 32, top + r * 32) ) countimg = Game.get_font().render(str(inv_item.count), 0, Game.WHITE) screen.blit(countimg, (left + c * 32, top + r * 32))
def render_block_preview(self, background, held_item, world, block_pos, screen, viewport): held_block = World.get_block(held_item.name) blockimg = world.get_block_render(World.get_block_id(held_block["name"]), block_pos, held_block["connectedTexture"], background, background).copy() mask = pygame.mask.from_surface(blockimg) olist = mask.outline() polysurface = pygame.Surface((Game.BLOCK_SIZE * Game.SCALE, Game.BLOCK_SIZE * Game.SCALE), pygame.SRCALPHA) screen.blit(polysurface, Convert.world_to_viewport(block_pos, viewport)) collides = False entities = self.get_nearby_entities(world) entities.append(self) for entity in entities: if entity.collides(block_pos) and entity.background == background: collides = True color = self.get_color(background) if collides and World.get_block(held_block["name"])["solid"]: color = (color[0], 0, 0, color[3]) pygame.draw.polygon(polysurface, color, olist, 0) blockimg.blit(polysurface, (0, 0), special_flags=pygame.BLEND_RGBA_MULT) screen.blit(blockimg, Convert.world_to_viewport(block_pos, viewport))