belts 0.1.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.
- 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: []
|