cyberarm_engine 0.25.0 → 0.30.0

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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -8
  3. data/.rubocop.yml +7 -7
  4. data/.travis.yml +5 -5
  5. data/Gemfile +6 -6
  6. data/Gemfile.lock +37 -25
  7. data/LICENSE.txt +21 -21
  8. data/README.md +74 -74
  9. data/Rakefile +10 -10
  10. data/assets/shaders/fragment/g_buffer.glsl +30 -30
  11. data/assets/shaders/fragment/lighting.glsl +115 -115
  12. data/assets/shaders/include/light_struct.glsl +11 -11
  13. data/assets/shaders/include/material_struct.glsl +16 -16
  14. data/assets/shaders/vertex/g_buffer.glsl +28 -28
  15. data/assets/shaders/vertex/lighting.glsl +24 -24
  16. data/assets/textures/ui/circle.png +0 -0
  17. data/assets/textures/ui/circle_small.png +0 -0
  18. data/assets/textures/ui/rounded.png +0 -0
  19. data/assets/textures/ui/rounded_bottom.png +0 -0
  20. data/assets/textures/ui/rounded_left.png +0 -0
  21. data/assets/textures/ui/rounded_left_bottom.png +0 -0
  22. data/assets/textures/ui/rounded_left_top.png +0 -0
  23. data/assets/textures/ui/rounded_right.png +0 -0
  24. data/assets/textures/ui/rounded_right_bottom.png +0 -0
  25. data/assets/textures/ui/rounded_right_top.png +0 -0
  26. data/assets/textures/ui/rounded_small.png +0 -0
  27. data/assets/textures/ui/rounded_tiny.png +0 -0
  28. data/assets/textures/ui/rounded_top.png +0 -0
  29. data/assets/textures/ui/square.png +0 -0
  30. data/bin/console +14 -14
  31. data/bin/setup +8 -8
  32. data/cyberarm_engine.gemspec +35 -36
  33. data/lib/cyberarm_engine/animator.rb +219 -219
  34. data/lib/cyberarm_engine/background.rb +156 -158
  35. data/lib/cyberarm_engine/background_image.rb +93 -93
  36. data/lib/cyberarm_engine/background_nine_slice.rb +182 -142
  37. data/lib/cyberarm_engine/bounding_box.rb +150 -150
  38. data/lib/cyberarm_engine/builtin/intro_state.rb +130 -130
  39. data/lib/cyberarm_engine/cache/download_manager.rb +123 -123
  40. data/lib/cyberarm_engine/cache.rb +4 -4
  41. data/lib/cyberarm_engine/common.rb +133 -131
  42. data/lib/cyberarm_engine/config_file.rb +46 -46
  43. data/lib/cyberarm_engine/console/command.rb +157 -157
  44. data/lib/cyberarm_engine/console/commands/help_command.rb +43 -43
  45. data/lib/cyberarm_engine/console/subcommand.rb +99 -99
  46. data/lib/cyberarm_engine/console.rb +248 -248
  47. data/lib/cyberarm_engine/event_bus.rb +39 -0
  48. data/lib/cyberarm_engine/game_object.rb +244 -244
  49. data/lib/cyberarm_engine/game_state.rb +134 -124
  50. data/lib/cyberarm_engine/gosu_ext/draw_arc.rb +111 -111
  51. data/lib/cyberarm_engine/gosu_ext/draw_circle.rb +30 -30
  52. data/lib/cyberarm_engine/gosu_ext/draw_path.rb +17 -17
  53. data/lib/cyberarm_engine/model/material.rb +21 -21
  54. data/lib/cyberarm_engine/model/mesh.rb +131 -131
  55. data/lib/cyberarm_engine/model/parser.rb +74 -74
  56. data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -138
  57. data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -154
  58. data/lib/cyberarm_engine/model.rb +216 -216
  59. data/lib/cyberarm_engine/model_cache.rb +31 -31
  60. data/lib/cyberarm_engine/notification.rb +82 -82
  61. data/lib/cyberarm_engine/notification_manager.rb +241 -241
  62. data/lib/cyberarm_engine/opengl/light.rb +52 -52
  63. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -46
  64. data/lib/cyberarm_engine/opengl/perspective_camera.rb +41 -41
  65. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -249
  66. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +167 -167
  67. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +307 -307
  68. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +33 -33
  69. data/lib/cyberarm_engine/opengl/shader.rb +408 -408
  70. data/lib/cyberarm_engine/opengl/texture.rb +69 -69
  71. data/lib/cyberarm_engine/opengl.rb +53 -53
  72. data/lib/cyberarm_engine/pathfinding/graph.rb +64 -0
  73. data/lib/cyberarm_engine/pathfinding/graph_search.rb +6 -0
  74. data/lib/cyberarm_engine/pathfinding/graph_searches/astar_search.rb +6 -0
  75. data/lib/cyberarm_engine/pathfinding/graph_searches/breadth_first_search.rb +27 -0
  76. data/lib/cyberarm_engine/pathfinding/graph_searches/dijkstra_search.rb +6 -0
  77. data/lib/cyberarm_engine/pathfinding/graphs/grid.rb +52 -0
  78. data/lib/cyberarm_engine/ray.rb +56 -56
  79. data/lib/cyberarm_engine/result.rb +19 -0
  80. data/lib/cyberarm_engine/stats.rb +200 -200
  81. data/lib/cyberarm_engine/text.rb +288 -260
  82. data/lib/cyberarm_engine/timer.rb +27 -23
  83. data/lib/cyberarm_engine/transform.rb +296 -296
  84. data/lib/cyberarm_engine/trees/aabb_node.rb +126 -126
  85. data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -55
  86. data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -29
  87. data/lib/cyberarm_engine/ui/border_canvas.rb +102 -102
  88. data/lib/cyberarm_engine/ui/dialog.rb +24 -0
  89. data/lib/cyberarm_engine/ui/dsl.rb +170 -142
  90. data/lib/cyberarm_engine/ui/element.rb +664 -662
  91. data/lib/cyberarm_engine/ui/elements/button.rb +99 -100
  92. data/lib/cyberarm_engine/ui/elements/check_box.rb +58 -54
  93. data/lib/cyberarm_engine/ui/elements/container.rb +413 -407
  94. data/lib/cyberarm_engine/ui/elements/edit_box.rb +200 -179
  95. data/lib/cyberarm_engine/ui/elements/edit_line.rb +299 -297
  96. data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
  97. data/lib/cyberarm_engine/ui/elements/image.rb +78 -72
  98. data/lib/cyberarm_engine/ui/elements/list_box.rb +79 -79
  99. data/lib/cyberarm_engine/ui/elements/menu.rb +27 -27
  100. data/lib/cyberarm_engine/ui/elements/menu_item.rb +6 -6
  101. data/lib/cyberarm_engine/ui/elements/progress.rb +95 -93
  102. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
  103. data/lib/cyberarm_engine/ui/elements/slider.rb +111 -107
  104. data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
  105. data/lib/cyberarm_engine/ui/elements/text_block.rb +236 -222
  106. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +71 -67
  107. data/lib/cyberarm_engine/ui/elements/widget.rb +45 -0
  108. data/lib/cyberarm_engine/ui/event.rb +54 -54
  109. data/lib/cyberarm_engine/ui/gui_state.rb +402 -326
  110. data/lib/cyberarm_engine/ui/page.rb +39 -0
  111. data/lib/cyberarm_engine/ui/style.rb +94 -61
  112. data/lib/cyberarm_engine/ui/theme.rb +237 -225
  113. data/lib/cyberarm_engine/vector.rb +312 -312
  114. data/lib/cyberarm_engine/version.rb +4 -4
  115. data/lib/cyberarm_engine/window.rb +234 -195
  116. data/lib/cyberarm_engine.rb +88 -76
  117. data/mrbgem.rake +29 -29
  118. metadata +30 -5
@@ -1,16 +1,16 @@
1
- struct Material {
2
- vec3 color;
3
- vec3 roughness;
4
- vec3 metalic;
5
- vec3 specular;
6
-
7
- bool use_color_texture;
8
- bool use_roughness_texture;
9
- bool use_metalic_texture;
10
- bool use_specular_texture;
11
-
12
- sampler2D color_tex;
13
- sampler2D roughness_tex;
14
- sampler2D metalic_tex;
15
- sampler2D specular_tex;
16
- };
1
+ struct Material {
2
+ vec3 color;
3
+ vec3 roughness;
4
+ vec3 metalic;
5
+ vec3 specular;
6
+
7
+ bool use_color_texture;
8
+ bool use_roughness_texture;
9
+ bool use_metalic_texture;
10
+ bool use_specular_texture;
11
+
12
+ sampler2D color_tex;
13
+ sampler2D roughness_tex;
14
+ sampler2D metalic_tex;
15
+ sampler2D specular_tex;
16
+ };
@@ -1,28 +1,28 @@
1
- #version 330 core
2
-
3
- layout(location = 0) in vec3 in_position;
4
- layout(location = 1) in vec3 in_color;
5
- layout(location = 2) in vec3 in_normal;
6
- layout(location = 3) in vec3 in_uv;
7
-
8
- uniform mat4 projection, view, model;
9
- uniform int has_texture;
10
- uniform vec3 camera_pos;
11
-
12
- out vec3 out_position, out_color, out_normal, out_uv;
13
- out vec3 out_frag_pos, out_view_pos, out_camera_pos;
14
- flat out int out_has_texture;
15
-
16
- void main() {
17
- // projection * view * model * position
18
- out_position = in_position;
19
- out_color = in_color;
20
- out_normal= normalize(transpose(inverse(mat3(model))) * in_normal);
21
- out_uv = in_uv;
22
- out_has_texture = has_texture;
23
- out_camera_pos = camera_pos;
24
-
25
- out_frag_pos = vec3(model * vec4(in_position, 1.0));
26
-
27
- gl_Position = projection * view * model * vec4(in_position, 1.0);
28
- }
1
+ #version 330 core
2
+
3
+ layout(location = 0) in vec3 in_position;
4
+ layout(location = 1) in vec3 in_color;
5
+ layout(location = 2) in vec3 in_normal;
6
+ layout(location = 3) in vec3 in_uv;
7
+
8
+ uniform mat4 projection, view, model;
9
+ uniform int has_texture;
10
+ uniform vec3 camera_pos;
11
+
12
+ out vec3 out_position, out_color, out_normal, out_uv;
13
+ out vec3 out_frag_pos, out_view_pos, out_camera_pos;
14
+ flat out int out_has_texture;
15
+
16
+ void main() {
17
+ // projection * view * model * position
18
+ out_position = in_position;
19
+ out_color = in_color;
20
+ out_normal= normalize(transpose(inverse(mat3(model))) * in_normal);
21
+ out_uv = in_uv;
22
+ out_has_texture = has_texture;
23
+ out_camera_pos = camera_pos;
24
+
25
+ out_frag_pos = vec3(model * vec4(in_position, 1.0));
26
+
27
+ gl_Position = projection * view * model * vec4(in_position, 1.0);
28
+ }
@@ -1,24 +1,24 @@
1
- #version 330 core
2
- @include "light_struct"
3
-
4
- layout (location = 0) in vec3 in_position;
5
- layout (location = 1) in vec2 in_tex_coords;
6
-
7
- uniform sampler2D diffuse, position, texcoord, normal, depth;
8
- uniform int light_count;
9
- uniform Light lights[7];
10
-
11
- out vec2 out_tex_coords;
12
- flat out int out_light_count;
13
- flat out Light out_lights[7];
14
-
15
- void main() {
16
- gl_Position = vec4(in_position.x, in_position.y, in_position.z, 1.0);
17
- out_tex_coords = in_tex_coords;
18
- out_light_count = light_count;
19
-
20
- for(int i = 0; i < light_count; i++)
21
- {
22
- out_lights[i] = lights[i];
23
- }
24
- }
1
+ #version 330 core
2
+ @include "light_struct"
3
+
4
+ layout (location = 0) in vec3 in_position;
5
+ layout (location = 1) in vec2 in_tex_coords;
6
+
7
+ uniform sampler2D diffuse, position, texcoord, normal, depth;
8
+ uniform int light_count;
9
+ uniform Light lights[7];
10
+
11
+ out vec2 out_tex_coords;
12
+ flat out int out_light_count;
13
+ flat out Light out_lights[7];
14
+
15
+ void main() {
16
+ gl_Position = vec4(in_position.x, in_position.y, in_position.z, 1.0);
17
+ out_tex_coords = in_tex_coords;
18
+ out_light_count = light_count;
19
+
20
+ for(int i = 0; i < light_count; i++)
21
+ {
22
+ out_lights[i] = lights[i];
23
+ }
24
+ }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/bin/console CHANGED
@@ -1,14 +1,14 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "cyberarm_engine"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "cyberarm_engine"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup CHANGED
@@ -1,8 +1,8 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,36 +1,35 @@
1
- lib = File.expand_path("lib", __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "cyberarm_engine/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "cyberarm_engine"
7
- spec.version = CyberarmEngine::VERSION
8
- spec.authors = ["Cyberarm"]
9
- spec.email = ["matthewlikesrobots@gmail.com"]
10
-
11
- spec.summary = "Make games quickly and easily with gosu"
12
- spec.description = "Yet another game making framework around gosu"
13
- spec.homepage = "https://github.com/cyberarm/cyberarm_engine"
14
- spec.license = "MIT"
15
-
16
- if spec.respond_to?(:metadata)
17
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
- else
19
- raise "RubyGems 2.0 or newer is required to protect against " \
20
- "public gem pushes."
21
- end
22
-
23
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
- f.match(%r{^(test|spec|features)/})
25
- end
26
- spec.bindir = "exe"
27
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
- spec.require_paths = %w[lib assets]
29
-
30
- spec.add_dependency "gosu", "~> 1.1"
31
- # spec.add_dependency "ffi", :platforms => [:mswin, :mingw] # Required by Clipboard on Windows
32
-
33
- spec.add_development_dependency "bundler", "~> 2.2"
34
- spec.add_development_dependency "minitest", "~> 5.0"
35
- spec.add_development_dependency "rake", "~> 13.0"
36
- end
1
+ lib = File.expand_path("lib", __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "cyberarm_engine/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "cyberarm_engine"
7
+ spec.version = CyberarmEngine::VERSION
8
+ spec.authors = ["Cyberarm"]
9
+ spec.email = ["matthewlikesrobots@gmail.com"]
10
+
11
+ spec.summary = "Make games quickly and easily with gosu"
12
+ spec.description = "Yet another game making framework around gosu"
13
+ spec.homepage = "https://github.com/cyberarm/cyberarm_engine"
14
+ spec.license = "MIT"
15
+
16
+ if spec.respond_to?(:metadata)
17
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
+ else
19
+ raise "RubyGems 2.0 or newer is required to protect against " \
20
+ "public gem pushes."
21
+ end
22
+
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
+ f.match(%r{^(test|spec|features)/})
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = %w[lib assets]
29
+
30
+ spec.add_dependency "gosu", "~> 1.1"
31
+
32
+ spec.add_development_dependency "bundler", "~> 4"
33
+ spec.add_development_dependency "minitest", "~> 5.0"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
+ end