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.
- data/bin/icons/icon.ico +0 -0
- data/bin/icons/icon_48.gif +0 -0
- data/bin/icons/limelight.icns +0 -0
- data/bin/limelight +5 -0
- data/bin/ll +10 -0
- data/bin/ll.bat +5 -0
- data/lib/init.rb +16 -0
- data/lib/limelight.jar +0 -0
- data/lib/limelight/animation.rb +41 -0
- data/lib/limelight/builtin/players.rb +16 -0
- data/lib/limelight/builtin/players/button.rb +39 -0
- data/lib/limelight/builtin/players/check_box.rb +50 -0
- data/lib/limelight/builtin/players/combo_box.rb +89 -0
- data/lib/limelight/builtin/players/combo_box_popup_list.rb +19 -0
- data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +21 -0
- data/lib/limelight/builtin/players/curtains.rb +23 -0
- data/lib/limelight/builtin/players/image.rb +54 -0
- data/lib/limelight/builtin/players/password_box.rb +34 -0
- data/lib/limelight/builtin/players/radio_button.rb +65 -0
- data/lib/limelight/builtin/players/stage_mover.rb +31 -0
- data/lib/limelight/builtin/players/stage_sizer.rb +34 -0
- data/lib/limelight/builtin/players/text_area.rb +34 -0
- data/lib/limelight/builtin/players/text_box.rb +34 -0
- data/lib/limelight/builtin/styles.rb +35 -0
- data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +11 -0
- data/lib/limelight/builtin/utilities_production/alert/props.rb +8 -0
- data/lib/limelight/builtin/utilities_production/alert/styles.rb +14 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +20 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +12 -0
- data/lib/limelight/builtin/utilities_production/production.rb +62 -0
- data/lib/limelight/builtin/utilities_production/stages.rb +12 -0
- data/lib/limelight/builtin/utilities_production/styles.rb +53 -0
- data/lib/limelight/button_group_cache.rb +11 -0
- data/lib/limelight/casting_director.rb +112 -0
- data/lib/limelight/client/playbills.rb +86 -0
- data/lib/limelight/commands/command.rb +168 -0
- data/lib/limelight/commands/create_command.rb +98 -0
- data/lib/limelight/commands/freeze_command.rb +131 -0
- data/lib/limelight/commands/help_command.rb +61 -0
- data/lib/limelight/commands/open_command.rb +60 -0
- data/lib/limelight/commands/pack_command.rb +45 -0
- data/lib/limelight/commands/unpack_command.rb +44 -0
- data/lib/limelight/commands/version_command.rb +31 -0
- data/lib/limelight/data.rb +37 -0
- data/lib/limelight/dsl/build_exception.rb +55 -0
- data/lib/limelight/dsl/menu_bar.rb +71 -0
- data/lib/limelight/dsl/prop_builder.rb +155 -0
- data/lib/limelight/dsl/stage_builder.rb +105 -0
- data/lib/limelight/dsl/styles_builder.rb +157 -0
- data/lib/limelight/file_chooser.rb +68 -0
- data/lib/limelight/file_filter.rb +33 -0
- data/lib/limelight/file_loader.rb +46 -0
- data/lib/limelight/gems.rb +51 -0
- data/lib/limelight/java_couplings.rb +66 -0
- data/lib/limelight/java_util.rb +49 -0
- data/lib/limelight/limelight_exception.rb +24 -0
- data/lib/limelight/main.rb +108 -0
- data/lib/limelight/paint_action.rb +27 -0
- data/lib/limelight/pen.rb +83 -0
- data/lib/limelight/producer.rb +179 -0
- data/lib/limelight/production.rb +169 -0
- data/lib/limelight/prop.rb +367 -0
- data/lib/limelight/scene.rb +151 -0
- data/lib/limelight/specs/spec_helper.rb +87 -0
- data/lib/limelight/specs/test_scene_opener.rb +60 -0
- data/lib/limelight/stage.rb +292 -0
- data/lib/limelight/string.rb +38 -0
- data/lib/limelight/studio.rb +185 -0
- data/lib/limelight/styles.rb +347 -0
- data/lib/limelight/templates/production_templater.rb +49 -0
- data/lib/limelight/templates/scene_templater.rb +47 -0
- data/lib/limelight/templates/sources/freezing/limelight_init.rb.template +5 -0
- data/lib/limelight/templates/sources/production/init.rb.template +15 -0
- data/lib/limelight/templates/sources/production/production.rb.template +49 -0
- data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +12 -0
- data/lib/limelight/templates/sources/production/stages.rb.template +17 -0
- data/lib/limelight/templates/sources/production/styles.rb.template +12 -0
- data/lib/limelight/templates/sources/scene/props.rb.template +6 -0
- data/lib/limelight/templates/sources/scene/styles.rb.template +18 -0
- data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
- data/lib/limelight/templates/templater.rb +131 -0
- data/lib/limelight/templates/templater_logger.rb +39 -0
- data/lib/limelight/theater.rb +77 -0
- data/lib/limelight/util.rb +65 -0
- data/lib/limelight/util/downloader.rb +115 -0
- data/lib/limelight/version.rb +20 -0
- data/productions/examples/8thlight.com/about/about.txt +24 -0
- data/productions/examples/8thlight.com/about/props.rb +11 -0
- data/productions/examples/8thlight.com/about/styles.rb +2 -0
- data/productions/examples/8thlight.com/footer.rb +6 -0
- data/productions/examples/8thlight.com/home/props.rb +28 -0
- data/productions/examples/8thlight.com/home/styles.rb +2 -0
- data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
- data/productions/examples/8thlight.com/images/bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
- data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/header.jpg +0 -0
- data/productions/examples/8thlight.com/images/moses.jpg +0 -0
- data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
- data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
- data/productions/examples/8thlight.com/menu.rb +11 -0
- data/productions/examples/8thlight.com/services/props.rb +11 -0
- data/productions/examples/8thlight.com/services/services.txt +8 -0
- data/productions/examples/8thlight.com/services/styles.rb +2 -0
- data/productions/examples/8thlight.com/stages.rb +8 -0
- data/productions/examples/8thlight.com/styles.rb +210 -0
- data/productions/examples/calculator/players/button.rb +24 -0
- data/productions/examples/calculator/players/calculator.rb +15 -0
- data/productions/examples/calculator/players/calculator_model.rb +13 -0
- data/productions/examples/calculator/props.rb +23 -0
- data/productions/examples/calculator/styles.rb +36 -0
- data/productions/examples/langstons_ant/html_javascript/ant.css +39 -0
- data/productions/examples/langstons_ant/html_javascript/ant.html +22 -0
- data/productions/examples/langstons_ant/html_javascript/ant.js +23 -0
- data/productions/examples/langstons_ant/init.rb +4 -0
- data/productions/examples/langstons_ant/players/ant.rb +103 -0
- data/productions/examples/langstons_ant/players/log.rb +29 -0
- data/productions/examples/langstons_ant/players/start_stop_button.rb +37 -0
- data/productions/examples/langstons_ant/players/world.rb +35 -0
- data/productions/examples/langstons_ant/props.rb +22 -0
- data/productions/examples/langstons_ant/styles.rb +104 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +10 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +32 -0
- data/productions/examples/sandbox/alerts/incompatible_production/production.rb +52 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +8 -0
- data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +20 -0
- data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +15 -0
- data/productions/examples/sandbox/alerts/players/alerts.rb +17 -0
- data/productions/examples/sandbox/alerts/props.rb +10 -0
- data/productions/examples/sandbox/alerts/styles.rb +46 -0
- data/productions/examples/sandbox/background_images/props.rb +22 -0
- data/productions/examples/sandbox/background_images/styles.rb +40 -0
- data/productions/examples/sandbox/click_me/players/chromaton.rb +52 -0
- data/productions/examples/sandbox/click_me/props.rb +8 -0
- data/productions/examples/sandbox/click_me/styles.rb +11 -0
- data/productions/examples/sandbox/floaters/players/floater.rb +108 -0
- data/productions/examples/sandbox/floaters/players/surface.rb +21 -0
- data/productions/examples/sandbox/floaters/props.rb +10 -0
- data/productions/examples/sandbox/floaters/styles.rb +24 -0
- data/productions/examples/sandbox/frameing/players/sandbox.rb +17 -0
- data/productions/examples/sandbox/frameing/props.rb +35 -0
- data/productions/examples/sandbox/frameing/styles.rb +45 -0
- data/productions/examples/sandbox/gradients/players/spinner.rb +20 -0
- data/productions/examples/sandbox/gradients/players/teaser.rb +19 -0
- data/productions/examples/sandbox/gradients/players/wave.rb +19 -0
- data/productions/examples/sandbox/gradients/players/waves.rb +19 -0
- data/productions/examples/sandbox/gradients/props.rb +13 -0
- data/productions/examples/sandbox/gradients/styles.rb +47 -0
- data/productions/examples/sandbox/header.rb +22 -0
- data/productions/examples/sandbox/homer/players/homer.rb +24 -0
- data/productions/examples/sandbox/homer/props.rb +10 -0
- data/productions/examples/sandbox/homer/styles.rb +16 -0
- data/productions/examples/sandbox/images/arch.jpg +0 -0
- data/productions/examples/sandbox/images/beach.jpg +0 -0
- data/productions/examples/sandbox/images/homer.jpg +0 -0
- data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
- data/productions/examples/sandbox/images/logo.png +0 -0
- data/productions/examples/sandbox/images/marilyn.jpg +0 -0
- data/productions/examples/sandbox/images/space.png +0 -0
- data/productions/examples/sandbox/images_scene/props.rb +36 -0
- data/productions/examples/sandbox/images_scene/styles.rb +34 -0
- data/productions/examples/sandbox/inputs/players/button_input.rb +48 -0
- data/productions/examples/sandbox/inputs/players/check_box_input.rb +40 -0
- data/productions/examples/sandbox/inputs/players/combo_box_input.rb +41 -0
- data/productions/examples/sandbox/inputs/players/radio_button_input.rb +43 -0
- data/productions/examples/sandbox/inputs/players/text_area_input.rb +36 -0
- data/productions/examples/sandbox/inputs/players/text_box_input.rb +36 -0
- data/productions/examples/sandbox/inputs/props.rb +40 -0
- data/productions/examples/sandbox/inputs/styles.rb +39 -0
- data/productions/examples/sandbox/kiosk/players/kiosk.rb +39 -0
- data/productions/examples/sandbox/kiosk/props.rb +9 -0
- data/productions/examples/sandbox/kiosk/styles.rb +37 -0
- data/productions/examples/sandbox/players/sandbox.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/players/box.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/props.rb +22 -0
- data/productions/examples/sandbox/rounded_corners/styles.rb +17 -0
- data/productions/examples/sandbox/scrolling/players/add_button.rb +19 -0
- data/productions/examples/sandbox/scrolling/players/cell.rb +15 -0
- data/productions/examples/sandbox/scrolling/props.rb +45 -0
- data/productions/examples/sandbox/scrolling/styles.rb +33 -0
- data/productions/examples/sandbox/sketching/players/sketchpad.rb +46 -0
- data/productions/examples/sandbox/sketching/props.rb +25 -0
- data/productions/examples/sandbox/sketching/styles.rb +35 -0
- data/productions/examples/sandbox/sounds/bird.au +0 -0
- data/productions/examples/sandbox/sounds/cat.au +0 -0
- data/productions/examples/sandbox/sounds/cow.au +0 -0
- data/productions/examples/sandbox/sounds/dog.au +0 -0
- data/productions/examples/sandbox/sounds/donkey.au +0 -0
- data/productions/examples/sandbox/sounds/duck.au +0 -0
- data/productions/examples/sandbox/sounds/players/clip.rb +10 -0
- data/productions/examples/sandbox/sounds/props.rb +10 -0
- data/productions/examples/sandbox/sounds/styles.rb +17 -0
- data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +16 -0
- data/productions/examples/sandbox/stage_handles/players/sizer.rb +35 -0
- data/productions/examples/sandbox/stage_handles/props.rb +17 -0
- data/productions/examples/sandbox/stage_handles/styles.rb +58 -0
- data/productions/examples/sandbox/stages.rb +8 -0
- data/productions/examples/sandbox/styles.rb +35 -0
- data/productions/examples/sandbox/teaser/players/fader.rb +58 -0
- data/productions/examples/sandbox/teaser/props.rb +14 -0
- data/productions/examples/sandbox/teaser/styles.rb +21 -0
- data/productions/examples/tutorials/tutorial_1/players/sample.rb +11 -0
- data/productions/examples/tutorials/tutorial_1/props.rb +9 -0
- data/productions/examples/tutorials/tutorial_1/styles.rb +25 -0
- data/productions/playbills.lll +1 -0
- data/productions/stage_composer/init.rb +10 -0
- data/productions/stage_composer/inspector/players/inspector.rb +80 -0
- data/productions/stage_composer/inspector/players/prop_row.rb +12 -0
- data/productions/stage_composer/inspector/players/prop_tree.rb +33 -0
- data/productions/stage_composer/inspector/players/style_table.rb +12 -0
- data/productions/stage_composer/inspector/players/style_value.rb +16 -0
- data/productions/stage_composer/inspector/props.rb +19 -0
- data/productions/stage_composer/inspector/styles.rb +71 -0
- data/productions/stage_composer/lib/init.rb +5 -0
- data/productions/stage_composer/lib/limelight/composer/controller.rb +51 -0
- data/productions/stage_composer/lib/limelight/composer/lethargy.rb +24 -0
- data/productions/stage_composer/production.rb +6 -0
- data/productions/stage_composer/stages.rb +15 -0
- data/productions/startup/images/logo.png +0 -0
- data/productions/startup/images/splash.png +0 -0
- data/productions/startup/production.rb +52 -0
- data/productions/startup/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/startup/spec/spec_helper.rb +8 -0
- data/productions/startup/stages.rb +9 -0
- data/productions/startup/styles.rb +15 -0
- data/productions/startup/welcome/players/browse_button.rb +10 -0
- data/productions/startup/welcome/players/download_button.rb +17 -0
- data/productions/startup/welcome/players/sandbox_button.rb +11 -0
- data/productions/startup/welcome/props.rb +23 -0
- data/productions/startup/welcome/styles.rb +103 -0
- data/spec/limelight/builtin/players/button_spec.rb +20 -0
- data/spec/limelight/builtin/players/check_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/combo_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/image_spec.rb +43 -0
- data/spec/limelight/builtin/players/password_box_spec.rb +27 -0
- data/spec/limelight/builtin/players/radio_button_spec.rb +64 -0
- data/spec/limelight/builtin/players/stage_mover_spec.rb +36 -0
- data/spec/limelight/builtin/players/stage_sizer_spec.rb +40 -0
- data/spec/limelight/builtin/players/text_area_spec.rb +27 -0
- data/spec/limelight/builtin/players/text_box_spec.rb +27 -0
- data/spec/limelight/builtin/utilities_production/spec_helper.rb +7 -0
- data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +146 -0
- data/spec/limelight/casting_director_spec.rb +164 -0
- data/spec/limelight/client/playbills_spec.rb +79 -0
- data/spec/limelight/commands/command_spec.rb +26 -0
- data/spec/limelight/commands/create_command_spec.rb +108 -0
- data/spec/limelight/commands/freeze_command_spec.rb +143 -0
- data/spec/limelight/commands/help_command_spec.rb +42 -0
- data/spec/limelight/commands/open_command_spec.rb +52 -0
- data/spec/limelight/commands/pack_command_spec.rb +26 -0
- data/spec/limelight/commands/unpack_command_spec.rb +47 -0
- data/spec/limelight/data_spec.rb +36 -0
- data/spec/limelight/dsl/prop_builder_spec.rb +245 -0
- data/spec/limelight/dsl/stage_builder_spec.rb +90 -0
- data/spec/limelight/dsl/styles_builder_spec.rb +194 -0
- data/spec/limelight/file_chooser_spec.rb +64 -0
- data/spec/limelight/file_filter_spec.rb +29 -0
- data/spec/limelight/file_loader_spec.rb +28 -0
- data/spec/limelight/gems_spec.rb +92 -0
- data/spec/limelight/java_util_spec.rb +37 -0
- data/spec/limelight/main_spec.rb +40 -0
- data/spec/limelight/paint_action_spec.rb +30 -0
- data/spec/limelight/pen_spec.rb +62 -0
- data/spec/limelight/producer_spec.rb +210 -0
- data/spec/limelight/production_spec.rb +100 -0
- data/spec/limelight/prop_spec.rb +431 -0
- data/spec/limelight/scene_spec.rb +173 -0
- data/spec/limelight/stage_spec.rb +202 -0
- data/spec/limelight/string_spec.rb +38 -0
- data/spec/limelight/studio_spec.rb +157 -0
- data/spec/limelight/styles_spec.rb +53 -0
- data/spec/limelight/templates/production_templater_spec.rb +66 -0
- data/spec/limelight/templates/scene_templater_spec.rb +51 -0
- data/spec/limelight/templates/templater_logger_spec.rb +41 -0
- data/spec/limelight/templates/templater_spec.rb +107 -0
- data/spec/limelight/theater_spec.rb +72 -0
- data/spec/limelight/util/downloader_spec.rb +92 -0
- data/spec/spec_helper.rb +70 -0
- 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,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
|
+
|