adamaig-ruby_activeworld 0.1-linux
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/README +131 -0
- data/examples/configs.yml +10 -0
- data/examples/sample_event_bot.rb +29 -0
- data/ext/extconf.rb +8 -0
- data/lib/ruby_activeworld_enums.rb +1678 -0
- data/lib/ruby_activeworld_support.rb +586 -0
- data/lib/ruby_aw.rb +84 -0
- data/utilities/aw_enums_and_constants.rb +80 -0
- data/utilities/callback_generator.rb +126 -0
- data/utilities/ruby_activeworld_enums.rb +1678 -0
- data/utilities/t.txt +1127 -0
- metadata +68 -0
data/README
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
= Purpose
|
2
|
+
|
3
|
+
This project provides a ruby binding for the Activeworlds SDK. The current
|
4
|
+
target version of the binding is the 4.1 version (build 66).
|
5
|
+
|
6
|
+
I say generate because once the project is run, the .so file for the extension
|
7
|
+
is built, and can be ported wherever needed.
|
8
|
+
|
9
|
+
This binding takes certain liberties around the SDK, primarily doing everything
|
10
|
+
possible to make it a more sane object-oriented design, and makes some attempt
|
11
|
+
to hide the worst aspects of the SDK's design. One particular case is the that
|
12
|
+
binding wraps all attributes available to a given callback in a hash that is
|
13
|
+
returned to the ruby script.
|
14
|
+
|
15
|
+
Additionally, there is a ruby level wrapper to the binding that wraps calls that
|
16
|
+
are made against the SDK, like sending a console message, so that only the
|
17
|
+
critical parameters are necessarily passed, and sane defaults are provided as
|
18
|
+
an options hash for the other settings that might apply.
|
19
|
+
|
20
|
+
This is a work in progress, with many pieces remaining untested. Sample programs
|
21
|
+
are provided and implement the tested functions.
|
22
|
+
|
23
|
+
The license for the AWSDK is repeated here, and the code is included in the
|
24
|
+
extension because I don't see anything in the license that restricts it.
|
25
|
+
|
26
|
+
== Installation Note
|
27
|
+
|
28
|
+
I haven't worked out a great way to get the AW SDK installed as part of this
|
29
|
+
process, so you'll have to specify the directory the library is in with the
|
30
|
+
option --with-awsdk-dir=
|
31
|
+
|
32
|
+
I hope to get a post-compile hook implemented that will allow this to be done
|
33
|
+
automagically.
|
34
|
+
|
35
|
+
== The Activeworlds SDK License
|
36
|
+
|
37
|
+
BY USING THE ACTIVE WORLDS SDK MODULE OR THE ACTIVE WORLDS API ITSELF, AS PART
|
38
|
+
OF, OR IN CONJUNCTION WITH, APPLICATIONS DEVELOPED, DISTRIBUTED OR IMPLEMENTED
|
39
|
+
BY YOU OR ON YOUR BEHALF, YOU ARE CONSENTING TO BE BOUND BY THIS AGREEMENT, BY
|
40
|
+
THE APPLICABLE PROVISIONS OF THE LICENSE AGREEMENT OF THE ACTIVE WORLDS
|
41
|
+
SOFTWARE. IF YOU DO NOT AGREE, DO NOT USE THE ACTIVE WORLDS SDK MODULE OR THE
|
42
|
+
ACTIVE WORLDS API ITSELF. ACTIVE WORLDS SDK LICENSE AGREEMENT. This Agreement
|
43
|
+
sets forth the terms and conditions of use of the Active Worlds software that
|
44
|
+
enables use of Active Worlds by other applications ("SDK Module") and the
|
45
|
+
Active Worlds API itself (hereafter collectively or separately referred to as
|
46
|
+
"Active Worlds SDK") GRANT OF LICENSE. Subject to the provisions contained
|
47
|
+
herein, Activeworlds Inc. hereby grants to you a non-exclusive,
|
48
|
+
non-transferable license (without the right to sublicense) to use the Active
|
49
|
+
Worlds SDK as part of, or in conjunction with, Applications developed,
|
50
|
+
distributed or implemented by you or on your behalf (the "SDK Applications").
|
51
|
+
This license does not grant you any right to any version enhancement update,
|
52
|
+
or to a continuous availability of the Active Worlds SDK and the functionality
|
53
|
+
of the Active Worlds End User Software (The "Software"), or to any support or
|
54
|
+
telephone assistance. Activeworlds Inc. may revise or cease to provide the
|
55
|
+
Active Worlds SDK, the Software or its functionality or any part thereof
|
56
|
+
including without limitation, loss of compatibility, denial of access to the
|
57
|
+
functionality of the Software or the Active Worlds Network from any SDK
|
58
|
+
Application, from time to time without notice.
|
59
|
+
|
60
|
+
SOME LIMITATIONS. You may not use the Active Worlds SDK to: (a) modify,
|
61
|
+
translate, reverse engineer, decompile, disassemble (except and solely to the
|
62
|
+
extent an applicable statute expressly and specifically prohibits such
|
63
|
+
restrictions), or create derivative works of the Active Worlds Software and
|
64
|
+
network; (b) create applications for unlawful or illegal purposes or
|
65
|
+
activities; MISSION CRITICAL AND CONTENT SENSITIVE APPLICATIONS. Do not
|
66
|
+
create, distribute or otherwise use any SDK Application which uses or relies
|
67
|
+
on the Active Worlds Software, the Active Worlds network, the Activeworlds
|
68
|
+
Inc. websites, including but not limited to, message boards, directories,
|
69
|
+
databases, ("Active Worlds Services and Information") or any other program,
|
70
|
+
information or service whatsoever related thereto for "Mission Critical" or
|
71
|
+
"Content Sensitive" applications and use. "Content Sensitive" shall mean any
|
72
|
+
information or data you do not wish to be freely accessible and generally
|
73
|
+
available to Internet users. "Mission Critical" application and use shall mean
|
74
|
+
applications and use that may result in damage if failed, for any reason
|
75
|
+
whatsoever including without limitation, for fraud, eavesdropping, electronic
|
76
|
+
trespassing, sniffing, spoofing, imposturing, breaking passwords, harassment,
|
77
|
+
for reaching erroneous address or recipient, or out of negligence. NO
|
78
|
+
WARRANTY. The Active Worlds SDK is available on an "AS IS" basis, without
|
79
|
+
warranty of any kind Including without limitation the warranties it is free of
|
80
|
+
defects, merchantable, fit for a particular purpose or non-infringing. The
|
81
|
+
entire risk as to the quality and performance of the Active Worlds SDK is
|
82
|
+
borne by you. Should the Active Worlds SDK prove defective or inaccurate or
|
83
|
+
should the Active Worlds SDK cease to operate, as the case may be you and not
|
84
|
+
Activeworlds Inc. or its suppliers assume the entire cost of any damage,
|
85
|
+
service and repair. This disclaimer of warranty constitutes an essential part
|
86
|
+
of the agreement.
|
87
|
+
|
88
|
+
TERM AND TERMINATION. This license shall continue for a year or until
|
89
|
+
terminated, whichever is first. The license will terminate automatically with
|
90
|
+
no delay, if (1) you fail to comply with the limitations described herein; or
|
91
|
+
(2) Activeworlds Inc. gave you a 72 hours prior notice of termination; or (3)
|
92
|
+
Activeworlds Inc. posted a notice of termination on the Activeworlds Inc.
|
93
|
+
website; or (4) you have reached the Copies Limit. Upon termination of this
|
94
|
+
License you agree to immediately destroy all copies of the SDK Applications in
|
95
|
+
your possession and not to use the Active Worlds SDK for SDK Applications,
|
96
|
+
without a special license from Activeworlds Inc.
|
97
|
+
|
98
|
+
LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
|
99
|
+
TORT, CONTRACT, OR OTHERWISE, SHALL ACTIVEWORLDS INC. BE LIABLE TO YOU OR ANY
|
100
|
+
OTHER PERSON FOR ANY INDIRECT, SPECIAL IncIDENTAL, OR CONSEQUENTIAL DAMAGES OF
|
101
|
+
ANY KIND INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, LOSS OF
|
102
|
+
POTENTIAL REVENUES, LOSS OF BUSINESS OPPORTUNITIES, WORK STOPPAGE, COMPUTER
|
103
|
+
FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES. IN
|
104
|
+
NO EVENT WILL ACTIVEWORLDS INC. BE LIABLE FOR ANY DAMAGES, EVEN IF
|
105
|
+
ACTIVEWORLDS INC. HAD BEEN INFORMED OR SHALL HAVE BEEN INFORMED OF THE
|
106
|
+
POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY THIRD PARTY. SOME
|
107
|
+
JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
|
108
|
+
CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT APPLY TO YOU.
|
109
|
+
|
110
|
+
RIGHTS. Title, ownership rights, and intellectual property rights in the
|
111
|
+
Active Worlds Software and the Active Worlds SDK shall remain in Activeworlds
|
112
|
+
Inc. The Active Worlds Software and the Active Worlds SDK is protected by
|
113
|
+
copyright and other intellectual property laws and by international treaties.
|
114
|
+
Title and related rights in the content accessed through the Active Worlds
|
115
|
+
Software or the Active Worlds SDK is the property of the applicable content
|
116
|
+
owner and is protected by applicable law. The license granted under this
|
117
|
+
Agreement gives you no rights to such content.
|
118
|
+
|
119
|
+
MISCELLANEOUS. This Agreement represents the complete agreement and
|
120
|
+
understanding concerning the license granted hereunder and may be amended only
|
121
|
+
in writing executed by both parties. This Agreement shall be governed by
|
122
|
+
Massachusetts law, excluding conflict of law provisions (except to the extent
|
123
|
+
applicable law, if any, provides otherwise). This license is granted to you
|
124
|
+
personally and you agree not to assign your rights herein. Any attempted
|
125
|
+
assignment by you shall be null and void. If any provision of this Agreement
|
126
|
+
is held to be unenforceable, such provision shall be reformed only to the
|
127
|
+
extent necessary to make it enforceable.
|
128
|
+
|
129
|
+
SPECIAL LICENSE. Any use of the Active Worlds SDK which is not detailed in
|
130
|
+
this License Agreement is prohibited without a special License from
|
131
|
+
Activeworlds Inc.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
$:.unshift "#{File.dirname(__FILE__)}/../lib"
|
2
|
+
require 'yaml'
|
3
|
+
require 'ruby_aw.rb'
|
4
|
+
|
5
|
+
$configs = YAML.load_file("configs.yml")[:simple_event_config]
|
6
|
+
|
7
|
+
class SampleEventBot < RubyAw
|
8
|
+
|
9
|
+
def avatar_add_event_callback
|
10
|
+
attrs = attributes_for(:AW_EVENT_AVATAR_ADD)
|
11
|
+
puts "** Avatar added: parameters are #{attrs.inspect}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.bot_for_world(worldname)
|
15
|
+
bot = SampleEventBot.new($configs[:universe_server], $configs[:universe_port], $configs[:enter_global])
|
16
|
+
bot.login($configs[:app_name], $configs[:citizen_id], $configs[:password])
|
17
|
+
bot.enter(worldname)
|
18
|
+
bot.receive :AW_EVENT_AVATAR_ADD
|
19
|
+
bot
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
bot = SampleEventBot.bot_for_world($configs[:worldname])
|
24
|
+
|
25
|
+
3.times do
|
26
|
+
while 0 == SampleEventBot.ruby_aw_wait(2000)
|
27
|
+
puts "Taking a break"
|
28
|
+
end
|
29
|
+
end
|