Luka’s Scripting Utilities (LUTS) es una biblioteca completa de utilidades y extensiones para Ruby que facilita el desarrollo de scripts avanzados en Pokémon Essentials. Proporciona clases, módulos y extensiones que simplifican tareas comunes de programación.
Versión: 4.1.0 Requisitos: Pokémon Essentials v21.1 Dependencia opcional: Marin’s Scripting Utilities v1.7 Autor: Luka S.J. Enlace:luka-sj.com/res/luts
Importante: Este plugin debe cargarse primero. Tiene configurado First = True y Priority = 3 para asegurar que sus utilidades estén disponibles para otros plugins.
Permite animar propiedades de objetos de forma automática y fluida.
# Incluir el módulo en tu claseclass MiSprite < Sprite include LUTS::Concerns::Animatableend# Animar propiedadessprite = MiSprite.new(viewport)sprite.animate(x: 200, y: 150, opacity: 255)# Durante el updatesprite.play_target_animation(duration) # duration en frames# Verificar si está animandoif sprite.animating? puts "Animación en curso"end# Limpiar animacionessprite.clear_anim_target
class FadeSprite < Sprite include LUTS::Concerns::Animatable def fade_in(duration = 30) self.opacity = 0 animate(opacity: 255) duration.times do play_target_animation(duration) Graphics.update end end def fade_out(duration = 30) animate(opacity: 0) duration.times do play_target_animation(duration) Graphics.update end endend
# Ancho y alto del spritesprite.width = 100sprite.height = 50# Zoom uniformesprite.zoom = 2.0 # Aplica a zoom_x y zoom_y# Obtener centrocenter_x, center_y = sprite.center# Centrar spritesprite.center! # Centra el origensprite.center!(snap: true) # Centra en el viewport# Anclar al fondosprite.bottom!# Anclar en cualquier posiciónsprite.anchor(:middle)sprite.anchor(:top_left)sprite.anchor(:bottom_right)
# Crear rectángulo de colorsprite.create_rect(100, 50, Color.new(255, 0, 0))# Llenar pantalla con colorsprite.full_rect(Color.new(0, 0, 0, 128))# Bitmap en blanco del tamaño del viewportsprite.blank_screen# Captura de pantallasprite.snap_screen# Estirar imagen a pantalla completasprite.stretch_screen("Graphics/Pictures/background")
class UI::Window # Métodos para gestión de ventanas def smooth_open(frames = 20) # Abre la ventana suavemente end def smooth_close(frames = 20) # Cierra la ventana suavemente endend
# Sprite con efecto de color arcoírisrainbow = Sprites::Rainbow.new(viewport) do |s| s.bitmap = "Graphics/Pictures/logo" s.speed = 5 # Velocidad del cambio de colorendrainbow.update # Cambia de color automáticamente
# Sprite que deja estela de movimientotrailing = Sprites::Trailing.new(viewport) do |s| s.bitmap = "Graphics/Pictures/star" s.trail_length = 10 # Longitud de la estelaend
Extensión del sistema de mouse con funcionalidades adicionales.
# Obtener posición del mousemouse_x = Mouse.xmouse_y = Mouse.y# Verificar clicsif Mouse.click? puts "Clic izquierdo"endif Mouse.right_click? puts "Clic derecho"end# Verificar si está sobre un áreaif Mouse.in_rect?(x, y, width, height) puts "Mouse sobre el área"end
Sistema mejorado para registrar mensajes y errores.
# Diferentes niveles de logLUTS::Logger.debug("Mensaje de debug")LUTS::Logger.info("Información")LUTS::Logger.warn("Advertencia")LUTS::Logger.error("Error")# Log con contextoLUTS::Logger.info("Pokémon capturado", pokemon: pokemon.name, nivel: pokemon.level)
# Generar puntos de polígonopoints = getPolygonPoints( n: 6, # Número de lados rx: 50, # Radio X ry: 50, # Radio Y a: 0, # Ángulo inicial tx: 200, # Centro X ty: 200 # Centro Y)# Coordenadas aleatorias en circunferenciax, y = randCircleCord(radius: 100)
# Alias automático de métodosPluginManager::Aliaser.alias_method( klass: PokemonParty_Scene, method: :pbStartScene, new_name: :custom_start_scene)# Tu nuevo métododef pbStartScene(*args) custom_start_scene(*args) # Llama al original # Tu código adicionalend