epall-limelight 0.5.0-java

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 (282) hide show
  1. data/bin/icons/icon.ico +0 -0
  2. data/bin/icons/icon_48.gif +0 -0
  3. data/bin/icons/limelight.icns +0 -0
  4. data/bin/limelight +5 -0
  5. data/bin/ll +10 -0
  6. data/bin/ll.bat +5 -0
  7. data/lib/init.rb +16 -0
  8. data/lib/limelight.jar +0 -0
  9. data/lib/limelight/animation.rb +41 -0
  10. data/lib/limelight/builtin/players.rb +16 -0
  11. data/lib/limelight/builtin/players/button.rb +39 -0
  12. data/lib/limelight/builtin/players/check_box.rb +50 -0
  13. data/lib/limelight/builtin/players/combo_box.rb +89 -0
  14. data/lib/limelight/builtin/players/combo_box_popup_list.rb +19 -0
  15. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +21 -0
  16. data/lib/limelight/builtin/players/curtains.rb +23 -0
  17. data/lib/limelight/builtin/players/image.rb +54 -0
  18. data/lib/limelight/builtin/players/password_box.rb +34 -0
  19. data/lib/limelight/builtin/players/radio_button.rb +65 -0
  20. data/lib/limelight/builtin/players/stage_mover.rb +31 -0
  21. data/lib/limelight/builtin/players/stage_sizer.rb +34 -0
  22. data/lib/limelight/builtin/players/text_area.rb +34 -0
  23. data/lib/limelight/builtin/players/text_box.rb +34 -0
  24. data/lib/limelight/builtin/styles.rb +35 -0
  25. data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +11 -0
  26. data/lib/limelight/builtin/utilities_production/alert/props.rb +8 -0
  27. data/lib/limelight/builtin/utilities_production/alert/styles.rb +14 -0
  28. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +20 -0
  29. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +12 -0
  30. data/lib/limelight/builtin/utilities_production/production.rb +62 -0
  31. data/lib/limelight/builtin/utilities_production/stages.rb +12 -0
  32. data/lib/limelight/builtin/utilities_production/styles.rb +53 -0
  33. data/lib/limelight/button_group_cache.rb +11 -0
  34. data/lib/limelight/casting_director.rb +112 -0
  35. data/lib/limelight/client/playbills.rb +86 -0
  36. data/lib/limelight/commands/command.rb +168 -0
  37. data/lib/limelight/commands/create_command.rb +98 -0
  38. data/lib/limelight/commands/freeze_command.rb +131 -0
  39. data/lib/limelight/commands/help_command.rb +61 -0
  40. data/lib/limelight/commands/open_command.rb +60 -0
  41. data/lib/limelight/commands/pack_command.rb +45 -0
  42. data/lib/limelight/commands/unpack_command.rb +44 -0
  43. data/lib/limelight/commands/version_command.rb +31 -0
  44. data/lib/limelight/data.rb +37 -0
  45. data/lib/limelight/dsl/build_exception.rb +55 -0
  46. data/lib/limelight/dsl/menu_bar.rb +71 -0
  47. data/lib/limelight/dsl/prop_builder.rb +155 -0
  48. data/lib/limelight/dsl/stage_builder.rb +105 -0
  49. data/lib/limelight/dsl/styles_builder.rb +157 -0
  50. data/lib/limelight/file_chooser.rb +68 -0
  51. data/lib/limelight/file_filter.rb +33 -0
  52. data/lib/limelight/file_loader.rb +46 -0
  53. data/lib/limelight/gems.rb +51 -0
  54. data/lib/limelight/java_couplings.rb +66 -0
  55. data/lib/limelight/java_util.rb +49 -0
  56. data/lib/limelight/limelight_exception.rb +24 -0
  57. data/lib/limelight/main.rb +108 -0
  58. data/lib/limelight/paint_action.rb +27 -0
  59. data/lib/limelight/pen.rb +83 -0
  60. data/lib/limelight/producer.rb +179 -0
  61. data/lib/limelight/production.rb +169 -0
  62. data/lib/limelight/prop.rb +367 -0
  63. data/lib/limelight/scene.rb +151 -0
  64. data/lib/limelight/specs/spec_helper.rb +87 -0
  65. data/lib/limelight/specs/test_scene_opener.rb +60 -0
  66. data/lib/limelight/stage.rb +292 -0
  67. data/lib/limelight/string.rb +38 -0
  68. data/lib/limelight/studio.rb +185 -0
  69. data/lib/limelight/styles.rb +347 -0
  70. data/lib/limelight/templates/production_templater.rb +49 -0
  71. data/lib/limelight/templates/scene_templater.rb +47 -0
  72. data/lib/limelight/templates/sources/freezing/limelight_init.rb.template +5 -0
  73. data/lib/limelight/templates/sources/production/init.rb.template +15 -0
  74. data/lib/limelight/templates/sources/production/production.rb.template +49 -0
  75. data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +12 -0
  76. data/lib/limelight/templates/sources/production/stages.rb.template +17 -0
  77. data/lib/limelight/templates/sources/production/styles.rb.template +12 -0
  78. data/lib/limelight/templates/sources/scene/props.rb.template +6 -0
  79. data/lib/limelight/templates/sources/scene/styles.rb.template +18 -0
  80. data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
  81. data/lib/limelight/templates/templater.rb +131 -0
  82. data/lib/limelight/templates/templater_logger.rb +39 -0
  83. data/lib/limelight/theater.rb +77 -0
  84. data/lib/limelight/util.rb +65 -0
  85. data/lib/limelight/util/downloader.rb +115 -0
  86. data/lib/limelight/version.rb +20 -0
  87. data/productions/examples/8thlight.com/about/about.txt +24 -0
  88. data/productions/examples/8thlight.com/about/props.rb +11 -0
  89. data/productions/examples/8thlight.com/about/styles.rb +2 -0
  90. data/productions/examples/8thlight.com/footer.rb +6 -0
  91. data/productions/examples/8thlight.com/home/props.rb +28 -0
  92. data/productions/examples/8thlight.com/home/styles.rb +2 -0
  93. data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
  94. data/productions/examples/8thlight.com/images/bg.jpg +0 -0
  95. data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
  96. data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
  97. data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
  98. data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
  99. data/productions/examples/8thlight.com/images/header.jpg +0 -0
  100. data/productions/examples/8thlight.com/images/moses.jpg +0 -0
  101. data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
  102. data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
  103. data/productions/examples/8thlight.com/menu.rb +11 -0
  104. data/productions/examples/8thlight.com/services/props.rb +11 -0
  105. data/productions/examples/8thlight.com/services/services.txt +8 -0
  106. data/productions/examples/8thlight.com/services/styles.rb +2 -0
  107. data/productions/examples/8thlight.com/stages.rb +8 -0
  108. data/productions/examples/8thlight.com/styles.rb +210 -0
  109. data/productions/examples/calculator/players/button.rb +24 -0
  110. data/productions/examples/calculator/players/calculator.rb +15 -0
  111. data/productions/examples/calculator/players/calculator_model.rb +13 -0
  112. data/productions/examples/calculator/props.rb +23 -0
  113. data/productions/examples/calculator/styles.rb +36 -0
  114. data/productions/examples/langstons_ant/html_javascript/ant.css +39 -0
  115. data/productions/examples/langstons_ant/html_javascript/ant.html +22 -0
  116. data/productions/examples/langstons_ant/html_javascript/ant.js +23 -0
  117. data/productions/examples/langstons_ant/init.rb +4 -0
  118. data/productions/examples/langstons_ant/players/ant.rb +103 -0
  119. data/productions/examples/langstons_ant/players/log.rb +29 -0
  120. data/productions/examples/langstons_ant/players/start_stop_button.rb +37 -0
  121. data/productions/examples/langstons_ant/players/world.rb +35 -0
  122. data/productions/examples/langstons_ant/props.rb +22 -0
  123. data/productions/examples/langstons_ant/styles.rb +104 -0
  124. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +10 -0
  125. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +32 -0
  126. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +52 -0
  127. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +16 -0
  128. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +8 -0
  129. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +20 -0
  130. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +15 -0
  131. data/productions/examples/sandbox/alerts/players/alerts.rb +17 -0
  132. data/productions/examples/sandbox/alerts/props.rb +10 -0
  133. data/productions/examples/sandbox/alerts/styles.rb +46 -0
  134. data/productions/examples/sandbox/background_images/props.rb +22 -0
  135. data/productions/examples/sandbox/background_images/styles.rb +40 -0
  136. data/productions/examples/sandbox/click_me/players/chromaton.rb +52 -0
  137. data/productions/examples/sandbox/click_me/props.rb +8 -0
  138. data/productions/examples/sandbox/click_me/styles.rb +11 -0
  139. data/productions/examples/sandbox/floaters/players/floater.rb +108 -0
  140. data/productions/examples/sandbox/floaters/players/surface.rb +21 -0
  141. data/productions/examples/sandbox/floaters/props.rb +10 -0
  142. data/productions/examples/sandbox/floaters/styles.rb +24 -0
  143. data/productions/examples/sandbox/frameing/players/sandbox.rb +17 -0
  144. data/productions/examples/sandbox/frameing/props.rb +35 -0
  145. data/productions/examples/sandbox/frameing/styles.rb +45 -0
  146. data/productions/examples/sandbox/gradients/players/spinner.rb +20 -0
  147. data/productions/examples/sandbox/gradients/players/teaser.rb +19 -0
  148. data/productions/examples/sandbox/gradients/players/wave.rb +19 -0
  149. data/productions/examples/sandbox/gradients/players/waves.rb +19 -0
  150. data/productions/examples/sandbox/gradients/props.rb +13 -0
  151. data/productions/examples/sandbox/gradients/styles.rb +47 -0
  152. data/productions/examples/sandbox/header.rb +22 -0
  153. data/productions/examples/sandbox/homer/players/homer.rb +24 -0
  154. data/productions/examples/sandbox/homer/props.rb +10 -0
  155. data/productions/examples/sandbox/homer/styles.rb +16 -0
  156. data/productions/examples/sandbox/images/arch.jpg +0 -0
  157. data/productions/examples/sandbox/images/beach.jpg +0 -0
  158. data/productions/examples/sandbox/images/homer.jpg +0 -0
  159. data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
  160. data/productions/examples/sandbox/images/logo.png +0 -0
  161. data/productions/examples/sandbox/images/marilyn.jpg +0 -0
  162. data/productions/examples/sandbox/images/space.png +0 -0
  163. data/productions/examples/sandbox/images_scene/props.rb +36 -0
  164. data/productions/examples/sandbox/images_scene/styles.rb +34 -0
  165. data/productions/examples/sandbox/inputs/players/button_input.rb +48 -0
  166. data/productions/examples/sandbox/inputs/players/check_box_input.rb +40 -0
  167. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +41 -0
  168. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +43 -0
  169. data/productions/examples/sandbox/inputs/players/text_area_input.rb +36 -0
  170. data/productions/examples/sandbox/inputs/players/text_box_input.rb +36 -0
  171. data/productions/examples/sandbox/inputs/props.rb +40 -0
  172. data/productions/examples/sandbox/inputs/styles.rb +39 -0
  173. data/productions/examples/sandbox/kiosk/players/kiosk.rb +39 -0
  174. data/productions/examples/sandbox/kiosk/props.rb +9 -0
  175. data/productions/examples/sandbox/kiosk/styles.rb +37 -0
  176. data/productions/examples/sandbox/players/sandbox.rb +11 -0
  177. data/productions/examples/sandbox/rounded_corners/players/box.rb +11 -0
  178. data/productions/examples/sandbox/rounded_corners/props.rb +22 -0
  179. data/productions/examples/sandbox/rounded_corners/styles.rb +17 -0
  180. data/productions/examples/sandbox/scrolling/players/add_button.rb +19 -0
  181. data/productions/examples/sandbox/scrolling/players/cell.rb +15 -0
  182. data/productions/examples/sandbox/scrolling/props.rb +45 -0
  183. data/productions/examples/sandbox/scrolling/styles.rb +33 -0
  184. data/productions/examples/sandbox/sketching/players/sketchpad.rb +46 -0
  185. data/productions/examples/sandbox/sketching/props.rb +25 -0
  186. data/productions/examples/sandbox/sketching/styles.rb +35 -0
  187. data/productions/examples/sandbox/sounds/bird.au +0 -0
  188. data/productions/examples/sandbox/sounds/cat.au +0 -0
  189. data/productions/examples/sandbox/sounds/cow.au +0 -0
  190. data/productions/examples/sandbox/sounds/dog.au +0 -0
  191. data/productions/examples/sandbox/sounds/donkey.au +0 -0
  192. data/productions/examples/sandbox/sounds/duck.au +0 -0
  193. data/productions/examples/sandbox/sounds/players/clip.rb +10 -0
  194. data/productions/examples/sandbox/sounds/props.rb +10 -0
  195. data/productions/examples/sandbox/sounds/styles.rb +17 -0
  196. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +16 -0
  197. data/productions/examples/sandbox/stage_handles/players/sizer.rb +35 -0
  198. data/productions/examples/sandbox/stage_handles/props.rb +17 -0
  199. data/productions/examples/sandbox/stage_handles/styles.rb +58 -0
  200. data/productions/examples/sandbox/stages.rb +8 -0
  201. data/productions/examples/sandbox/styles.rb +35 -0
  202. data/productions/examples/sandbox/teaser/players/fader.rb +58 -0
  203. data/productions/examples/sandbox/teaser/props.rb +14 -0
  204. data/productions/examples/sandbox/teaser/styles.rb +21 -0
  205. data/productions/examples/tutorials/tutorial_1/players/sample.rb +11 -0
  206. data/productions/examples/tutorials/tutorial_1/props.rb +9 -0
  207. data/productions/examples/tutorials/tutorial_1/styles.rb +25 -0
  208. data/productions/playbills.lll +1 -0
  209. data/productions/stage_composer/init.rb +10 -0
  210. data/productions/stage_composer/inspector/players/inspector.rb +80 -0
  211. data/productions/stage_composer/inspector/players/prop_row.rb +12 -0
  212. data/productions/stage_composer/inspector/players/prop_tree.rb +33 -0
  213. data/productions/stage_composer/inspector/players/style_table.rb +12 -0
  214. data/productions/stage_composer/inspector/players/style_value.rb +16 -0
  215. data/productions/stage_composer/inspector/props.rb +19 -0
  216. data/productions/stage_composer/inspector/styles.rb +71 -0
  217. data/productions/stage_composer/lib/init.rb +5 -0
  218. data/productions/stage_composer/lib/limelight/composer/controller.rb +51 -0
  219. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +24 -0
  220. data/productions/stage_composer/production.rb +6 -0
  221. data/productions/stage_composer/stages.rb +15 -0
  222. data/productions/startup/images/logo.png +0 -0
  223. data/productions/startup/images/splash.png +0 -0
  224. data/productions/startup/production.rb +52 -0
  225. data/productions/startup/spec/default_scene/default_scene_spec.rb +16 -0
  226. data/productions/startup/spec/spec_helper.rb +8 -0
  227. data/productions/startup/stages.rb +9 -0
  228. data/productions/startup/styles.rb +15 -0
  229. data/productions/startup/welcome/players/browse_button.rb +10 -0
  230. data/productions/startup/welcome/players/download_button.rb +17 -0
  231. data/productions/startup/welcome/players/sandbox_button.rb +11 -0
  232. data/productions/startup/welcome/props.rb +23 -0
  233. data/productions/startup/welcome/styles.rb +103 -0
  234. data/spec/limelight/builtin/players/button_spec.rb +20 -0
  235. data/spec/limelight/builtin/players/check_box_spec.rb +29 -0
  236. data/spec/limelight/builtin/players/combo_box_spec.rb +29 -0
  237. data/spec/limelight/builtin/players/image_spec.rb +43 -0
  238. data/spec/limelight/builtin/players/password_box_spec.rb +27 -0
  239. data/spec/limelight/builtin/players/radio_button_spec.rb +64 -0
  240. data/spec/limelight/builtin/players/stage_mover_spec.rb +36 -0
  241. data/spec/limelight/builtin/players/stage_sizer_spec.rb +40 -0
  242. data/spec/limelight/builtin/players/text_area_spec.rb +27 -0
  243. data/spec/limelight/builtin/players/text_box_spec.rb +27 -0
  244. data/spec/limelight/builtin/utilities_production/spec_helper.rb +7 -0
  245. data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +146 -0
  246. data/spec/limelight/casting_director_spec.rb +164 -0
  247. data/spec/limelight/client/playbills_spec.rb +79 -0
  248. data/spec/limelight/commands/command_spec.rb +26 -0
  249. data/spec/limelight/commands/create_command_spec.rb +108 -0
  250. data/spec/limelight/commands/freeze_command_spec.rb +143 -0
  251. data/spec/limelight/commands/help_command_spec.rb +42 -0
  252. data/spec/limelight/commands/open_command_spec.rb +52 -0
  253. data/spec/limelight/commands/pack_command_spec.rb +26 -0
  254. data/spec/limelight/commands/unpack_command_spec.rb +47 -0
  255. data/spec/limelight/data_spec.rb +36 -0
  256. data/spec/limelight/dsl/prop_builder_spec.rb +245 -0
  257. data/spec/limelight/dsl/stage_builder_spec.rb +90 -0
  258. data/spec/limelight/dsl/styles_builder_spec.rb +194 -0
  259. data/spec/limelight/file_chooser_spec.rb +64 -0
  260. data/spec/limelight/file_filter_spec.rb +29 -0
  261. data/spec/limelight/file_loader_spec.rb +28 -0
  262. data/spec/limelight/gems_spec.rb +92 -0
  263. data/spec/limelight/java_util_spec.rb +37 -0
  264. data/spec/limelight/main_spec.rb +40 -0
  265. data/spec/limelight/paint_action_spec.rb +30 -0
  266. data/spec/limelight/pen_spec.rb +62 -0
  267. data/spec/limelight/producer_spec.rb +210 -0
  268. data/spec/limelight/production_spec.rb +100 -0
  269. data/spec/limelight/prop_spec.rb +431 -0
  270. data/spec/limelight/scene_spec.rb +173 -0
  271. data/spec/limelight/stage_spec.rb +202 -0
  272. data/spec/limelight/string_spec.rb +38 -0
  273. data/spec/limelight/studio_spec.rb +157 -0
  274. data/spec/limelight/styles_spec.rb +53 -0
  275. data/spec/limelight/templates/production_templater_spec.rb +66 -0
  276. data/spec/limelight/templates/scene_templater_spec.rb +51 -0
  277. data/spec/limelight/templates/templater_logger_spec.rb +41 -0
  278. data/spec/limelight/templates/templater_spec.rb +107 -0
  279. data/spec/limelight/theater_spec.rb +72 -0
  280. data/spec/limelight/util/downloader_spec.rb +92 -0
  281. data/spec/spec_helper.rb +70 -0
  282. metadata +335 -0
@@ -0,0 +1,24 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ module Button
5
+
6
+ def self.extended(extended_block)
7
+ puts "Button extended"
8
+ end
9
+
10
+ def mouse_clicked(e)
11
+ screen = scene.find('screen')
12
+ if self.text != "="
13
+ screen.text += self.text
14
+ screen.style.background_color = "yellow"
15
+ screen.update
16
+ else
17
+ result = eval(screen.text)
18
+ screen.text = result.to_s
19
+ screen.style.background_color = "white"
20
+ screen.update
21
+ end
22
+ puts "clicked"
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ require 'calculator_model'
5
+ module Calculator
6
+
7
+ attr_accessor :calculator_model
8
+
9
+ def extended
10
+ p self
11
+ @calculator_model = ::CalculatorModel.new
12
+ end
13
+
14
+
15
+ end
@@ -0,0 +1,13 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ class CalculatorModel
5
+ attr_accessor :display_text
6
+ def button_pressed(button)
7
+ if(button == "=")
8
+ @display_text = eval(@display_text).to_s
9
+ else
10
+ @display_text = display_text + button
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ __ :name => "calculator"
5
+ screen :id => "screen", :text => "1000000000"
6
+ buttons do
7
+ button :text => "1"
8
+ button :text => "2"
9
+ button :text => "3"
10
+ button :text => "+"
11
+ button :text => "4"
12
+ button :text => "5"
13
+ button :text => "6"
14
+ button :text => "-"
15
+ button :text => "7"
16
+ button :text => "8"
17
+ button :text => "9"
18
+ button :text => "="
19
+ button :text => ""
20
+ button :text => "0"
21
+ button :text => ""
22
+ button :text => ""
23
+ end
@@ -0,0 +1,36 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ calculator {
5
+ width 1000
6
+ height 900
7
+ alignment "top center"
8
+ background_color :blue
9
+ }
10
+
11
+ screen {
12
+ width 1000
13
+ height 100
14
+ background_color :red
15
+ left_margin 250
16
+ right_margin 250
17
+ text_color :black
18
+ font_size 20
19
+ }
20
+
21
+ buttons {
22
+ width 500
23
+ height 500
24
+ background_color :green
25
+ }
26
+
27
+ button {
28
+ width 125
29
+ height 125
30
+ background_color :white
31
+ text_color :black
32
+ font_size 20
33
+ alignment :center
34
+ border_width 10
35
+ border_color :black
36
+ }
@@ -0,0 +1,39 @@
1
+ body {
2
+ background-color: blue;
3
+ margin-left: auto;
4
+ margin-right: auto;
5
+ width: 600px;
6
+ }
7
+
8
+ #title {
9
+ border: 2px solid orange;
10
+ font-size: 20pt;
11
+ color: orange;
12
+ padding: 20px;
13
+ text-align: center;
14
+ }
15
+
16
+ #description {
17
+ font-size: 15pt;
18
+ margin: auto;
19
+ padding: 10px;
20
+ }
21
+
22
+ #world {
23
+ width: 500px;
24
+ height: 500px;
25
+ margin: auto;
26
+ border: 2px solid gray;
27
+ border-right: 1px solid gray;
28
+ border-bottom: 1px solid gray;
29
+ }
30
+
31
+ .row {
32
+
33
+ }
34
+
35
+ .cell {
36
+ width: 4px;
37
+ height: 4px;
38
+ border: 1px solid gray;
39
+ }
@@ -0,0 +1,22 @@
1
+ <html>
2
+ <head>
3
+ <title>Langston's Ant</title>
4
+ <link rel=StyleSheet href="ant.css" type="text/css" media="screen, print"/>
5
+ <script language="JavaScript" src="ant.js"></script>
6
+ </head>
7
+ <body onload="load()">
8
+ <div id="title">
9
+ Langston's Ant
10
+ </div>
11
+ <div id="description">
12
+ The Rules:<br/>
13
+ If the ant is on a black dot, paint it white and go right.<br/>
14
+ If the ant is on a white dot, paint it black and go left.<br/>
15
+ </div>
16
+ <table id="world" cellpadding="0" cellspacing="0">
17
+
18
+ </table>
19
+ <input type="submit" value="Start" onclick="start()">
20
+ </body>
21
+ </html>
22
+
@@ -0,0 +1,23 @@
1
+
2
+ function load()
3
+ {
4
+ var world = document.getElementById('world');
5
+ for(var row = 0; row < 99; row++)
6
+ {
7
+ var r = document.createElement('tr');
8
+ r.setAttribute('class', 'row');
9
+ world.appendChild(r);
10
+ for(var col = 0; col < 99; col++)
11
+ {
12
+ var c = document.createElement('td');
13
+ c.setAttribute('class', 'cell');
14
+ c.setAttribute('id', '' + row + "," + col);
15
+ r.appendChild(c);
16
+ }
17
+ }
18
+ }
19
+
20
+ function start()
21
+ {
22
+
23
+ }
@@ -0,0 +1,4 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ require File.expand_path(File.dirname(__FILE__) + "/players/ant")
@@ -0,0 +1,103 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ class Ant
5
+
6
+ NORTH = 1
7
+ SOUTH = 2
8
+ EAST = 3
9
+ WEST = 4
10
+
11
+ BLACK = "black"
12
+ WHITE = "white"
13
+
14
+ def initialize(x, y, world, world_size)
15
+ @world = world
16
+ @x = x
17
+ @y = y
18
+ @world_size = world_size
19
+ @direction = NORTH
20
+ @log = @world.scene.find("log")
21
+ @steps = 0
22
+ end
23
+
24
+ def walk
25
+ @walking = true
26
+ while @walking
27
+ make_step
28
+ @steps += 1
29
+ @log.update_counter(@steps)
30
+ @log.update_location("#{@x}, #{@y}")
31
+ # sleep(.25)
32
+ end
33
+ end
34
+
35
+ def stop
36
+ @walking = false
37
+ end
38
+
39
+ def make_step
40
+ if @world.cells["#{@x},#{@y}"] # black
41
+ @world.paint_cell(@x, @y, WHITE)
42
+ @world.cells["#{@x},#{@y}"] = false
43
+ go_right
44
+ else # white
45
+ @world.paint_cell(@x, @y, BLACK)
46
+ @world.cells["#{@x},#{@y}"] = true
47
+ go_left
48
+ end
49
+
50
+ # cell = @world.cell_index["#{@x},#{@y}"]
51
+ # if cell.style.background_color == BLACK
52
+ # cell.style.background_color = WHITE
53
+ # go_right
54
+ # else
55
+ # cell.style.background_color = BLACK
56
+ # go_left
57
+ # end
58
+ # cell.update_now
59
+ wrap_if_needed
60
+ end
61
+
62
+ def go_right
63
+ case @direction
64
+ when NORTH
65
+ @direction = EAST
66
+ @x += 1
67
+ when EAST
68
+ @direction = SOUTH
69
+ @y += 1
70
+ when SOUTH
71
+ @direction = WEST
72
+ @x -= 1
73
+ when WEST
74
+ @direction = NORTH
75
+ @y -= 1
76
+ end
77
+ end
78
+
79
+ def go_left
80
+ case @direction
81
+ when NORTH
82
+ @direction = WEST
83
+ @x -= 1
84
+ when EAST
85
+ @direction = NORTH
86
+ @y -= 1
87
+ when SOUTH
88
+ @direction = EAST
89
+ @x += 1
90
+ when WEST
91
+ @direction = SOUTH
92
+ @y += 1
93
+ end
94
+ end
95
+
96
+ def wrap_if_needed
97
+ @y = 0 if @y >= @world_size
98
+ @y = @world_size - 1 if @y < 0
99
+ @x = 0 if @x >= @world_size
100
+ @x = @world_size - 1 if @x < 0
101
+ end
102
+
103
+ end
@@ -0,0 +1,29 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ module Log
5
+
6
+ def self.extended(prop)
7
+ end
8
+
9
+ def update_counter(steps)
10
+ count.text = steps.to_s
11
+ count.update
12
+ end
13
+
14
+ def update_location(coords)
15
+ location.text = coords.to_s
16
+ location.update
17
+ end
18
+
19
+ def count
20
+ @count = scene.find("count") if not @count
21
+ return @count
22
+ end
23
+
24
+ def location
25
+ @location = scene.find("location") if not @location
26
+ return @location
27
+ end
28
+
29
+ end
@@ -0,0 +1,37 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ module StartStopButton
5
+
6
+ def self.extended(prop)
7
+ end
8
+
9
+ def mouse_clicked(e)
10
+ if self.text == "Start"
11
+ self.text = "Stop"
12
+ start
13
+ else
14
+ stop
15
+ self.text = "Start"
16
+ end
17
+ end
18
+
19
+ def start
20
+ world = scene.find("world")
21
+ world.draw_grid
22
+ @ant = Ant.new(50, 50, world, 100) if @ant.nil?
23
+ @thread = Thread.new do
24
+ begin
25
+ @ant.walk
26
+ rescue Exception => e
27
+ puts e
28
+ puts e.backtrace
29
+ end
30
+ end
31
+ end
32
+
33
+ def stop
34
+ @ant.stop
35
+ end
36
+
37
+ end
@@ -0,0 +1,35 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ module World
5
+
6
+ def self.extended(prop)
7
+ prop.cells = {}
8
+ end
9
+
10
+ attr_accessor :cells
11
+
12
+ def draw_grid()
13
+ area = bordered_area
14
+ pen = self.pen
15
+ pen.color = '#bbb'
16
+ x = 6
17
+ 99.times do |i|
18
+ pen.draw_line(x, area.top, x, area.bottom)
19
+ pen.draw_line(area.left, x, area.right, x)
20
+ x += 5
21
+ end
22
+ end
23
+
24
+ def paint_cell(x, y, color)
25
+ area = bordered_area
26
+ pen = self.pen
27
+ x2 = x * 5 + 2
28
+ y2 = y * 5 + 2
29
+ pen.color = color
30
+ pen.fill_rectangle(x2, y2, 4, 4)
31
+ end
32
+
33
+ attr_accessor :cell_index
34
+
35
+ end
@@ -0,0 +1,22 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ description_text = <<END
5
+ The Rules:
6
+ If the ant is on a black dot, paint it white and go right.
7
+ If the ant is on a white dot, paint it black and go left.
8
+ END
9
+
10
+ __ :name => "earth"
11
+ title :text => "Langston's Ant"
12
+ description :text => description_text
13
+ world :id => "world"
14
+ console {
15
+ start_stop_button :text => "Start", :players => "button"
16
+ log :id => "log" do
17
+ moves_label :text => "Moves:"
18
+ moves_counter :id => "count", :text => "# of moves"
19
+ location_label :text => "Location:"
20
+ location :id => "location", :text => "???"
21
+ end
22
+ }
@@ -0,0 +1,104 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
4
+ earth {
5
+ width 900
6
+ height 900
7
+ background_color "blue"
8
+ gradient :on
9
+ secondary_background_color "#88f"
10
+ gradient_angle 310
11
+ gradient_penetration 75
12
+ horizontal_alignment "center"
13
+ }
14
+
15
+ title {
16
+ width "100%"
17
+ height 100
18
+ border_width 2
19
+ border_color "orange"
20
+ margin 10
21
+ alignment "center"
22
+ text_color "orange"
23
+ font_size 30
24
+ font_face "Arial"
25
+ font_style "bold italics"
26
+ }
27
+
28
+ world {
29
+ width 503
30
+ height 503
31
+ border_width 2
32
+ border_color "#bbb"
33
+ }
34
+
35
+ cell {
36
+ width 10
37
+ height 10
38
+ right_border_width 1
39
+ bottom_border_width 1
40
+ border_color "#bbb"
41
+ font_size 2
42
+ }
43
+
44
+ console {
45
+ width "100%"
46
+ height 100
47
+ top_margin 20
48
+ left_padding 200
49
+ }
50
+
51
+ description {
52
+ width "100%"
53
+ height 100
54
+ top_margin 10
55
+ left_padding 200
56
+ right_padding 200
57
+ text_color "black"
58
+ font_size 20
59
+ }
60
+
61
+ log {
62
+ width 400
63
+ height 60
64
+ left_padding 50
65
+ }
66
+
67
+ moves_label {
68
+ width 90
69
+ height 30
70
+ text_color "orange"
71
+ font_size 20
72
+ }
73
+
74
+ moves_counter {
75
+ width 260
76
+ height 30
77
+ text_color "black"
78
+ font_size 20
79
+ background_color "white"
80
+ border_color "black"
81
+ border_width 1
82
+ bottom_margin 5
83
+ left_padding 5
84
+ }
85
+
86
+ location_label {
87
+ width 90
88
+ height 30
89
+ text_color "orange"
90
+ font_size 20
91
+ }
92
+
93
+ location {
94
+ width 260
95
+ height 30
96
+ text_color "black"
97
+ font_size 20
98
+ background_color "white"
99
+ border_color "black"
100
+ border_width 1
101
+ bottom_margin 5
102
+ left_padding 5
103
+ }
104
+