belts 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/belts +15 -0
- data/lib/belts/engine.rb +42 -0
- data/lib/belts/generator.rb +12 -0
- data/lib/belts/initializer.rb +17 -0
- data/lib/belts/templates/Gemfile.tt +5 -0
- data/lib/belts/templates/app/components/spinner.rb.tt +1 -0
- data/lib/belts/templates/app/prefabs/camera_3d.rb.tt +3 -0
- data/lib/belts/templates/app/prefabs/spinning_cube.rb.tt +4 -0
- data/lib/belts/templates/app/scenes/main_scene.rb.tt +4 -0
- data/lib/belts/templates/app/systems/spinner_system.rb.tt +14 -0
- data/lib/belts/templates/config/application.rb.tt +3 -0
- data/lib/belts/templates/config/game.rb.tt +3 -0
- data/lib/belts.rb +8 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b0903430f0f1a0f6fad3768aefe49e5fae3f70521480a9a6def841ce15992ede
|
4
|
+
data.tar.gz: 112b831db0f9f1e9699109a19b35c6b14523087c9c9a4c5fe92c5fa543e7f8bb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 643ce0ca3130c152f96095d5126bcc5344e2b69201080fc4e2e5f7d2e6247f80c19f2dc9c502eddc5c5e9a717a9a119f592cd8e659555f38b2a72e9398b71c38
|
7
|
+
data.tar.gz: 345e803b6a713c25fa2ba7aeb06af32c47027a3780a03369f7a7845b3746d6f2bed35366c14b1f28c16cd64cc031a56bb2239839148b3341c2e5f3bd61485ac8
|
data/bin/belts
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'thor'
|
3
|
+
require 'belts'
|
4
|
+
|
5
|
+
class BeltsCLI < Thor
|
6
|
+
default_task :start
|
7
|
+
|
8
|
+
desc "start", "Starts the game"
|
9
|
+
subcommand "start", Belts::Initializer
|
10
|
+
|
11
|
+
desc "new NAME", "Generate a new project in the current directory with the given NAME"
|
12
|
+
subcommand "new", Belts::Generator
|
13
|
+
end
|
14
|
+
|
15
|
+
BeltsCLI.start
|
data/lib/belts/engine.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
module Belts
|
2
|
+
class Engine < Thor::Group
|
3
|
+
include Thor::Actions
|
4
|
+
|
5
|
+
argument :name
|
6
|
+
class_option :ruby_version, default: RUBY_VERSION
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.dirname(__FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_gemfile
|
13
|
+
template("templates/.ruby-version.tt", "#{name}/.ruby-version")
|
14
|
+
template("templates/Gemfile.tt", "#{name}/Gemfile")
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_config
|
18
|
+
config_files = [
|
19
|
+
"application.rb",
|
20
|
+
"game.rb"
|
21
|
+
]
|
22
|
+
|
23
|
+
config_files.each do |file|
|
24
|
+
template("templates/config/#{file}.tt", "#{name}/config/#{file}")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_app
|
29
|
+
app_files = [
|
30
|
+
"components/spinner.rb",
|
31
|
+
"prefabs/spinning_cube.rb",
|
32
|
+
"prefabs/camera_3d.rb",
|
33
|
+
"scenes/main_scene.rb",
|
34
|
+
"systems/spinner_system.rb"
|
35
|
+
]
|
36
|
+
|
37
|
+
app_files.each do |file|
|
38
|
+
template("templates/app/#{file}.tt", "#{name}/app/#{file}")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Belts
|
2
|
+
class Generator < Thor
|
3
|
+
default_task :new
|
4
|
+
|
5
|
+
desc "new NAME", "Generate a new project in the current directory with the given NAME"
|
6
|
+
def new(name)
|
7
|
+
invoke :engine, name
|
8
|
+
end
|
9
|
+
|
10
|
+
register(Belts::Engine, "engine", "engine", "Badjoras")
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Belts
|
2
|
+
class Initializer < Thor
|
3
|
+
default_task :start
|
4
|
+
|
5
|
+
desc "start", "Starts the game"
|
6
|
+
def start
|
7
|
+
app_loader = Zeitwerk::Loader.new
|
8
|
+
app_loader.push_dir('config')
|
9
|
+
Dir.glob('app/*').each do |dir|
|
10
|
+
app_loader.push_dir dir
|
11
|
+
end
|
12
|
+
app_loader.setup
|
13
|
+
|
14
|
+
Application.new
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Spinner = Struct.new(nil)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class SpinnerSystem < BeltsEngine::System
|
2
|
+
collection :spinners,
|
3
|
+
with: [:transform, :spinner]
|
4
|
+
|
5
|
+
def update
|
6
|
+
speed = @time.delta_time * 30
|
7
|
+
|
8
|
+
spinners.each_with_components do |transform:, **|
|
9
|
+
transform.rotation.x += speed
|
10
|
+
transform.rotation.y += speed
|
11
|
+
transform.rotation.z += speed
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/belts.rb
ADDED
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: belts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Guilherme Graca
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-06-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: belts_engine
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: belts_opengl
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.2.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.2.1
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
executables:
|
58
|
+
- belts
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- bin/belts
|
63
|
+
- lib/belts.rb
|
64
|
+
- lib/belts/engine.rb
|
65
|
+
- lib/belts/generator.rb
|
66
|
+
- lib/belts/initializer.rb
|
67
|
+
- lib/belts/templates/Gemfile.tt
|
68
|
+
- lib/belts/templates/app/components/spinner.rb.tt
|
69
|
+
- lib/belts/templates/app/prefabs/camera_3d.rb.tt
|
70
|
+
- lib/belts/templates/app/prefabs/spinning_cube.rb.tt
|
71
|
+
- lib/belts/templates/app/scenes/main_scene.rb.tt
|
72
|
+
- lib/belts/templates/app/systems/spinner_system.rb.tt
|
73
|
+
- lib/belts/templates/config/application.rb.tt
|
74
|
+
- lib/belts/templates/config/game.rb.tt
|
75
|
+
homepage: https://github.com/ggraca/belts
|
76
|
+
licenses:
|
77
|
+
- MIT
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 3.1.2
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubygems_version: 3.3.7
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: A data-oriented game engine for Ruby.
|
98
|
+
test_files: []
|