teien 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -4
- data/bin/teien +5 -1
- data/lib/teien/animation/animation_manager.rb +2 -2
- data/lib/teien/animation/animation_manager_proxy.rb +2 -2
- data/lib/teien/application/local_application.rb +12 -0
- data/lib/teien/application/proxy_application.rb +28 -0
- data/lib/teien/application/server_application.rb +28 -0
- data/lib/teien/base_object/base_object_manager.rb +2 -4
- data/lib/teien/base_object/base_object_manager_base.rb +3 -3
- data/lib/teien/base_object/base_object_manager_proxy.rb +2 -4
- data/lib/teien/base_object/physics.rb +8 -9
- data/lib/teien/core/component_manager.rb +3 -1
- data/lib/teien/core/event_router.rb +33 -7
- data/lib/teien/core/network.rb +4 -0
- data/lib/teien/ui/user_interface.rb +3 -5
- data/lib/teien/ui/view.rb +7 -4
- data/lib/teien/version.rb +1 -1
- data/samples/actor/client +2 -0
- data/{mods/actor/configs → samples/actor/config}/plugins.cfg +0 -0
- data/{mods/actor/configs → samples/actor/config}/resources.cfg +0 -0
- data/samples/actor/lib/client.rb +38 -0
- data/{mods/actor/apps/common/browser_event.rb → samples/actor/lib/event.rb} +3 -2
- data/samples/actor/lib/local.rb +63 -0
- data/{mods/actor/apps/server/server_application.rb → samples/actor/lib/model.rb} +15 -16
- data/samples/actor/lib/server.rb +37 -0
- data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad/sinbad_info.rb +1 -0
- data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad/sinbad_state.rb +0 -0
- data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad.rb +1 -0
- data/{mods/actor/apps/browser/browser_application.rb → samples/actor/lib/ui.rb} +13 -27
- data/samples/actor/local +2 -0
- data/samples/actor/server +2 -0
- data/samples/hello_garden/client +2 -0
- data/{mods/hello_garden/configs → samples/hello_garden/config}/plugins.cfg +0 -0
- data/{mods/hello_garden/configs → samples/hello_garden/config}/resources.cfg +0 -0
- data/samples/hello_garden/lib/client.rb +41 -0
- data/{mods/hello_garden/apps/common/browser_event.rb → samples/hello_garden/lib/event.rb} +3 -2
- data/samples/hello_garden/lib/local.rb +56 -0
- data/{mods/hello_garden/apps/server/server_application.rb → samples/hello_garden/lib/model.rb} +22 -22
- data/samples/hello_garden/lib/server.rb +34 -0
- data/{mods/hello_garden/apps/browser/browser_application.rb → samples/hello_garden/lib/ui.rb} +14 -26
- data/samples/hello_garden/local +2 -0
- data/samples/hello_garden/server +2 -0
- metadata +42 -37
- data/lib/teien/addon/addon.rb +0 -25
- data/lib/teien/application/application.rb +0 -43
- data/lib/teien/commands/browser_command.rb +0 -46
- data/lib/teien/commands/local_command.rb +0 -21
- data/lib/teien/commands/server_command.rb +0 -39
- data/lib/teien/commands/std_command.rb +0 -71
- data/lib/teien/core/launcher.rb +0 -31
- data/mods/actor/commands/ai/actor_ai.rb +0 -117
- data/mods/actor/commands/ai_command.rb +0 -20
- data/mods/hello_garden/run +0 -6
@@ -1,46 +0,0 @@
|
|
1
|
-
require "teien/core/launcher"
|
2
|
-
|
3
|
-
module Teien
|
4
|
-
|
5
|
-
class BrowserCommand
|
6
|
-
def self.browser_command(argv)
|
7
|
-
ip = argv[1] ? argv[1] : "0.0.0.0"
|
8
|
-
port = argv[2] ? argv[2].to_i : 11922
|
9
|
-
|
10
|
-
start_browser(ip, port)
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.start_browser(ip, port)
|
14
|
-
event_router = Teien::EventRouter.new()
|
15
|
-
Teien::register_component("event_router", event_router)
|
16
|
-
|
17
|
-
require "teien/base_object/base_object_manager_proxy"
|
18
|
-
base_object_manager = Teien::BaseObjectManagerProxy.new(event_router)
|
19
|
-
Teien::register_component("base_object_manager", base_object_manager)
|
20
|
-
|
21
|
-
require 'teien/animation/animation_manager_proxy'
|
22
|
-
animation_manager = Teien::AnimationManagerProxy.new(event_router)
|
23
|
-
Teien::register_component("animation_manager", animation_manager)
|
24
|
-
|
25
|
-
require 'teien/actor/actor_manager_proxy'
|
26
|
-
actor_manager = Teien::ActorManagerProxy.new()
|
27
|
-
Teien::register_component("actor_manager", actor_manager)
|
28
|
-
|
29
|
-
require 'teien/ui/user_interface'
|
30
|
-
ui = Teien::UserInterface.new(event_router, base_object_manager)
|
31
|
-
Teien::register_component("user_interface", ui )
|
32
|
-
|
33
|
-
require 'teien/addon/addon'
|
34
|
-
Teien::Addon::load()
|
35
|
-
|
36
|
-
require 'teien/application/application'
|
37
|
-
Teien::Application::load("browser")
|
38
|
-
Teien::Application::instantiate()
|
39
|
-
|
40
|
-
event_router.connect_to_server(ip, port)
|
41
|
-
end
|
42
|
-
|
43
|
-
Launcher::register_command("browser", BrowserCommand.method(:browser_command))
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require "teien/core/launcher"
|
2
|
-
|
3
|
-
module Teien
|
4
|
-
|
5
|
-
class LocalCommand
|
6
|
-
def self.local_command(argv)
|
7
|
-
pid = Process.fork {
|
8
|
-
ServerCommand::start_server("0.0.0.0", 11922, 0.1)
|
9
|
-
}
|
10
|
-
begin
|
11
|
-
BrowserCommand::start_browser("0.0.0.0", 11922)
|
12
|
-
ensure
|
13
|
-
Process.kill("TERM", pid)
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
Launcher::register_command("local", LocalCommand.method(:local_command))
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require "teien/core/launcher"
|
2
|
-
|
3
|
-
module Teien
|
4
|
-
|
5
|
-
class ServerCommand
|
6
|
-
def self.server_command(argv)
|
7
|
-
start_server("0.0.0.0", 11922)
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.start_server(ip, port, sync_period = 0.3)
|
11
|
-
event_router = Teien::EventRouter.new()
|
12
|
-
Teien::register_component("event_router", event_router)
|
13
|
-
|
14
|
-
require "teien/base_object/base_object_manager"
|
15
|
-
base_object_manager = Teien::BaseObjectManager.new(event_router, sync_period)
|
16
|
-
Teien::register_component("base_object_manager", base_object_manager)
|
17
|
-
|
18
|
-
require 'teien/animation/animation_manager'
|
19
|
-
animation_manager = Teien::AnimationManager.new(event_router)
|
20
|
-
Teien::register_component("animation_manager", animation_manager)
|
21
|
-
|
22
|
-
require 'teien/actor/actor_manager'
|
23
|
-
actor_manager = Teien::ActorManager.new()
|
24
|
-
Teien::register_component("actor_manager", actor_manager)
|
25
|
-
|
26
|
-
require 'teien/addon/addon'
|
27
|
-
Teien::Addon::load()
|
28
|
-
|
29
|
-
require 'teien/application/application'
|
30
|
-
Teien::Application::load("server")
|
31
|
-
Teien::Application::instantiate()
|
32
|
-
|
33
|
-
event_router.start_server(ip, port)
|
34
|
-
end
|
35
|
-
|
36
|
-
Launcher::register_command("server", ServerCommand.method(:server_command))
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
module Teien
|
2
|
-
|
3
|
-
class StdCommand
|
4
|
-
def self.client_command(argv)
|
5
|
-
ip = argv[1] ? argv[1] : "0.0.0.0"
|
6
|
-
port = argv[2] ? argv[2].to_i : 11922
|
7
|
-
start_client_garden(ip, port)
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.local_command(argv)
|
11
|
-
start_local_garden()
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.alone_command(argv)
|
15
|
-
start_alone_garden()
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.start_client_garden(ip, port)
|
19
|
-
require "teien/proxy_garden.rb"
|
20
|
-
require 'teien/user_interface'
|
21
|
-
Dir.glob("#{Dir.getwd}/app/controllers/*.rb") {|file|
|
22
|
-
require "#{file}"
|
23
|
-
}
|
24
|
-
event_router = Teien::EventRouter.new()
|
25
|
-
garden = Teien::ProxyGarden.new(event_router)
|
26
|
-
ui = Teien::UserInterface.new(event_router, garden)
|
27
|
-
Teien::Controller.load(event_router, garden)
|
28
|
-
|
29
|
-
Teien::register_component("event_router", event_router)
|
30
|
-
Teien::register_component("garden", garden)
|
31
|
-
Teien::register_component("ui", ui )
|
32
|
-
event_router.connect_to_server(ip, port)
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.start_local_garden()
|
36
|
-
require 'teien/user_interface'
|
37
|
-
|
38
|
-
pid = Process.fork {
|
39
|
-
# start_server_garden("0.0.0.0", 11922, 10)
|
40
|
-
start_server_garden("0.0.0.0", 11922, 0.1)
|
41
|
-
}
|
42
|
-
begin
|
43
|
-
start_client_garden("0.0.0.0", 11922)
|
44
|
-
ensure
|
45
|
-
Process.kill("TERM", pid)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.start_alone_garden()
|
50
|
-
require "teien/garden.rb"
|
51
|
-
require 'teien/user_interface'
|
52
|
-
Dir.glob("#{Dir.getwd}/app/models/*.rb") {|file| require "#{file}" }
|
53
|
-
Dir.glob("#{Dir.getwd}/app/controllers/*.rb") {|file| require "#{file}" }
|
54
|
-
|
55
|
-
event_router = Teien::EventRouter.new()
|
56
|
-
garden = Teien::Garden.new(event_router)
|
57
|
-
ui =Teien::UserInterface.new(event_router, garden)
|
58
|
-
Teien::Model.load(event_router, garden)
|
59
|
-
Teien::Controller.load(event_router, garden)
|
60
|
-
|
61
|
-
Teien::register_component("event_router", event_router)
|
62
|
-
Teien::register_component("garden", garden)
|
63
|
-
Teien::register_component("ui", ui)
|
64
|
-
event_router.start_server()
|
65
|
-
end
|
66
|
-
|
67
|
-
Launcher::set_command("local", StdCommand.method(:local_command))
|
68
|
-
Launcher::set_command("alone", StdCommand.method(:alone_command))
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
data/lib/teien/core/launcher.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
module Teien
|
2
|
-
|
3
|
-
class Launcher
|
4
|
-
@@argv = nil
|
5
|
-
@command = Hash.new
|
6
|
-
|
7
|
-
def self.launch(argv)
|
8
|
-
@@argv = argv
|
9
|
-
|
10
|
-
if @command[argv[0]]
|
11
|
-
require 'teien'
|
12
|
-
@command[argv[0]].call(argv)
|
13
|
-
else
|
14
|
-
puts "Command List:"
|
15
|
-
@command.each_key {|key|
|
16
|
-
puts key
|
17
|
-
}
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.register_command(command_name, method)
|
22
|
-
@command[command_name] = method
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.argv
|
26
|
-
return @@argv
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
@@ -1,117 +0,0 @@
|
|
1
|
-
require 'teien'
|
2
|
-
require_relative '../../app/helpers/user_event'
|
3
|
-
require_relative '../../app/helpers/sinbad/sinbad'
|
4
|
-
|
5
|
-
include Teien
|
6
|
-
|
7
|
-
class ActorAi
|
8
|
-
def initialize(garden)
|
9
|
-
@garden = garden
|
10
|
-
@garden.register_receiver(self)
|
11
|
-
end
|
12
|
-
|
13
|
-
def setup(garden)
|
14
|
-
@quit = false
|
15
|
-
@actor = nil
|
16
|
-
|
17
|
-
@first_update = true
|
18
|
-
@moveTime = 1.0
|
19
|
-
@active = false
|
20
|
-
end
|
21
|
-
|
22
|
-
def update(delta)
|
23
|
-
if @first_update
|
24
|
-
event = Event::RequestControllable.new()
|
25
|
-
@garden.send_event(event)
|
26
|
-
@first_update = false
|
27
|
-
end
|
28
|
-
|
29
|
-
if @actor
|
30
|
-
|
31
|
-
if @moveTime > 0
|
32
|
-
unless @leftActive
|
33
|
-
@leftActive = true
|
34
|
-
@rightActive = false
|
35
|
-
@moveTime = 2.0
|
36
|
-
event = Event::DisableAction.new(@actor.name)
|
37
|
-
event.right = true
|
38
|
-
@garden.send_event(event)
|
39
|
-
|
40
|
-
event = Event::EnableAction.new(@actor.name)
|
41
|
-
event.left = true
|
42
|
-
@garden.send_event(event)
|
43
|
-
|
44
|
-
puts "left"
|
45
|
-
end
|
46
|
-
@moveTime -= delta
|
47
|
-
else
|
48
|
-
unless @rightActive
|
49
|
-
@rightActive = true
|
50
|
-
@leftActive = false
|
51
|
-
@moveTime = -2.0
|
52
|
-
@active = false
|
53
|
-
event = Event::DisableAction.new(@actor.name)
|
54
|
-
event.left = true
|
55
|
-
@garden.send_event(event)
|
56
|
-
|
57
|
-
event = Event::EnableAction.new(@actor.name)
|
58
|
-
event.right = true
|
59
|
-
@garden.send_event(event)
|
60
|
-
puts "right"
|
61
|
-
end
|
62
|
-
@moveTime += delta
|
63
|
-
end
|
64
|
-
|
65
|
-
event = Event::SetForwardDirection.new(@actor.name, Vector3D.new(1.0, 0.0, 0.0))
|
66
|
-
# @garden.actors[event.actor_name].set_forward_direction(event.dir)
|
67
|
-
@garden.send_event(event)
|
68
|
-
# event = Event::SetForwardDirection.new(@actor.name, Vector3D.to_self(@camera_mover.camera.get_direction()))
|
69
|
-
#
|
70
|
-
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def receive_event(event, from)
|
75
|
-
case event
|
76
|
-
when Event::SyncSinbad
|
77
|
-
unless (@garden.actors[event.actor_name])
|
78
|
-
actor = Sinbad.load_event(@garden, event)
|
79
|
-
@garden.actors[event.actor_name] = actor
|
80
|
-
end
|
81
|
-
# puts "SyncSindbad: #{event.actor_name}"
|
82
|
-
when Event::ControllableObject
|
83
|
-
@actor = @garden.actors[event.actor_name]
|
84
|
-
puts event.actor_name
|
85
|
-
puts @actor
|
86
|
-
|
87
|
-
when Event::SetForwardDirection
|
88
|
-
if @garden.actors[event.actor_name]
|
89
|
-
@garden.actors[event.actor_name].set_forward_direction(event.dir)
|
90
|
-
end
|
91
|
-
when Event::EnableAction
|
92
|
-
if event.forward
|
93
|
-
@garden.actors[event.actor_name].move_forward(true)
|
94
|
-
elsif event.backward
|
95
|
-
@garden.actors[event.actor_name].move_backward(true)
|
96
|
-
elsif event.left
|
97
|
-
@garden.actors[event.actor_name].move_left(true)
|
98
|
-
elsif event.right
|
99
|
-
@garden.actors[event.actor_name].move_right(true)
|
100
|
-
elsif event.jump
|
101
|
-
@garden.actors[event.actor_name].jump(true)
|
102
|
-
end
|
103
|
-
when Event::DisableAction
|
104
|
-
if event.forward
|
105
|
-
@garden.actors[event.actor_name].move_forward(false)
|
106
|
-
elsif event.backward
|
107
|
-
@garden.actors[event.actor_name].move_backward(false)
|
108
|
-
elsif event.left
|
109
|
-
@garden.actors[event.actor_name].move_left(false)
|
110
|
-
elsif event.right
|
111
|
-
@garden.actors[event.actor_name].move_right(false)
|
112
|
-
elsif event.jump
|
113
|
-
@garden.actors[event.actor_name].jump(false)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Teien
|
2
|
-
class AiCommand
|
3
|
-
def self.ai_command(argv)
|
4
|
-
=begin
|
5
|
-
require "teien/proxy_garden.rb"
|
6
|
-
require_relative "ai/actor_ai.rb"
|
7
|
-
|
8
|
-
ip = ARGV[1] ? ARGV[1] : "0.0.0.0"
|
9
|
-
port = ARGV[2] ? ARGV[2].to_i : 11922
|
10
|
-
|
11
|
-
garden = Teien::ProxyGarden.new()
|
12
|
-
ai = ActorAi.new(garden)
|
13
|
-
|
14
|
-
garden.run(ip, port)
|
15
|
-
=end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
Teien::Launcher::register_command("ai", AiCommand.method(:ai_command))
|
20
|
-
end
|