예제 #1
0
 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))
예제 #2
0
파일: ItemStack.py 프로젝트: kaikue/Oceania
 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))
예제 #3
0
 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))
예제 #4
0
 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))