openrgss 0.1.4-x86-mingw32 → 0.1.5-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.txt +56 -56
- data/README.txt +18 -18
- data/lib/openrgss.rb +18 -18
- data/lib/openrgss/audio.rb +108 -108
- data/lib/openrgss/bitmap.rb +254 -254
- data/lib/openrgss/font.rb +105 -105
- data/lib/openrgss/graphics.rb +1 -1
- data/lib/openrgss/input.rb +140 -140
- data/lib/openrgss/rect.rb +77 -77
- data/lib/openrgss/rgsserror.rb +6 -6
- data/lib/openrgss/rgssreset.rb +6 -6
- data/lib/openrgss/table.rb +51 -51
- data/lib/openrgss/tone.rb +94 -94
- data/lib/openrgss/viewport.rb +81 -81
- data/lib/openrgss/window.rb +302 -302
- metadata +14 -14
data/lib/openrgss/rect.rb
CHANGED
@@ -1,78 +1,78 @@
|
|
1
|
-
class Rect
|
2
|
-
|
3
|
-
# The x-coordinate of the rectangle's upper left corner.
|
4
|
-
attr_accessor :x
|
5
|
-
|
6
|
-
# The y-coordinate of the rectangle's upper left corner.
|
7
|
-
attr_accessor :y
|
8
|
-
|
9
|
-
# The rectangle's width.
|
10
|
-
attr_accessor :width
|
11
|
-
|
12
|
-
# The rectangle's height.
|
13
|
-
attr_accessor :height
|
14
|
-
|
15
|
-
# :call-seq:
|
16
|
-
# Rect.new(x, y, width, height)
|
17
|
-
# Rect.new
|
18
|
-
#
|
19
|
-
# Creates a new Rect object.
|
20
|
-
#
|
21
|
-
# The default values when no arguments are specified are (0, 0, 0, 0).
|
22
|
-
|
23
|
-
def initialize(x=0, y=0, width=0, height=0)
|
24
|
-
set(x, y, width, height)
|
25
|
-
end
|
26
|
-
|
27
|
-
# :call-seq:
|
28
|
-
# set(x, y, width, height)
|
29
|
-
# set(rect)
|
30
|
-
#
|
31
|
-
# Sets all parameters at once.
|
32
|
-
#
|
33
|
-
# The second format copies all the components from a separate Rect object.
|
34
|
-
|
35
|
-
def set(x, y=0, width=0, height=0)
|
36
|
-
if x.is_a? Rect
|
37
|
-
rect = x
|
38
|
-
@x = rect.x
|
39
|
-
@y = rect.y
|
40
|
-
@width = rect.width
|
41
|
-
@height = rect.height
|
42
|
-
else
|
43
|
-
@x = x
|
44
|
-
@y = y
|
45
|
-
@width = width
|
46
|
-
@height = height
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def to_s
|
51
|
-
"(#{x}, #{y}, #{width}, #{height})"
|
52
|
-
end
|
53
|
-
|
54
|
-
# Sets all components to 0.
|
55
|
-
def empty
|
56
|
-
set(0, 0, 0, 0)
|
57
|
-
end
|
58
|
-
|
59
|
-
# Vergleichsmethode
|
60
|
-
def == other
|
61
|
-
if other.kind_of?(Rect) then
|
62
|
-
x == other.x && y == other.y && width == other.width && height == other.height
|
63
|
-
else
|
64
|
-
raise TypeError.new("Can't convert #{other.class} to Rect")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# Serialisiert das Objekt
|
69
|
-
def _dump limit
|
70
|
-
[x, y, width, height].pack("iiii")
|
71
|
-
end
|
72
|
-
|
73
|
-
# Deserialisiert das Objekt
|
74
|
-
def self._load str
|
75
|
-
new(*str.unpack("iiii"))
|
76
|
-
end
|
77
|
-
|
1
|
+
class Rect
|
2
|
+
|
3
|
+
# The x-coordinate of the rectangle's upper left corner.
|
4
|
+
attr_accessor :x
|
5
|
+
|
6
|
+
# The y-coordinate of the rectangle's upper left corner.
|
7
|
+
attr_accessor :y
|
8
|
+
|
9
|
+
# The rectangle's width.
|
10
|
+
attr_accessor :width
|
11
|
+
|
12
|
+
# The rectangle's height.
|
13
|
+
attr_accessor :height
|
14
|
+
|
15
|
+
# :call-seq:
|
16
|
+
# Rect.new(x, y, width, height)
|
17
|
+
# Rect.new
|
18
|
+
#
|
19
|
+
# Creates a new Rect object.
|
20
|
+
#
|
21
|
+
# The default values when no arguments are specified are (0, 0, 0, 0).
|
22
|
+
|
23
|
+
def initialize(x=0, y=0, width=0, height=0)
|
24
|
+
set(x, y, width, height)
|
25
|
+
end
|
26
|
+
|
27
|
+
# :call-seq:
|
28
|
+
# set(x, y, width, height)
|
29
|
+
# set(rect)
|
30
|
+
#
|
31
|
+
# Sets all parameters at once.
|
32
|
+
#
|
33
|
+
# The second format copies all the components from a separate Rect object.
|
34
|
+
|
35
|
+
def set(x, y=0, width=0, height=0)
|
36
|
+
if x.is_a? Rect
|
37
|
+
rect = x
|
38
|
+
@x = rect.x
|
39
|
+
@y = rect.y
|
40
|
+
@width = rect.width
|
41
|
+
@height = rect.height
|
42
|
+
else
|
43
|
+
@x = x
|
44
|
+
@y = y
|
45
|
+
@width = width
|
46
|
+
@height = height
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def to_s
|
51
|
+
"(#{x}, #{y}, #{width}, #{height})"
|
52
|
+
end
|
53
|
+
|
54
|
+
# Sets all components to 0.
|
55
|
+
def empty
|
56
|
+
set(0, 0, 0, 0)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Vergleichsmethode
|
60
|
+
def == other
|
61
|
+
if other.kind_of?(Rect) then
|
62
|
+
x == other.x && y == other.y && width == other.width && height == other.height
|
63
|
+
else
|
64
|
+
raise TypeError.new("Can't convert #{other.class} to Rect")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Serialisiert das Objekt
|
69
|
+
def _dump limit
|
70
|
+
[x, y, width, height].pack("iiii")
|
71
|
+
end
|
72
|
+
|
73
|
+
# Deserialisiert das Objekt
|
74
|
+
def self._load str
|
75
|
+
new(*str.unpack("iiii"))
|
76
|
+
end
|
77
|
+
|
78
78
|
end
|
data/lib/openrgss/rgsserror.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# An exception class providing notifications of RGSS internal errors.
|
2
|
-
#
|
3
|
-
# Generated when, for instance, trying to access Bitmap or Sprite class objects that have already been freed.
|
4
|
-
|
5
|
-
class RGSSError < StandardError
|
6
|
-
|
1
|
+
# An exception class providing notifications of RGSS internal errors.
|
2
|
+
#
|
3
|
+
# Generated when, for instance, trying to access Bitmap or Sprite class objects that have already been freed.
|
4
|
+
|
5
|
+
class RGSSError < StandardError
|
6
|
+
|
7
7
|
end
|
data/lib/openrgss/rgssreset.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# Exception class providing notifications for when the F12 key is pressed during game execution.
|
2
|
-
#
|
3
|
-
# Name changed from the hidden class Reset before RGSS2.
|
4
|
-
|
5
|
-
class RGSSReset < Exception
|
6
|
-
|
1
|
+
# Exception class providing notifications for when the F12 key is pressed during game execution.
|
2
|
+
#
|
3
|
+
# Name changed from the hidden class Reset before RGSS2.
|
4
|
+
|
5
|
+
class RGSSReset < Exception
|
6
|
+
|
7
7
|
end
|
data/lib/openrgss/table.rb
CHANGED
@@ -1,51 +1,51 @@
|
|
1
|
-
# The multidimensional array class. Each element is an integer of 2 signed bytes ranging from -32,768 to 32,767.
|
2
|
-
#
|
3
|
-
# Ruby's Array class does not run efficiently when handling large amounts of data, hence the inclusion of this class.
|
4
|
-
|
5
|
-
class Table
|
6
|
-
attr_reader :xsize, :ysize, :zsize
|
7
|
-
|
8
|
-
# Creates a Table object. Specifies the size of each dimension in the multidimensional array. 1-, 2-, and 3-dimensional arrays are possible. Arrays with no parameters are also permitted.
|
9
|
-
|
10
|
-
def initialize(xsize, ysize=1, zsize=1)
|
11
|
-
@xsize = xsize
|
12
|
-
@ysize = ysize
|
13
|
-
@zsize = zsize
|
14
|
-
@data = Array.new(@xsize*@ysize*@zsize, 0)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Changes the size of the array. All data from before the size change is retained.
|
18
|
-
|
19
|
-
def resize(xsize, ysize=1, zsize=1)
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
# :call-seq:
|
24
|
-
# self[x]
|
25
|
-
# self[x, y]
|
26
|
-
# self[x, y, z]
|
27
|
-
#
|
28
|
-
# Accesses the array's elements. Pulls the same number of arguments as there are dimensions in the created array. Returns nil if the specified element does not exist.
|
29
|
-
|
30
|
-
def [](x, y=0, z=0)
|
31
|
-
return nil if x >= @xsize or y >= @ysize
|
32
|
-
@data[x + y * @xsize + z * @xsize * @ysize]
|
33
|
-
end
|
34
|
-
|
35
|
-
def []=(x, y=0, z=0, v) #:nodoc:
|
36
|
-
@data[x + y * @xsize + z * @xsize * @ysize]=v
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
def self._load(s) #:nodoc:
|
42
|
-
Table.new(1).instance_eval {
|
43
|
-
@size, @xsize, @ysize, @zsize, xx, *@data = s.unpack('LLLLLS*')
|
44
|
-
self
|
45
|
-
}
|
46
|
-
end
|
47
|
-
|
48
|
-
def _dump(d = 0) #:nodoc:
|
49
|
-
[@size, @xsize, @ysize, @zsize, @xsize*@ysize*@zsize, *@data].pack('LLLLLS*')
|
50
|
-
end
|
51
|
-
end
|
1
|
+
# The multidimensional array class. Each element is an integer of 2 signed bytes ranging from -32,768 to 32,767.
|
2
|
+
#
|
3
|
+
# Ruby's Array class does not run efficiently when handling large amounts of data, hence the inclusion of this class.
|
4
|
+
|
5
|
+
class Table
|
6
|
+
attr_reader :xsize, :ysize, :zsize
|
7
|
+
|
8
|
+
# Creates a Table object. Specifies the size of each dimension in the multidimensional array. 1-, 2-, and 3-dimensional arrays are possible. Arrays with no parameters are also permitted.
|
9
|
+
|
10
|
+
def initialize(xsize, ysize=1, zsize=1)
|
11
|
+
@xsize = xsize
|
12
|
+
@ysize = ysize
|
13
|
+
@zsize = zsize
|
14
|
+
@data = Array.new(@xsize*@ysize*@zsize, 0)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Changes the size of the array. All data from before the size change is retained.
|
18
|
+
|
19
|
+
def resize(xsize, ysize=1, zsize=1)
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
# :call-seq:
|
24
|
+
# self[x]
|
25
|
+
# self[x, y]
|
26
|
+
# self[x, y, z]
|
27
|
+
#
|
28
|
+
# Accesses the array's elements. Pulls the same number of arguments as there are dimensions in the created array. Returns nil if the specified element does not exist.
|
29
|
+
|
30
|
+
def [](x, y=0, z=0)
|
31
|
+
return nil if x >= @xsize or y >= @ysize
|
32
|
+
@data[x + y * @xsize + z * @xsize * @ysize]
|
33
|
+
end
|
34
|
+
|
35
|
+
def []=(x, y=0, z=0, v) #:nodoc:
|
36
|
+
@data[x + y * @xsize + z * @xsize * @ysize]=v
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
def self._load(s) #:nodoc:
|
42
|
+
Table.new(1).instance_eval {
|
43
|
+
@size, @xsize, @ysize, @zsize, xx, *@data = s.unpack('LLLLLS*')
|
44
|
+
self
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
def _dump(d = 0) #:nodoc:
|
49
|
+
[@size, @xsize, @ysize, @zsize, @xsize*@ysize*@zsize, *@data].pack('LLLLLS*')
|
50
|
+
end
|
51
|
+
end
|
data/lib/openrgss/tone.rb
CHANGED
@@ -1,95 +1,95 @@
|
|
1
|
-
#The color tone class. Each component is handled with a floating-point value (Float).
|
2
|
-
|
3
|
-
class Tone
|
4
|
-
|
5
|
-
# The red balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
6
|
-
attr_accessor :red
|
7
|
-
|
8
|
-
# The green balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
9
|
-
attr_accessor :green
|
10
|
-
|
11
|
-
# The blue balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
12
|
-
attr_accessor :blue
|
13
|
-
|
14
|
-
# The grayscale filter strength (0 to 255). Out-of-range values are automatically corrected.
|
15
|
-
#
|
16
|
-
# When this value is not 0, processing time is significantly longer than when using tone balance adjustment values alone.
|
17
|
-
attr_accessor :gray
|
18
|
-
|
19
|
-
# :call-seq:
|
20
|
-
# Tone.new(red, green, blue[, gray])
|
21
|
-
# Tone.new
|
22
|
-
#
|
23
|
-
# Creates a Tone object. If gray is omitted, it is assumed to be 0.
|
24
|
-
#
|
25
|
-
# The default values when no arguments are specified are (0, 0, 0, 0).
|
26
|
-
|
27
|
-
def initialize(red = 0, green = 0, blue = 0, gray = 0)
|
28
|
-
self.red, self.green, self.blue, self.gray = red, green, blue, gray
|
29
|
-
end
|
30
|
-
|
31
|
-
# :call-seq:
|
32
|
-
# set(red, green, blue[, gray])
|
33
|
-
# set(tone) (RGSS3)
|
34
|
-
#
|
35
|
-
# Sets all components at once.
|
36
|
-
#
|
37
|
-
# The second format copies all the components from a separate Tone object.
|
38
|
-
|
39
|
-
def set(red, green=0, blue=0, gray=0)
|
40
|
-
if red.is_a? Tone
|
41
|
-
tone = red
|
42
|
-
@red = tone.red
|
43
|
-
@green = tone.green
|
44
|
-
@blue = tone.blue
|
45
|
-
@gray = tone.gray
|
46
|
-
else
|
47
|
-
@red = red
|
48
|
-
@green = green
|
49
|
-
@blue = blue
|
50
|
-
@gray = gray
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def red=(value) # :nodoc:
|
55
|
-
@red = [[-255, value].max, 255].min
|
56
|
-
end
|
57
|
-
|
58
|
-
def green=(value) # :nodoc:
|
59
|
-
@green = [[-255, value].max, 255].min
|
60
|
-
end
|
61
|
-
|
62
|
-
def blue=(value) # :nodoc:
|
63
|
-
@blue = [[-255, value].max, 255].min
|
64
|
-
end
|
65
|
-
|
66
|
-
def gray=(value) # :nodoc:
|
67
|
-
@gray = [[0, value].max, 255].min
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
def to_s # :nodoc:
|
73
|
-
"(#{red}, #{green}, #{blue}, #{gray})"
|
74
|
-
end
|
75
|
-
|
76
|
-
def blend(tone) # :nodoc:
|
77
|
-
self.clone.blend!(tone)
|
78
|
-
end
|
79
|
-
|
80
|
-
def blend!(tone) # :nodoc:
|
81
|
-
self.red += tone.red
|
82
|
-
self.green += tone.green
|
83
|
-
self.blue += tone.blue
|
84
|
-
self.gray += tone.gray
|
85
|
-
self
|
86
|
-
end
|
87
|
-
|
88
|
-
def _dump(marshal_depth = -1) # :nodoc:
|
89
|
-
[@red, @green, @blue, @gray].pack('E4')
|
90
|
-
end
|
91
|
-
|
92
|
-
def self._load(data) # :nodoc:
|
93
|
-
new(*data.unpack('E4'))
|
94
|
-
end
|
1
|
+
#The color tone class. Each component is handled with a floating-point value (Float).
|
2
|
+
|
3
|
+
class Tone
|
4
|
+
|
5
|
+
# The red balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
6
|
+
attr_accessor :red
|
7
|
+
|
8
|
+
# The green balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
9
|
+
attr_accessor :green
|
10
|
+
|
11
|
+
# The blue balance adjustment value (-255 to 255). Out-of-range values are automatically corrected.
|
12
|
+
attr_accessor :blue
|
13
|
+
|
14
|
+
# The grayscale filter strength (0 to 255). Out-of-range values are automatically corrected.
|
15
|
+
#
|
16
|
+
# When this value is not 0, processing time is significantly longer than when using tone balance adjustment values alone.
|
17
|
+
attr_accessor :gray
|
18
|
+
|
19
|
+
# :call-seq:
|
20
|
+
# Tone.new(red, green, blue[, gray])
|
21
|
+
# Tone.new
|
22
|
+
#
|
23
|
+
# Creates a Tone object. If gray is omitted, it is assumed to be 0.
|
24
|
+
#
|
25
|
+
# The default values when no arguments are specified are (0, 0, 0, 0).
|
26
|
+
|
27
|
+
def initialize(red = 0, green = 0, blue = 0, gray = 0)
|
28
|
+
self.red, self.green, self.blue, self.gray = red, green, blue, gray
|
29
|
+
end
|
30
|
+
|
31
|
+
# :call-seq:
|
32
|
+
# set(red, green, blue[, gray])
|
33
|
+
# set(tone) (RGSS3)
|
34
|
+
#
|
35
|
+
# Sets all components at once.
|
36
|
+
#
|
37
|
+
# The second format copies all the components from a separate Tone object.
|
38
|
+
|
39
|
+
def set(red, green=0, blue=0, gray=0)
|
40
|
+
if red.is_a? Tone
|
41
|
+
tone = red
|
42
|
+
@red = tone.red
|
43
|
+
@green = tone.green
|
44
|
+
@blue = tone.blue
|
45
|
+
@gray = tone.gray
|
46
|
+
else
|
47
|
+
@red = red
|
48
|
+
@green = green
|
49
|
+
@blue = blue
|
50
|
+
@gray = gray
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def red=(value) # :nodoc:
|
55
|
+
@red = [[-255, value].max, 255].min
|
56
|
+
end
|
57
|
+
|
58
|
+
def green=(value) # :nodoc:
|
59
|
+
@green = [[-255, value].max, 255].min
|
60
|
+
end
|
61
|
+
|
62
|
+
def blue=(value) # :nodoc:
|
63
|
+
@blue = [[-255, value].max, 255].min
|
64
|
+
end
|
65
|
+
|
66
|
+
def gray=(value) # :nodoc:
|
67
|
+
@gray = [[0, value].max, 255].min
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
def to_s # :nodoc:
|
73
|
+
"(#{red}, #{green}, #{blue}, #{gray})"
|
74
|
+
end
|
75
|
+
|
76
|
+
def blend(tone) # :nodoc:
|
77
|
+
self.clone.blend!(tone)
|
78
|
+
end
|
79
|
+
|
80
|
+
def blend!(tone) # :nodoc:
|
81
|
+
self.red += tone.red
|
82
|
+
self.green += tone.green
|
83
|
+
self.blue += tone.blue
|
84
|
+
self.gray += tone.gray
|
85
|
+
self
|
86
|
+
end
|
87
|
+
|
88
|
+
def _dump(marshal_depth = -1) # :nodoc:
|
89
|
+
[@red, @green, @blue, @gray].pack('E4')
|
90
|
+
end
|
91
|
+
|
92
|
+
def self._load(data) # :nodoc:
|
93
|
+
new(*data.unpack('E4'))
|
94
|
+
end
|
95
95
|
end
|