teien 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
-