teien 0.1.0 → 0.2.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 (53) hide show
  1. data/README.md +4 -4
  2. data/bin/teien +5 -1
  3. data/lib/teien/animation/animation_manager.rb +2 -2
  4. data/lib/teien/animation/animation_manager_proxy.rb +2 -2
  5. data/lib/teien/application/local_application.rb +12 -0
  6. data/lib/teien/application/proxy_application.rb +28 -0
  7. data/lib/teien/application/server_application.rb +28 -0
  8. data/lib/teien/base_object/base_object_manager.rb +2 -4
  9. data/lib/teien/base_object/base_object_manager_base.rb +3 -3
  10. data/lib/teien/base_object/base_object_manager_proxy.rb +2 -4
  11. data/lib/teien/base_object/physics.rb +8 -9
  12. data/lib/teien/core/component_manager.rb +3 -1
  13. data/lib/teien/core/event_router.rb +33 -7
  14. data/lib/teien/core/network.rb +4 -0
  15. data/lib/teien/ui/user_interface.rb +3 -5
  16. data/lib/teien/ui/view.rb +7 -4
  17. data/lib/teien/version.rb +1 -1
  18. data/samples/actor/client +2 -0
  19. data/{mods/actor/configs → samples/actor/config}/plugins.cfg +0 -0
  20. data/{mods/actor/configs → samples/actor/config}/resources.cfg +0 -0
  21. data/samples/actor/lib/client.rb +38 -0
  22. data/{mods/actor/apps/common/browser_event.rb → samples/actor/lib/event.rb} +3 -2
  23. data/samples/actor/lib/local.rb +63 -0
  24. data/{mods/actor/apps/server/server_application.rb → samples/actor/lib/model.rb} +15 -16
  25. data/samples/actor/lib/server.rb +37 -0
  26. data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad/sinbad_info.rb +1 -0
  27. data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad/sinbad_state.rb +0 -0
  28. data/{mods/actor/addons/sinbad → samples/actor}/lib/sinbad.rb +1 -0
  29. data/{mods/actor/apps/browser/browser_application.rb → samples/actor/lib/ui.rb} +13 -27
  30. data/samples/actor/local +2 -0
  31. data/samples/actor/server +2 -0
  32. data/samples/hello_garden/client +2 -0
  33. data/{mods/hello_garden/configs → samples/hello_garden/config}/plugins.cfg +0 -0
  34. data/{mods/hello_garden/configs → samples/hello_garden/config}/resources.cfg +0 -0
  35. data/samples/hello_garden/lib/client.rb +41 -0
  36. data/{mods/hello_garden/apps/common/browser_event.rb → samples/hello_garden/lib/event.rb} +3 -2
  37. data/samples/hello_garden/lib/local.rb +56 -0
  38. data/{mods/hello_garden/apps/server/server_application.rb → samples/hello_garden/lib/model.rb} +22 -22
  39. data/samples/hello_garden/lib/server.rb +34 -0
  40. data/{mods/hello_garden/apps/browser/browser_application.rb → samples/hello_garden/lib/ui.rb} +14 -26
  41. data/samples/hello_garden/local +2 -0
  42. data/samples/hello_garden/server +2 -0
  43. metadata +42 -37
  44. data/lib/teien/addon/addon.rb +0 -25
  45. data/lib/teien/application/application.rb +0 -43
  46. data/lib/teien/commands/browser_command.rb +0 -46
  47. data/lib/teien/commands/local_command.rb +0 -21
  48. data/lib/teien/commands/server_command.rb +0 -39
  49. data/lib/teien/commands/std_command.rb +0 -71
  50. data/lib/teien/core/launcher.rb +0 -31
  51. data/mods/actor/commands/ai/actor_ai.rb +0 -117
  52. data/mods/actor/commands/ai_command.rb +0 -20
  53. 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
@@ -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
@@ -1,6 +0,0 @@
1
- #!/bin/sh
2
-
3
- teien local
4
-
5
-
6
-