cyberarm_engine 0.13.1 → 0.17.1

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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/Gemfile +1 -1
  4. data/README.md +1 -1
  5. data/Rakefile +1 -1
  6. data/assets/textures/default.png +0 -0
  7. data/cyberarm_engine.gemspec +12 -9
  8. data/lib/cyberarm_engine.rb +20 -5
  9. data/lib/cyberarm_engine/animator.rb +6 -4
  10. data/lib/cyberarm_engine/background.rb +19 -15
  11. data/lib/cyberarm_engine/background_nine_slice.rb +125 -0
  12. data/lib/cyberarm_engine/bounding_box.rb +18 -18
  13. data/lib/cyberarm_engine/cache.rb +4 -0
  14. data/lib/cyberarm_engine/cache/download_manager.rb +121 -0
  15. data/lib/cyberarm_engine/common.rb +16 -16
  16. data/lib/cyberarm_engine/config_file.rb +2 -2
  17. data/lib/cyberarm_engine/game_object.rb +63 -72
  18. data/lib/cyberarm_engine/game_state.rb +6 -3
  19. data/lib/cyberarm_engine/model.rb +207 -0
  20. data/lib/cyberarm_engine/model/material.rb +21 -0
  21. data/lib/cyberarm_engine/model/model_object.rb +131 -0
  22. data/lib/cyberarm_engine/model/parser.rb +74 -0
  23. data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -0
  24. data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -0
  25. data/lib/cyberarm_engine/model_cache.rb +31 -0
  26. data/lib/cyberarm_engine/opengl.rb +28 -0
  27. data/lib/cyberarm_engine/opengl/light.rb +50 -0
  28. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -0
  29. data/lib/cyberarm_engine/opengl/perspective_camera.rb +38 -0
  30. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -0
  31. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +164 -0
  32. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +289 -0
  33. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +22 -0
  34. data/lib/cyberarm_engine/{shader.rb → opengl/shader.rb} +51 -43
  35. data/lib/cyberarm_engine/opengl/texture.rb +69 -0
  36. data/lib/cyberarm_engine/ray.rb +5 -5
  37. data/lib/cyberarm_engine/stats.rb +21 -0
  38. data/lib/cyberarm_engine/text.rb +45 -31
  39. data/lib/cyberarm_engine/timer.rb +1 -1
  40. data/lib/cyberarm_engine/transform.rb +43 -20
  41. data/lib/cyberarm_engine/ui/border_canvas.rb +4 -3
  42. data/lib/cyberarm_engine/ui/dsl.rb +49 -10
  43. data/lib/cyberarm_engine/ui/element.rb +73 -21
  44. data/lib/cyberarm_engine/ui/elements/button.rb +121 -28
  45. data/lib/cyberarm_engine/ui/elements/check_box.rb +25 -33
  46. data/lib/cyberarm_engine/ui/elements/container.rb +113 -33
  47. data/lib/cyberarm_engine/ui/elements/edit_box.rb +179 -0
  48. data/lib/cyberarm_engine/ui/elements/edit_line.rb +145 -45
  49. data/lib/cyberarm_engine/ui/elements/flow.rb +1 -3
  50. data/lib/cyberarm_engine/ui/elements/image.rb +32 -12
  51. data/lib/cyberarm_engine/ui/elements/label.rb +122 -16
  52. data/lib/cyberarm_engine/ui/elements/list_box.rb +82 -0
  53. data/lib/cyberarm_engine/ui/elements/progress.rb +6 -5
  54. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -0
  55. data/lib/cyberarm_engine/ui/elements/slider.rb +104 -0
  56. data/lib/cyberarm_engine/ui/elements/stack.rb +1 -3
  57. data/lib/cyberarm_engine/ui/elements/text_block.rb +156 -0
  58. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +40 -31
  59. data/lib/cyberarm_engine/ui/event.rb +7 -7
  60. data/lib/cyberarm_engine/ui/gui_state.rb +118 -6
  61. data/lib/cyberarm_engine/ui/style.rb +10 -9
  62. data/lib/cyberarm_engine/ui/theme.rb +84 -22
  63. data/lib/cyberarm_engine/vector.rb +33 -30
  64. data/lib/cyberarm_engine/version.rb +2 -2
  65. data/lib/cyberarm_engine/{engine.rb → window.rb} +32 -19
  66. metadata +87 -18
  67. data/lib/cyberarm_engine/gosu_ext/circle.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df44f5d01eb555b4e210141def7448388e67a27059cb57c28d475a059af4013c
4
- data.tar.gz: 072bc76caf9f09e33bb0272f30dd7c30877ddda2c2f820b3784208c5c189f7b2
3
+ metadata.gz: fa05052d75e7e9660d600f07d014eba3a118584eaea601540efe3e8d0681494a
4
+ data.tar.gz: 6695ea5a245aa63518ffd8070859de10a70e04e25f7da154f9186540aa1e8d41
5
5
  SHA512:
6
- metadata.gz: b2a039f52667d0a0360c13028f5c85346bb34c4b04759cec2fa77d14f51832477dca033ca213264ef83e41776f5e94715b4cc488e2deede70f3dbc2f6c05f830
7
- data.tar.gz: d4fc61ff5cbb1815cc3c359e7c1ca5e7611382826e2c1fc2a705be0d33102aa3974ee437b7cba83271a07dd730157317102f75a0c3026908e904c370889514a8
6
+ metadata.gz: cdeb1da5ae89e67cf2ee02cea28313da1c657509c0b41fd517f4dd112aafd28d41f8987b5c8a47a95d8c92cd20d132461f87c1764dc74e7c54d560749c38f205
7
+ data.tar.gz: 4a26c1468e381323bfd2daa503c686f98b30b2918c0d5795aea43bf9209388a2fa13e9f6d9786e454692a2834f676528645647a1f723c417ed2dc7cf1a1f59fb
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ Style/StringLiterals:
2
+ EnforcedStyle: double_quotes
3
+
4
+ Metrics/MethodLength:
5
+ Max: 40
6
+
7
+ Style/EmptyMethod:
8
+ EnforcedStyle: expanded
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in cyberarm_engine.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -42,7 +42,7 @@ class Hello < CyberarmEngine::GuiState
42
42
  end
43
43
  end
44
44
 
45
- class Window < CyberarmEngine::Engine
45
+ class Window < CyberarmEngine::Window
46
46
  def initialize
47
47
  super
48
48
  self.show_cursor = true
data/Rakefile CHANGED
@@ -7,4 +7,4 @@ Rake::TestTask.new(:test) do |t|
7
7
  t.test_files = FileList["test/**/*_test.rb"]
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
Binary file
@@ -1,5 +1,4 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "cyberarm_engine/version"
5
4
 
@@ -9,8 +8,8 @@ Gem::Specification.new do |spec|
9
8
  spec.authors = ["Cyberarm"]
10
9
  spec.email = ["matthewlikesrobots@gmail.com"]
11
10
 
12
- spec.summary = %q{Make games quickly and easily with gosu}
13
- spec.description = %q{Yet another game making framework around gosu}
11
+ spec.summary = "Make games quickly and easily with gosu"
12
+ spec.description = "Yet another game making framework around gosu"
14
13
  spec.homepage = "https://github.com/cyberarm/cyberarm_engine"
15
14
  spec.license = "MIT"
16
15
 
@@ -21,16 +20,20 @@ Gem::Specification.new do |spec|
21
20
  "public gem pushes."
22
21
  end
23
22
 
24
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
24
  f.match(%r{^(test|spec|features)/})
26
25
  end
27
26
  spec.bindir = "exe"
28
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
- spec.require_paths = ["lib"]
28
+ spec.require_paths = %w[lib assets]
30
29
 
31
- spec.add_dependency "gosu", "~> 0.15.0"
30
+ spec.add_dependency "clipboard", "~> 1.3.5"
31
+ spec.add_dependency "excon", "~> 0.78.0"
32
+ spec.add_dependency "gosu", "~> 1.1"
33
+ spec.add_dependency "gosu_more_drawables", "~> 0.3"
34
+ # spec.add_dependency "ffi", :platforms => [:mswin, :mingw] # Required by Clipboard on Windows
32
35
 
33
- spec.add_development_dependency "bundler", "~> 1.16"
34
- spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "bundler", "~> 2.2"
35
37
  spec.add_development_dependency "minitest", "~> 5.0"
38
+ spec.add_development_dependency "rake", "~> 13.0"
36
39
  end
@@ -1,3 +1,5 @@
1
+ CYBERARM_ENGINE_ROOT_PATH = File.expand_path("..", __dir__)
2
+
1
3
  begin
2
4
  require File.expand_path("../../ffi-gosu/lib/gosu", File.dirname(__FILE__))
3
5
  rescue LoadError => e
@@ -5,21 +7,22 @@ rescue LoadError => e
5
7
  require "gosu"
6
8
  end
7
9
  require "json"
10
+ require "excon"
11
+ require "gosu_more_drawables"
12
+ require "clipboard"
8
13
 
9
14
  require_relative "cyberarm_engine/version"
15
+ require_relative "cyberarm_engine/stats"
10
16
 
11
17
  require_relative "cyberarm_engine/common"
12
18
 
13
- require_relative "cyberarm_engine/gosu_ext/circle"
14
-
15
19
  require_relative "cyberarm_engine/game_object"
16
- require_relative "cyberarm_engine/engine"
20
+ require_relative "cyberarm_engine/window"
17
21
 
18
22
  require_relative "cyberarm_engine/bounding_box"
19
23
  require_relative "cyberarm_engine/vector"
20
24
  require_relative "cyberarm_engine/transform"
21
25
  require_relative "cyberarm_engine/ray"
22
- require_relative "cyberarm_engine/shader" if defined?(OpenGL)
23
26
  require_relative "cyberarm_engine/background"
24
27
  require_relative "cyberarm_engine/animator"
25
28
 
@@ -34,16 +37,28 @@ require_relative "cyberarm_engine/ui/event"
34
37
  require_relative "cyberarm_engine/ui/style"
35
38
  require_relative "cyberarm_engine/ui/border_canvas"
36
39
  require_relative "cyberarm_engine/ui/element"
37
- require_relative "cyberarm_engine/ui/elements/label"
40
+ require_relative "cyberarm_engine/ui/elements/text_block"
38
41
  require_relative "cyberarm_engine/ui/elements/button"
39
42
  require_relative "cyberarm_engine/ui/elements/toggle_button"
43
+ require_relative "cyberarm_engine/ui/elements/list_box"
40
44
  require_relative "cyberarm_engine/ui/elements/edit_line"
45
+ require_relative "cyberarm_engine/ui/elements/edit_box"
41
46
  require_relative "cyberarm_engine/ui/elements/image"
42
47
  require_relative "cyberarm_engine/ui/elements/container"
43
48
  require_relative "cyberarm_engine/ui/elements/flow"
44
49
  require_relative "cyberarm_engine/ui/elements/stack"
45
50
  require_relative "cyberarm_engine/ui/elements/check_box"
51
+ require_relative "cyberarm_engine/ui/elements/radio"
46
52
  require_relative "cyberarm_engine/ui/elements/progress"
53
+ require_relative "cyberarm_engine/ui/elements/slider"
47
54
 
48
55
  require_relative "cyberarm_engine/game_state"
49
56
  require_relative "cyberarm_engine/ui/gui_state"
57
+
58
+ require_relative "cyberarm_engine/model"
59
+ require_relative "cyberarm_engine/model_cache"
60
+ require_relative "cyberarm_engine/model/material"
61
+ require_relative "cyberarm_engine/model/model_object"
62
+ require_relative "cyberarm_engine/model/parser"
63
+ require_relative "cyberarm_engine/model/parsers/wavefront_parser"
64
+ require_relative "cyberarm_engine/model/parsers/collada_parser" if defined?(Nokogiri)
@@ -2,8 +2,10 @@ module CyberarmEngine
2
2
  class Animator
3
3
  DEFAULT_TWEEN = :linear
4
4
  def initialize(start_time:, duration:, from:, to:, &block)
5
- @start_time, @duration = start_time, duration
6
- @from, @to = from.dup, to.dup
5
+ @start_time = start_time
6
+ @duration = duration
7
+ @from = from.dup
8
+ @to = to.dup
7
9
  @block = block
8
10
  end
9
11
 
@@ -23,7 +25,7 @@ module CyberarmEngine
23
25
  from + (to - from) * send("tween_#{tween}", progress)
24
26
  end
25
27
 
26
- def color_transition(from, to, tween = DEFAULT_TWEEN)
28
+ def color_transition(from, to, _tween = DEFAULT_TWEEN)
27
29
  r = transition(from.red, to.red)
28
30
  g = transition(from.green, to.green)
29
31
  b = transition(from.blue, to.blue)
@@ -51,4 +53,4 @@ module CyberarmEngine
51
53
  Math.sin(t) * t
52
54
  end
53
55
  end
54
- end
56
+ end
@@ -2,9 +2,13 @@ module CyberarmEngine
2
2
  class Background
3
3
  attr_accessor :x, :y, :z, :width, :height, :angle, :debug
4
4
  attr_reader :background
5
+
5
6
  def initialize(x: 0, y: 0, z: 0, width: 0, height: 0, background: Gosu::Color::BLACK, angle: 0, debug: false)
6
- @x,@y,@z = x,y,z
7
- @width,@height = width,height
7
+ @x = x
8
+ @y = y
9
+ @z = z
10
+ @width = width
11
+ @height = height
8
12
  @debug = debug
9
13
 
10
14
  @paint = Paint.new(background)
@@ -31,8 +35,8 @@ module CyberarmEngine
31
35
  end
32
36
 
33
37
  def update
34
- origin_x = (@x + (@width/2))
35
- origin_y = (@y + (@height/2))
38
+ origin_x = (@x + (@width / 2))
39
+ origin_y = (@y + (@height / 2))
36
40
 
37
41
  points = [
38
42
  @top_left = Vector.new(@x, @y),
@@ -47,8 +51,8 @@ module CyberarmEngine
47
51
 
48
52
  # 90 is up here, while gosu uses 0 for up.
49
53
  radians = (@angle + 90).gosu_to_radians
50
- vector.x = (@x + (@width/2)) + ((temp_x * Math.cos(radians)) - (temp_y * Math.sin(radians)))
51
- vector.y = (@y + (@height/2)) + ((temp_x * Math.sin(radians)) + (temp_y * Math.cos(radians)))
54
+ vector.x = (@x + (@width / 2)) + ((temp_x * Math.cos(radians)) - (temp_y * Math.sin(radians)))
55
+ vector.y = (@y + (@height / 2)) + ((temp_x * Math.sin(radians)) + (temp_y * Math.cos(radians)))
52
56
  end
53
57
 
54
58
  # [
@@ -67,11 +71,11 @@ module CyberarmEngine
67
71
  a = la.x - lb.x
68
72
  b = la.y - lb.y
69
73
  c = Gosu.distance(la.x, la.y, lb.x, lb.y)
70
- p a,b,c
71
- d = (a * point.x + b * point.y + c).abs / (Math.sqrt(a * a + b * b))
74
+ p a, b, c
75
+ d = (a * point.x + b * point.y + c).abs / Math.sqrt(a * a + b * b)
72
76
  puts "Distance: #{d}"
73
77
  exit!
74
- return d
78
+ d
75
79
  end
76
80
 
77
81
  def debug_outline
@@ -117,6 +121,7 @@ module CyberarmEngine
117
121
 
118
122
  class Paint
119
123
  attr_accessor :top_left, :top_right, :bottom_left, :bottom_right
124
+
120
125
  def initialize(background)
121
126
  set(background)
122
127
  end
@@ -124,7 +129,6 @@ module CyberarmEngine
124
129
  def set(background)
125
130
  @background = background
126
131
 
127
-
128
132
  if background.is_a?(Numeric)
129
133
  @top_left = background
130
134
  @top_right = background
@@ -167,9 +171,9 @@ end
167
171
 
168
172
  # Add <=> method to support Range based gradients
169
173
  module Gosu
170
- class Color
171
- def <=>(other)
172
- self
173
- end
174
- end
174
+ class Color
175
+ def <=>(_other)
176
+ self
177
+ end
178
+ end
175
179
  end
@@ -0,0 +1,125 @@
1
+ module CyberarmEngine
2
+ class BackgroundNineSlice
3
+ include CyberarmEngine::Common
4
+ attr_accessor :x, :y, :z, :width, :height
5
+
6
+ def initialize(image_path:, x: 0, y: 0, z: 0, width: 64, height: 64, mode: :tiled, left: 4, top: 4, right: 56, bottom: 56)
7
+ @image = get_image(image_path)
8
+
9
+ @x = x
10
+ @y = y
11
+ @z = z
12
+
13
+ @width = width
14
+ @height = height
15
+
16
+ @mode = mode
17
+
18
+ @left = left
19
+ @top = top
20
+ @right = right
21
+ @bottom = bottom
22
+
23
+ nine_slice
24
+ end
25
+
26
+ def nine_slice
27
+ @segment_top_left = Gosu.render(@left, @top) { @image.draw(0, 0, 0) }
28
+ @segment_top_right = Gosu.render(@image.width - @right, @top) { @image.draw(-@right, 0, 0) }
29
+
30
+ @segment_left = Gosu.render(@left, @bottom - @top) { @image.draw(0, -@top, 0) }
31
+ @segment_right = Gosu.render(@image.width - @right, @bottom - @top) { @image.draw(-@right, -@top, 0) }
32
+
33
+ @segment_bottom_left = Gosu.render(@left, @image.height - @bottom) { @image.draw(0, -@bottom, 0) }
34
+ @segment_bottom_right = Gosu.render(@image.width - @right, @image.height - @bottom) { @image.draw(-@right, -@bottom, 0) }
35
+
36
+ @segment_top = Gosu.render(@right - @left, @top) { @image.draw(-@left, 0, 0) }
37
+ @segment_bottom = Gosu.render(@right - @left, @image.height - @bottom) { @image.draw(-@left, -@bottom, 0) }
38
+
39
+ @segment_middle = Gosu.render(@right - @left, @bottom - @top) { @image.draw(-@left, -@top, 0) }
40
+ end
41
+
42
+ def cx
43
+ @x + @left
44
+ end
45
+
46
+ def cy
47
+ @y + @top
48
+ end
49
+
50
+ def cwidth
51
+ @cx - @width
52
+ end
53
+
54
+ def cheight
55
+ @cy - @height
56
+ end
57
+
58
+ def width_scale
59
+ width_scale = (@width - (@left + (@image.width - @right))).to_f / (@right - @left)
60
+ end
61
+
62
+ def height_scale
63
+ height_scale = (@height - (@top + (@image.height - @bottom))).to_f / (@bottom - @top)
64
+ end
65
+
66
+ def draw
67
+ @mode == :tiled ? draw_tiled : draw_stretched
68
+ end
69
+
70
+ def draw_stretched
71
+ @segment_top_left.draw(@x, @y, @z)
72
+ @segment_top.draw(@x + @segment_top_left.width, @y, @z, width_scale) # SCALE X
73
+ @segment_top_right.draw((@x + @width) - @segment_top_right.width, @y, @z)
74
+
75
+ @segment_right.draw((@x + @width) - @segment_right.width, @y + @top, @z, 1, height_scale) # SCALE Y
76
+ @segment_bottom_right.draw((@x + @width) - @segment_bottom_right.width, @y + @height - @segment_bottom_right.height, @z)
77
+ @segment_bottom.draw(@x + @segment_bottom_left.width, (@y + @height) - @segment_bottom.height, @z, width_scale) # SCALE X
78
+ @segment_bottom_left.draw(@x, (@y + @height) - @segment_bottom_left.height, @z)
79
+ @segment_left.draw(@x, @y + @top, @z, 1, height_scale) # SCALE Y
80
+ @segment_middle.draw(@x + @segment_top_left.width, @y + @segment_top.height, @z, width_scale, height_scale) # SCALE X and SCALE Y
81
+ end
82
+
83
+ def draw_tiled
84
+ @segment_top_left.draw(@x, @y, @z)
85
+
86
+ Gosu.clip_to(@x + @segment_top_left.width, @y, @segment_top.width * width_scale, @segment_top.height) do
87
+ width_scale.ceil.times do |i|
88
+ @segment_top.draw(@x + @segment_top_left.width + (@segment_top.width * i), @y, @z) # SCALE X
89
+ end
90
+ end
91
+
92
+ @segment_top_right.draw((@x + @width) - @segment_top_right.width, @y, @z)
93
+
94
+ Gosu.clip_to(@x + @width - @segment_top_right.width, @y + @top, @segment_right.width, @segment_right.height * height_scale) do
95
+ height_scale.ceil.times do |i|
96
+ @segment_right.draw((@x + @width) - @segment_right.width, @y + @top + (@segment_right.height * i), @z) # SCALE Y
97
+ end
98
+ end
99
+
100
+ @segment_bottom_right.draw((@x + @width) - @segment_bottom_right.width, @y + @height - @segment_bottom_right.height, @z)
101
+
102
+ Gosu.clip_to(@x + @segment_top_left.width, @y + @height - @segment_bottom.height, @segment_top.width * width_scale, @segment_bottom.height) do
103
+ width_scale.ceil.times do |i|
104
+ @segment_bottom.draw(@x + @segment_bottom_left.width + (@segment_bottom.width * i), (@y + @height) - @segment_bottom.height, @z) # SCALE X
105
+ end
106
+ end
107
+
108
+ @segment_bottom_left.draw(@x, (@y + @height) - @segment_bottom_left.height, @z)
109
+
110
+ Gosu.clip_to(@x, @y + @top, @segment_left.width, @segment_left.height * height_scale) do
111
+ height_scale.ceil.times do |i|
112
+ @segment_left.draw(@x, @y + @top + (@segment_left.height * i), @z) # SCALE Y
113
+ end
114
+ end
115
+
116
+ Gosu.clip_to(@x + @segment_top_left.width, @y + @segment_top.height, @width - (@segment_left.width + @segment_right.width), @height - (@segment_top.height + @segment_bottom.height)) do
117
+ height_scale.ceil.times do |y|
118
+ width_scale.ceil.times do |x|
119
+ @segment_middle.draw(@x + @segment_top_left.width + (@segment_middle.width * x), @y + @segment_top.height + (@segment_middle.height * y), @z) # SCALE X and SCALE Y
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -23,7 +23,7 @@ module CyberarmEngine
23
23
 
24
24
  def ==(other)
25
25
  @min == other.min &&
26
- @max == other.max
26
+ @max == other.max
27
27
  end
28
28
 
29
29
  # returns a new bounding box that includes both bounding boxes
@@ -37,7 +37,7 @@ module CyberarmEngine
37
37
  temp.max.y = [@max.y, other.max.y].max
38
38
  temp.max.z = [@max.z, other.max.z].max
39
39
 
40
- return temp
40
+ temp
41
41
  end
42
42
 
43
43
  # returns the difference between both bounding boxes
@@ -46,7 +46,7 @@ module CyberarmEngine
46
46
  temp.min = @min - other.min
47
47
  temp.max = @max - other.max
48
48
 
49
- return temp
49
+ temp
50
50
  end
51
51
 
52
52
  # returns whether bounding box intersects other
@@ -55,8 +55,8 @@ module CyberarmEngine
55
55
  other.intersect?(self)
56
56
  elsif other.is_a?(BoundingBox)
57
57
  (@min.x <= other.max.x && @max.x >= other.min.x) &&
58
- (@min.y <= other.max.y && @max.y >= other.min.y) &&
59
- (@min.z <= other.max.z && @max.z >= other.min.z)
58
+ (@min.y <= other.max.y && @max.y >= other.min.y) &&
59
+ (@min.z <= other.max.z && @max.z >= other.min.z)
60
60
  else
61
61
  raise "Unknown collider: #{other.class}"
62
62
  end
@@ -65,20 +65,20 @@ module CyberarmEngine
65
65
  # does this bounding box envelop other bounding box? (inclusive of border)
66
66
  def contains?(other)
67
67
  other.min.x >= min.x && other.min.y >= min.y && other.min.z >= min.z &&
68
- other.max.x <= max.x && other.max.y <= max.y && other.max.z <= max.z
68
+ other.max.x <= max.x && other.max.y <= max.y && other.max.z <= max.z
69
69
  end
70
70
 
71
71
  # returns whether the 3D vector is inside of the bounding box
72
72
  def inside?(vector)
73
73
  (vector.x.between?(@min.x, @max.x) || vector.x.between?(@max.x, @min.x)) &&
74
- (vector.y.between?(@min.y, @max.y) || vector.y.between?(@max.y, @min.y)) &&
75
- (vector.z.between?(@min.z, @max.z) || vector.z.between?(@max.z, @min.z))
74
+ (vector.y.between?(@min.y, @max.y) || vector.y.between?(@max.y, @min.y)) &&
75
+ (vector.z.between?(@min.z, @max.z) || vector.z.between?(@max.z, @min.z))
76
76
  end
77
77
 
78
78
  # returns whether the 2D vector is inside of the bounding box
79
79
  def point?(vector)
80
80
  (vector.x.between?(@min.x, @max.x) || vector.x.between?(@max.x, @min.x)) &&
81
- (vector.y.between?(@min.y, @max.y) || vector.y.between?(@max.y, @min.y))
81
+ (vector.y.between?(@min.y, @max.y) || vector.y.between?(@max.y, @min.y))
82
82
  end
83
83
 
84
84
  def volume
@@ -107,7 +107,7 @@ module CyberarmEngine
107
107
  temp.max.y = @max.y.to_f * entity.scale.y
108
108
  temp.max.z = @max.z.to_f * entity.scale.z
109
109
 
110
- return temp
110
+ temp
111
111
  end
112
112
 
113
113
  def normalize_with_offset(entity)
@@ -120,23 +120,23 @@ module CyberarmEngine
120
120
  temp.max.y = @max.y.to_f * entity.scale.y + entity.position.y
121
121
  temp.max.z = @max.z.to_f * entity.scale.z + entity.position.z
122
122
 
123
- return temp
123
+ temp
124
124
  end
125
125
 
126
126
  def +(other)
127
127
  box = BoundingBox.new
128
- box.min = self.min + other.min
129
- box.min = self.max + other.max
128
+ box.min = min + other.min
129
+ box.min = max + other.max
130
130
 
131
- return box
131
+ box
132
132
  end
133
133
 
134
134
  def -(other)
135
135
  box = BoundingBox.new
136
- box.min = self.min - other.min
137
- box.min = self.max - other.max
136
+ box.min = min - other.min
137
+ box.min = max - other.max
138
138
 
139
- return box
139
+ box
140
140
  end
141
141
 
142
142
  def sum
@@ -147,4 +147,4 @@ module CyberarmEngine
147
147
  BoundingBox.new(@min.x, @min.y, @min.z, @max.x, @max.y, @max.z)
148
148
  end
149
149
  end
150
- end
150
+ end