mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
77 lines
1.8 KiB
Ruby
77 lines
1.8 KiB
Ruby
#===============================================================================
|
|
#
|
|
#===============================================================================
|
|
class Plane
|
|
def update; end
|
|
def refresh; end
|
|
end
|
|
|
|
#===============================================================================
|
|
# A plane class that displays a single color.
|
|
#===============================================================================
|
|
class ColoredPlane < Plane
|
|
def initialize(color, viewport = nil)
|
|
super(viewport)
|
|
self.bitmap = Bitmap.new(32, 32)
|
|
set_plane_color(color)
|
|
end
|
|
|
|
def dispose
|
|
self.bitmap&.dispose
|
|
super
|
|
end
|
|
|
|
def set_plane_color(value)
|
|
self.bitmap.fill_rect(0, 0, self.bitmap.width, self.bitmap.height, value)
|
|
refresh
|
|
end
|
|
end
|
|
|
|
#===============================================================================
|
|
# A plane class that supports animated images.
|
|
#===============================================================================
|
|
class AnimatedPlane < Plane
|
|
def initialize(viewport)
|
|
super(viewport)
|
|
@bitmap = nil
|
|
end
|
|
|
|
def dispose
|
|
clear_bitmap
|
|
super
|
|
end
|
|
|
|
def setBitmap(file, hue = 0)
|
|
clear_bitmap
|
|
return if file.nil?
|
|
@bitmap = AnimatedBitmap.new(file, hue)
|
|
self.bitmap = @bitmap.bitmap if @bitmap
|
|
end
|
|
|
|
def set_panorama(file, hue = 0)
|
|
if file.is_a?(String) && file.length > 0
|
|
setBitmap("Graphics/Panoramas/" + file, hue)
|
|
else
|
|
clear_bitmap
|
|
end
|
|
end
|
|
|
|
def set_fog(file, hue = 0)
|
|
if file.is_a?(String) && file.length > 0
|
|
setBitmap("Graphics/Fogs/" + file, hue)
|
|
else
|
|
clear_bitmap
|
|
end
|
|
end
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
private
|
|
|
|
def clear_bitmap
|
|
@bitmap&.dispose
|
|
@bitmap = nil
|
|
self.bitmap = nil if !self.disposed?
|
|
end
|
|
end
|