forked from CelestiaProject/Celestia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
start.cel
324 lines (277 loc) · 16 KB
/
start.cel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
{
# ... Beginning of script
#****************************************************************************
# *
# START.CEL - Startup script for Celestia *
# (version 2.1) *
# *
#---------------------------------------------------------------------------*
# *
# This script is run automatically, every time you run Celestia. *
# *
# NOTE: Do not remove the curly braces located as the first and last *
# characters of this file. They define this file as a CEL script. *
# *
# You can modify this script in many ways, to suit your specific needs. *
# Simply uncomment one or more of the lines below, as noted. Each line or *
# section of code contains comments describing what it does. To UNcomment *
# a line of code, simply remove the "#" character from the beginning of *
# that line. *
# *
# If you decide to modify this script, please copy it to a safe place *
# BEFORE you begin, so you will have it to refer to at a later date. *
# *
#****************************************************************************
overlay {
duration 5.0
fadeafter 4.0
colortop "#9999ff"
colorbottom "#ccccff"
filename "logo.png"
}
preloadtex { object "Sol/Earth" }
preloadtex { object "Sol/Earth/Moon" }
select {object "Sol"}
goto {time 3.0 distance 30}
wait {duration 3.0}
select {object "Sol/Earth"}
follow {}
goto {time 3.0 distance 6.0}
wait {duration 2.0}
print {text "Welcome to Celestia!" row -3 column 1 duration 3}
wait {duration 3.0}
#****************************************************************************
# The lines of code above are the entire start.cel script. Below, is a *
# description of what each command does. We go to Sol first, so that when *
# we go to Earth, it will be displaying it's sunny side, regardless of *
# what your local time might be... *
# *
# preloadtex: Tells Celestia to load the textures for the named object. *
# Otherwise Celestia would load the texture when the object *
# comes into view, which would be noticeable as a small delay. *
# *
# select: Tells Celestia what object (planet, moon, spacecraft, etc.) to *
# define as the currently selected object. Sol defines our solar *
# system, the "/" character is merely a hierarchy divider, Earth *
# is the object we want to select. If you wanted to select our *
# Moon, the select command would look like the following: *
# select {object "Sol/Earth/Moon"} *
# *
# goto: Tells Celestia to travel to the currently selected object, just *
# like pressing the "G" key on the keyboard. The time parameter *
# defines how many seconds it should take to travel there. The *
# distance parameter defines how far away from the object to be *
# positioned, in units of the object's radius, plus 1. For *
# example, if the object's radius is 10000 km, and you specify *
# 6.0 for distance, you will be positioned 50000 km from the *
# center of the object. *
# *
# wait: Since the goto command is telling Celestia to take some time to *
# do something, we need to give Celestia that same amount of time *
# to actually DO it. When going to Sol, the wait command tells *
# Celestia to wait for 3 seconds while the goto takes place (for *
# 3 seconds). The duration parameter value is normally the same *
# as the time parameter in the goto command. However, there are *
# always exceptions (grin). *
# *
# When we are going to Earth, the wait command after the goto, *
# waits for only 2 seconds. The next command is a print command, *
# which displays some text on the screen and has another wait *
# command after it, that waits for another 3 seconds. It's all *
# just a matter of timing. The goto command allows us to display *
# some text on-screen WHILE it is executing. So, we simply make *
# sure that the total number of wait duration values, listed *
# after a goto, adds up to AT LEAST the time value specified in *
# the goto command. It can be longer, if desired. *
# *
# follow: Tells Celestia to follow the selected object through space, *
# just like pressing the "F" key on the keyboard. You could *
# replace the follow {} command with synchronous {}, which allows *
# you to remain in a stationary, or geosynchronous orbit above *
# the selected object. *
# *
# print: Tells Celestia to display (print) some text on the screen. The *
# text parameter defines the text to be displayed. The row *
# parameter defines how many rows from the bottom of the window to *
# start displaying the text at. The column parameter defines how *
# many columns from the left edge of the window to start *
# displaying the text. The duration parameter defines how many *
# seconds the text should be displayed on the screen. Which is *
# then followed by the wait command, as described above. *
#****************************************************************************
#****************************************************************************
# If you want to be positioned above YOUR specific location on Earth, use *
# the gotolonglat command shown below. Step-by-step instructions... *
# *
# * Copy the entire line of code. *
# *
# * Paste it below the "goto" command above. *
# *
# * Remove the "#" character at the beginning of the line. This UNcomments *
# the line of code so it will be executed. *
# *
# * Add a "#" character to the beginning of the original goto command. *
# This turns the line of code into a comment, so it will NOT be run. *
# *
# * Change the longitude and latitude values to those of your location. *
# *
# * Since you are going to a specific position on the Earth, it might not *
# be daytime there, so you could comment-out the following lines of *
# code by adding a "#" character to the beginning of each line... *
# select {object "Sol"} *
# goto {time 3.0 distance 30} *
# wait {duration 3.0} *
# If you WANT to display your location in the daytime, use the time *
# command described next. *
#****************************************************************************
# gotolonglat {time 5.0 distance 4.0 longitude 0.0 latitude 0.0}
#****************************************************************************
# If you would like Celestia to always start at a specific date/time, use *
# the time command, as shown below. *
# *
# WARNING: Starting Celestia with a pre-determined date/time requires that *
# you physically press the "!" (exclamation mark) key in order to *
# RESET the time to "current time", whenever you want to do some *
# exploring -- IF the actual time makes a difference. *
# *
# Step-by-step instructions... *
# *
# * Determine if you want to set the date via a calendar UTC date/time *
# string, or a Julian day (see below). *
# *
# * Copy the one line of code with the time command you want to use. *
# *
# * Paste it above the "goto" command above (top of file). *
# *
# * Remove the "#" character at the beginning of the line. This UNcomments *
# the line of code so it will be executed. *
# *
# * Change the date/time value to YOUR required date/time. *
#****************************************************************************
# Set the time via a calendar UTC date/time string...
# time { utc "2003-08-11T09:29:24.0000" }
# YYYY-MM-DDTHH:MM:SS.SSSS
# Note the "T" .........^ ... (this is required)
# Set the time via a Julian day value...
# time { jd JulianDate }
# U.S. Navy Calendar Date/Time to Julian Date/Time converter:
# http://aa.usno.navy.mil/data/docs/JulianDate.html
#****************************************************************************
# The commands listed below allow you to define several of Celestia's *
# settings, that will be set every time you start Celestia. Modify any of *
# the settings you want to. *
#****************************************************************************
# Field of View (UNcomment / modify to meet your needs)...
# Default is 25 degrees, at a screen resolution of 1024 x 768
# set {name "FOV" value 25.0}
# Ambient light level (UNcomment / modify to meet your needs)...
# 0.0 to 0.5 is a good Lo-Hi range
# set {name "AmbientLightLevel" value 0.1}
# Faintest visible star magnitude (brightness)...
# (UNcomment / modify to meet your needs)
# Celestia UI: 0.8 to 15.2, default is 6.0
#
# setvisibilitylimit {magnitude 6.0}
# Faintest auto-magnitude brightness, at 45 degrees, Default is 8.5...
# (UNcomment / modify to meet your needs)
# setfaintestautomag45deg {magnitude 8.5}
# Items to be displayed (rendered):
# Do NOT render the following objects (UNcomment to suit your needs)...
# renderflags {clear "atmospheres"}
# renderflags {clear "automag"}
# renderflags {clear "boundaries"}
# renderflags {clear "cloudmaps"}
# renderflags {clear "comettails"}
# renderflags {clear "constellations"}
# renderflags {clear "eclipseshadows"}
# renderflags {clear "galaxies"}
# renderflags {clear "grid"}
# renderflags {clear "markers"}
# renderflags {clear "nightmaps"}
# renderflags {clear "orbits"}
# renderflags {clear "planets"}
# renderflags {clear "pointstars"}
# renderflags {clear "ringshadows"}
# renderflags {clear "stars"}
# renderflags {clear "partialtrajectories"}
# Items to be displayed (rendered):
# DO render the following objects (UNcomment to suit your needs)...
# renderflags {set "atmospheres"}
# renderflags {set "automag"}
# renderflags {set "boundaries"}
# renderflags {set "cloudmaps"}
# renderflags {set "comettails"}
# renderflags {set "constellations"}
# renderflags {set "eclipseshadows"}
# renderflags {set "galaxies"}
# renderflags {set "grid"}
# renderflags {set "markers"}
# renderflags {set "nightmaps"}
# renderflags {set "orbits"}
# renderflags {set "planets"}
# renderflags {set "pointstars"}
# renderflags {set "ringshadows"}
# renderflags {set "stars"}
# renderflags {set "partialtrajectories"}
# Text labels:
# Do NOT label the following objects (UNcomment to suit your needs)...
# labels {clear "asteroids"}
# labels {clear "constellations"}
# labels {clear "galaxies"}
# labels {clear "moons"}
# labels {clear "planets"}
# labels {clear "spacecraft"}
# labels {clear "stars"}
# Text labels:
# DO label the following objects (UNcomment to suit your needs)...
# labels {set "asteroids"}
# labels {set "constellations"}
# labels {set "galaxies"}
# labels {set "moons"}
# labels {set "planets"}
# labels {set "spacecraft"}
# labels {set "stars"}
# Marker control:
# Unmark any objects that are currently Marked and disable Marker display...
# (UNcomment to suit your needs)
# unmarkall { }
# Minimum orbit diameter to be rendered (in pixels)...
# (UNcomment / modify to suit your needs)
# set {name "MinOrbitSize" value 1.0}
# Furthest visible star distance, default is 1000000...
# (UNcomment / modify to suit your needs)
# set {name "StarDistanceLimit" value 1000000}
# Time rate (1x, 100x, 1000x, etc.)...
# (UNcomment / modify to suit your needs)
# Negative value = Reverse Time
# 0 = Pause Time
# 1.0 = Real Time (default)
# 1000.0 = Good moon orbit motion
#
# timerate {rate 1.0}
#****************************************************************************
# If you are using large textures, you can have Celestia pre-load them *
# into your graphics card memory by listing them below. *
#****************************************************************************
# Examples...
# preloadtex {object "earth.*"}
# preloadtex {object "earth.png"}
#****************************************************************************
# orbit is a fun command to play with. The axis is specified in [X Y Z] *
# order, and each axis can be either 0 or 1. rate = how fast, duration = *
# number of seconds. Just make sure you have an object selected. *
#****************************************************************************
# orbit {axis [0 1 0] rate 10.0 duration 7.0}
#****************************************************************************
# To learn more about scripting in Celestia, visit: *
# *
# * Scripting forum: (http://www.shatters.net/forum/viewforum.php?f=9) *
# * Don G's Celestia page: (http://www.donandcarla.com/Celestia/) *
# * Harald's Celestia page: (http://www.h-schmidt.net/celestia/) *
# *
# Don G's page includes a guide for CEL scripting. Harald's page includes *
# a guide for CELX (Lua) scripting. Both also have example scripts and *
# other goodies. *
#****************************************************************************
# End of script...
}