diff options
Diffstat (limited to 'lib/felpack/r2d/bindings.rb')
| -rw-r--r-- | lib/felpack/r2d/bindings.rb | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/lib/felpack/r2d/bindings.rb b/lib/felpack/r2d/bindings.rb new file mode 100644 index 0000000..304dc19 --- /dev/null +++ b/lib/felpack/r2d/bindings.rb @@ -0,0 +1,136 @@ +# frozen_string_literal: true + +require_relative "bindings/version" +require 'ruby2d' +require 'felflame' + +FelFlame::Components.new('RenderQuads') +FelFlame::Components::RenderQuads.new +FelFlame::Components.new('Quads', + x1: 125, y1: 0, + x2: 225, y2: 0, + x3: 250, y3: 100, + x4: 150, y4: 100, + color: [ + [0.8, 0.3, 0.7, 0.8], + [0.1, 0.9, 0.1, 1.0], + [0.8, 0.5, 0.8, 1.0], + [0.6, 0.4, 0.1, 1.0] + ]) +FelFlame::Components.new('RenderRectangles') +FelFlame::Components::RenderRectangles.new +FelFlame::Components.new('Rectangles', + x: 225, y: 125, width: 100, height: 100, + color: [ + [0.8, 0.3, 0.7, 0.8], + [0.1, 0.9, 0.1, 1.0], + [0.8, 0.5, 0.8, 1.0], + [0.6, 0.4, 0.1, 1.0] + ] + ) +FelFlame::Components.new('RenderSquares') +FelFlame::Components::RenderSquares.new +FelFlame::Components.new('Squares', + x: 125, y: 250, size: 100, + color: [ + [0.8, 0.3, 0.7, 0.8], + [0.1, 0.9, 0.1, 1.0], + [0.8, 0.5, 0.8, 1.0], + [0.6, 0.4, 0.1, 1.0] + ] + ) +FelFlame::Components.new('RenderLines') +FelFlame::Components::RenderLines.new +FelFlame::Components.new('Lines', + x1: 130, y1: 375, x2: 220, y2: 475, width: 5, + color: [ + [0.8, 0.3, 0.7, 0.8], + [0.1, 0.9, 0.1, 1.0], + [0.8, 0.5, 0.8, 1.0], + [0.6, 0.4, 0.1, 1.0] + ]) +FelFlame::Components.new('RenderTriangles') +FelFlame::Components::RenderTriangles.new +FelFlame::Components.new('Triangles', + x1: 450, y1: 0, x2: 500, y2: 100, x3: 400, y3: 100, + color: [ + [0.8, 0.3, 0.7, 0.8], + [0.1, 0.9, 0.1, 1.0], + [0.8, 0.5, 0.8, 1.0] + ]) +FelFlame::Components.new('RenderPixels') +FelFlame::Components::RenderPixels.new +FelFlame::Components.new('Pixels', + x: 525, y: 175, radius: 50, sectors: 30, + color: [0.8, 0.3, 0.7, 0.8] + ) + +FelFlame::Systems.new('RenderQuads', priority: 999) do + FelFlame::Components::RenderQuads.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Quads].each do |quad| + Quad.draw(quad.attrs) + end + end + end +end + +FelFlame::Systems.new('RenderRectangles', priority: 999) do + FelFlame::Components::RenderRectangles.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Rectangles].each do |rectangle| + Rectangle.draw(rectangle.attrs) + end + end + end +end + +FelFlame::Systems.new('RenderSquares', priority: 999) do + FelFlame::Components::RenderSquares.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Squares].each do |square| + Square.draw(square.attrs) + end + end + end +end + +FelFlame::Systems.new('RenderLines', priority: 999) do + FelFlame::Components::RenderLines.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Lines].each do |line| + Line.draw(line.attrs) + end + end + end +end + +FelFlame::Systems.new('RenderTriangles', priority: 999) do + FelFlame::Components::RenderTriangles.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Triangles].each do |triangle| + Triangle.draw(triangle.attrs) + end + end + end +end + +FelFlame::Systems.new('RenderPixels', priority: 999) do + FelFlame::Components::RenderPixels.each do |component| + component.entities.each do |entity| + entity.components[FelFlame::Components::Pixels].each do |pixel| + Pixel.draw(pixel.attrs) + end + end + end +end +FelFlame::Scenes.new 'RenderShapes' +FelFlame::Scenes::RenderShapes.add( + FF::Sys::RenderQuads, + FF::Sys::RenderRectangles, + FF::Sys::RenderSquares, + FF::Sys::RenderLines, + FF::Sys::RenderTriangles, + FF::Sys::RenderPixels, +) +FelFlame::Stage.add FelFlame::Scenes::RenderShapes |
