To all SSC Station occupants
Thank you for the donations over the past year (2024), it is much appreciated. I am still trying to figure out how to migrate the forums to another community software (probably phpbb) but in the meantime I have updated the forum software to the latest version. SSC has been around a while so their is some very long time members here still using the site, thanks for making SSC home and sorry I haven't been as vocal as I should be in the forums I will try to improve my posting frequency.
Thank you again to all of the members that do take the time to donate a little, it helps keep this station functioning on the outer reaches of space.
-D1-
furtunartely it's not snowing, chipping away the snow isn't very pretty 😉
actual progress,
i guess i will add a cockpit before i upload a new version.
MOD - Cobra MK1 (alpha29-v3)
MOD TAG
Mod category: standalone ship
Mod name: cobra mk1
Date added: 2012/12/28
Version: 3
Valid for Alpha vers: 29
Contributor: Gernot
Further Info & discussion area: http://spacesimcentr...er-mods-on-ssc/
Download location:
variation a (generic alpha29): http://sdrv.ms/W9SCNj
variation b (modified alpha29): http://sdrv.ms/Tv8jQI
Additional info:
the model has now a cockpit (lod4) and a lowpoly mesh for lod2.
please don't get confused about the two vartiations,
BUT
one (a) is for the use with a generic alpha29,
the other is for the use with mods (i.e walterars, mine will contain the updated model(s) anyway) which probably contain my updated submodels,
this is unfortunately needed since the pilots position varies a little.
would be the updated "FFE mod" (which i used for the latest screenshots of the cobra mk1).
i guess it will soon follow a new one, prob. i implement walterars modules to my "complete mods".
but first i finish the "Dagger" for the "retro sci-fi mod" and probably even texture the three new ships.
<p>what do you mean by "...MODS containing orbital and surface stations, have become obsolete...", they won't vanish no?</p>
<p>(but yeah somehow i imagine this will be taken out of the hands of the modeler as well, it's a logical consequence to the new system, prob. that's why i dislike it, the modeler gets degraded to a "helper", control is left to others...)</p>
<p> </p>
<p> </p>
<p>(holds his hand under his chin and looks reserved)</p>
<p> </p>
<p>i'm not convinced that everything that is new is also good... (more a general speech)</p>
<p> </p>
<p> </p>
<p>nonetheless a updated model for the "crowd", you can download it in two versions "lancet a" is using the new modelling system and "lancet b" is still using the LMR.</p>
<p> </p>
<p>the "new" lancet "a" is a little smaller as the "old - b", this because i can't scale it up with the new system and i haven't the nerve to do that little animation again.</p>
<p>the ship specs of each version reflect this as well (diff. size).</p>
<p> </p>
<p> </p>
<p>
MOD TAG
<br />
<br />
Mod category: Spacecraft<br />
<br />
Mod name: Lancet<br />
<br />
Date added: 2013/01/03<br />
<br />
Version: 1<br />
<br />
Valid for Alpha vers: alpha30 (dev)<br />
<br />
Contributor: Gernot<br />
<br />
Further Info & discussion area:<strong> <a href=" http://spacesimcentral.com/forum/topic/3056-pioneer-mods-on-ssc/ " title=""> http://spacesimcentr...er-mods-on-ssc/ </a></strong><br />
<br />
Download location: <strong> </strong><a href=" http://sdrv.ms/TxvF9C "> http://sdrv.ms/TxvF9C </a><br />
<br />
Additional info:</p>
<p> </p>
<p>standalone spacecraft, the link directs to a folder which contains both versions (LMR and new model system) and a 32bit texture.</p>
<p> </p>
<p>both models are "incomplete" and need some extras, thrusters aren't planned for ships like this and i'm really not sure how to fuel a antigravity unit with water, but fortunately i'm flexible ;)</p>
<p> </p>
<p>to run the "new" model in the game, you will have to unpack the zip to the apropriate folders, it won't work as a mod.</p>
<p> </p>
<p><span><img alt="Bildschirmfoto2013-01-03um022454.png" src=" " /></span><br />
<br />
</p>
<p> </p>
<p> </p>
and the messed up post is a underscore...
"MODS containing orbital and surface stations, have become obsolete...", they won't vanish no?"
No, quite the opposite, JJordan made ​​incredible improvements in the coupling sequence. This is the new ground_stations.lua. Look.
-- Copyright © 2008-2013 Pioneer Developers. See AUTHORS.txt for details
-- Licensed under the terms of CC-BY-SA 3.0. See licenses/CC-BY-SA-3.0.txt
--
-- ground_stations.lua
-- original model by Philbywhizz
-- detailing by Marcel
-- optimizations by potsmoke66
--
define_model('control_tower', {
info = {
lod_pixels = {1,80,160,0},
bounding_radius = 250.0,
materials = {'tower_base', 'body', 'top', 'dark_glass', 'screen', 'lens', 'lamp', 'lit_lamp'},
},
static = function(lod)
local div0 = 2*lod
local div1 = 8*lod
set_material('body', .5, .5, .5, 1)
use_material('body')
if lod > 1 then
texture('textures/seamless_texture_07.png', v(.5,.5,0),v(.02,0,0),v(0,0,-1))
end
lathe(div1, v(0,-50,0), v(0,21.5,0), v(0,0,1), {0,75, 1,23})--base cone
if lod > 1 then
texture('textures/tex12.png', v(.5,.5,0), v(.005,0,0), v(0,.02,0))
ring(div1, v(0,150,0), v(0,200,0), v(0,0,1), 2.5)--center/socket
ring(div1, v(0,201,0), v(0,202.3,0), v(0,0,1), 3.3)--socket ring
end
ring(8, v(0,25, 0), v(0,150,0), v(0,0,1), 10)--stem
--INTERIOR
--control panels1
if lod > 2 then
lathe(div1, v(0,154.8,0), v(0,157.8,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(8,151,-4), v(8,151,4), v(0,1,0), 1)--e
cylinder(4, v(-8,151,-4), v(-8,151,4), v(0,1,0), 1)--w
cylinder(4, v(4,151,-8), v(-4,151,-8), v(0,1,0), 1)--n
cylinder(4, v(4,151,8), v(-4,151,8), v(0,1,0), 1)--s
--control panels2
lathe(div1, v(0,163.6,0), v(0,166.1,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(12,159.8,4), v(4,159.8,12), v(0,1,0), 1)--se
cylinder(4, v(-12,159.8,-4), v(-4,159.8,-12), v(0,1,0), 1)--nw
cylinder(4, v(-12,159.8,4), v(-4,159.8,12), v(0,1,0), 1)--sw
cylinder(4, v(4,159.8,-12), v(12,159.8,-4), v(0,1,0), 1)--ne
--control panels3
lathe(div1, v(0,172,0), v(0,174.5,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(8,168.1,-4), v(8,168.1,4), v(0,1,0), 1)--e
cylinder(4, v(-8,168.1,-4), v(-8,168.1,4), v(0,1,0), 1)--w
cylinder(4, v(4,168.1,-8), v(-4,168.1,-8), v(0,1,0), 1)--n
cylinder(4, v(4,168.1,8), v(-4,168.1,8), v(0,1,0), 1)--s
cylinder(4, v(13,168.1,5), v(5,168.1,13), v(0,1,0), 1)--se
cylinder(4, v(-13,168.1,-5), v(-5,168.1,-13), v(0,1,0), 1)--nw
cylinder(4, v(-13,168.1,5), v(-5,168.1,13), v(0,1,0), 1)--sw
cylinder(4, v(5,168.1,-13), v(13,168.1,-5), v(0,1,0), 1)--ne
--control panels4
lathe(div1, v(0,180.5,0), v(0,182.7,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(8,176.5,-4), v(8,176.5,4), v(0,1,0), 1)--e
cylinder(4, v(-8,176.5,-4), v(-8,176.5,4), v(0,1,0), 1)--w
cylinder(4, v(4,176.5,-8), v(-4,176.5,-8), v(0,1,0), 1)--n
cylinder(4, v(4,176.5,8), v(-4,176.5,8), v(0,1,0), 1)--s
cylinder(4, v(13,176.5,5), v(5,176.5,13), v(0,1,0), 1)--se
cylinder(4, v(-13,176.5,-5), v(-5,176.5,-13), v(0,1,0), 1)--nw
cylinder(4, v(-13,176.5,5), v(-5,176.5,13), v(0,1,0), 1)--sw
cylinder(4, v(5,176.5,-13), v(13,176.5,-5), v(0,1,0), 1)--ne
cylinder(4, v(16,176.5,-4), v(16,176.5,4), v(0,1,0), 1)--e2
cylinder(4, v(-16,176.5,-4), v(-16,176.5,4), v(0,1,0), 1)--w2
cylinder(4, v(4,176.5,-16), v(-4,176.5,-16), v(0,1,0), 1)--n2
cylinder(4, v(4,176.5,16), v(-4,176.5,16), v(0,1,0), 1)--s2
--control panels5
lathe(div1, v(0,188.5,0), v(0,191,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(8,184.7,-4), v(8,184.7,4), v(0,1,0), 1)--e
cylinder(4, v(-8,184.7,-4), v(-8,184.7,4), v(0,1,0), 1)--w
cylinder(4, v(4,184.7,-8), v(-4,184.7,-8), v(0,1,0), 1)--n
cylinder(4, v(4,184.7,8), v(-4,184.7,8), v(0,1,0), 1)--s
cylinder(4, v(13,184.7,5), v(5,184.7,13), v(0,1,0), 1)--se
cylinder(4, v(-13,184.7,-5), v(-5,184.7,-13), v(0,1,0), 1)--nw
cylinder(4, v(-13,184.7,5), v(-5,184.7,13), v(0,1,0), 1)--sw
cylinder(4, v(5,184.7,-13), v(13,184.7,-5), v(0,1,0), 1)--ne
--control panels6
lathe(div1, v(0,195.6,0), v(0,197.6,0), v(0,0,1), {0,2.5, 1,6})
cylinder(4, v(8,193,-4), v(8,193,4), v(0,1,0), 1)--e
cylinder(4, v(-8,193,-4), v(-8,193,4), v(0,1,0), 1)--w
cylinder(4, v(4,193,-8), v(-4,193,-8), v(0,1,0), 1)--n
cylinder(4, v(4,193,8), v(-4,193,8), v(0,1,0), 1)--s
end
--floors, etc.
if lod > 1 then
texture('textures/bot5.png', v(.5,.5,0), v(.02,0,0), v(0,0,1))
ring(div1, v(0,34,0), v(0,44,0), v(0,0,1), 10.25)--base roof stripes
cylinder(div1, v(0,25,0), v(0,34,0), v(0,0,1), 12)--base roof ring
cylinder(16, v(0,139,0), v(0,146,0), v(0,0,1), 10.15)--top stripes
cylinder(div1, v(0,146,0), v(0,150,0), v(0,0,1), 11)--floor1
cylinder(div1, v(0,157.8,0), v(0,158.8,0), v(0,0,1), 15.5)--floor2
cylinder(div1, v(0,166.1,0), v(0,167.1,0), v(0,0,1), 18.8)--floor3
cylinder(div1, v(0,174.5,0), v(0,175.5,0), v(0,0,1), 22.1)--floor4
cylinder(div1, v(0,182.7,0), v(0,183.7,0), v(0,0,1), 18.8)--floor5
cylinder(div1, v(0,191,0), v(0,192,0), v(0,0,1), 15.5)--floor6
tapered_cylinder(div1, v(0,21.5,0), v(0,25,0), v(0,0,1), 23, 20)--base roof cap
tapered_cylinder(div1, v(0,197.6,0), v(0,201.6,0), v(0,0,1), 11.5, 10.15)--roof
end
--screens
if lod > 2 then
texture(nil)
set_material('screen', 0,0,1,1,0,0,0,5,0.7,0.7,1)
use_material('screen')
--floor1
--south
cylinder(4, v(2,151.4,6.9), v(2,151.4,7.1), v(0,1,0), .43)
cylinder(4, v(0,151.4,6.9), v(0,151.4,7.1), v(0,1,0), .43)
cylinder(4, v(-2,151.4,6.9), v(-2,151.4,7.1), v(0,1,0), .43)
--north
cylinder(4, v(2,151.4,-6.9), v(2,151.4,-7.1), v(0,1,0), .43)
cylinder(4, v(0,151.4,-6.9), v(0,151.4,-7.1), v(0,1,0), .43)
cylinder(4, v(-2,151.4,-6.9), v(-2,151.4,-7.1), v(0,1,0), .43)
--east
cylinder(4, v(7,151.4,-2), v(6.8,151.4,-2), v(0,1,0), .43)
cylinder(4, v(7,151.4,0), v(6.8,151.4,0), v(0,1,0), .43)
cylinder(4, v(7,151.4,2), v(6.8,151.4,2), v(0,1,0), .43)
--west
cylinder(4, v(-7,151.4,-2), v(-6.8,151.4,-2), v(0,1,0), .43)
cylinder(4, v(-7,151.4,0), v(-6.8,151.4,0), v(0,1,0), .43)
cylinder(4, v(-7,151.4,2), v(-6.8,151.4,2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,153.5,0), v(-2.7,153.5,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,153.5,-2.7), v(0,153.5,2.7), v(0,1,0), .75)
--floor2
--se
cylinder(4, v(5,160.2,11), v(4.2,160.2,10.2), v(0,1,0), .43)
cylinder(4, v(7,160.2,9), v(6.2,160.2,8.2), v(0,1,0), .43)
cylinder(4, v(9,160.2,7), v(8.2,160.2,6.2), v(0,1,0), .43)
cylinder(4, v(11,160.2,5), v(10.2,160.2,4.2), v(0,1,0), .43)
--nw
cylinder(4, v(-5,160.2,-11), v(-4.2,160.2,-10.2), v(0,1,0), .43)
cylinder(4, v(-7,160.2,-9), v(-6.2,160.2,-8.2), v(0,1,0), .43)
cylinder(4, v(-9,160.2,-7), v(-8.2,160.2,-6.2), v(0,1,0), .43)
cylinder(4, v(-11,160.2,-5), v(-10.2,160.2,-4.2), v(0,1,0), .43)
--sw
cylinder(4, v(-5,160.2,11), v(-4.2,160.2,10.2), v(0,1,0), .43)
cylinder(4, v(-7,160.2,9), v(-6.2,160.2,8.2), v(0,1,0), .43)
cylinder(4, v(-9,160.2,7), v(-8.2,160.2,6.2), v(0,1,0), .43)
cylinder(4, v(-11,160.2,5), v(-10.2,160.2,4.2), v(0,1,0), .43)
--ne
cylinder(4, v(5,160.2,-11), v(4.2,160.2,-10.2), v(0,1,0), .43)
cylinder(4, v(7,160.2,-9), v(6.2,160.2,-8.2), v(0,1,0), .43)
cylinder(4, v(9,160.2,-7), v(8.2,160.2,-6.2), v(0,1,0), .43)
cylinder(4, v(11,160.2,-5), v(10.2,160.2,-4.2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,162,0), v(-2.7,162,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,162,-2.7), v(0,162,2.7), v(0,1,0), .75)
--floor3
--south
cylinder(4, v(2,168.3,6.9), v(2,168.3,7.1), v(0,1,0), .43)
cylinder(4, v(0,168.3,6.9), v(0,168.3,7.1), v(0,1,0), .43)
cylinder(4, v(-2,168.3,6.9), v(-2,168.3,7.1), v(0,1,0), .43)
--north
cylinder(4, v(2,168.3,-6.9), v(2,168.3,-7.1), v(0,1,0), .43)
cylinder(4, v(0,168.3,-6.9), v(0,168.3,-7.1), v(0,1,0), .43)
cylinder(4, v(-2,168.3,-6.9), v(-2,168.3,-7.1), v(0,1,0), .43)
--east
cylinder(4, v(7,168.3,-2), v(6.8,168.3,-2), v(0,1,0), .43)
cylinder(4, v(7,168.3,0), v(6.8,168.3,0), v(0,1,0), .43)
cylinder(4, v(7,168.3,2), v(6.8,168.3,2), v(0,1,0), .43)
--west
cylinder(4, v(-7,168.3,-2), v(-6.8,168.3,-2), v(0,1,0), .43)
cylinder(4, v(-7,168.3,0), v(-6.8,168.3,0), v(0,1,0), .43)
cylinder(4, v(-7,168.3,2), v(-6.8,168.3,2), v(0,1,0), .43)
--se
cylinder(4, v(6,168.3,12), v(5.2,168.3,11.2), v(0,1,0), .43)
cylinder(4, v(8,168.3,10), v(7.2,168.3,9.2), v(0,1,0), .43)
cylinder(4, v(10,168.3,8), v(9.2,168.3,7.2), v(0,1,0), .43)
cylinder(4, v(12,168.3,6), v(11.2,168.3,5.2), v(0,1,0), .43)
--nw
cylinder(4, v(-6,168.3,-12), v(-5.2,168.3,-11.2), v(0,1,0), .43)
cylinder(4, v(-8,168.3,-10), v(-7.2,168.3,-9.2), v(0,1,0), .43)
cylinder(4, v(-10,168.3,-8), v(-9.2,168.3,-7.2), v(0,1,0), .43)
cylinder(4, v(-12,168.3,-6), v(-11.2,168.3,-5.2), v(0,1,0), .43)
--sw
cylinder(4, v(-6,168.3,12), v(-5.2,168.3,11.2), v(0,1,0), .43)
cylinder(4, v(-8,168.3,10), v(-7.2,168.3,9.2), v(0,1,0), .43)
cylinder(4, v(-10,168.3,8), v(-9.2,168.3,7.2), v(0,1,0), .43)
cylinder(4, v(-12,168.3,6), v(-11.2,168.3,5.2), v(0,1,0), .43)
--ne
cylinder(4, v(6,168.3,-12), v(5.2,168.3,-11.2), v(0,1,0), .43)
cylinder(4, v(8,168.3,-10), v(7.2,168.3,-9.2), v(0,1,0), .43)
cylinder(4, v(10,168.3,-8), v(9.2,168.3,-7.2), v(0,1,0), .43)
cylinder(4, v(12,168.3,-6), v(11.2,168.3,-5.2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,170.6,0), v(-2.7,170.6,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,170.6,-2.7), v(0,170.6,2.7), v(0,1,0), .75)
--floor4
--south
cylinder(4, v(2,176.7,6.9), v(2,176.7,7.1), v(0,1,0), .43)
cylinder(4, v(0,176.7,6.9), v(0,176.7,7.1), v(0,1,0), .43)
cylinder(4, v(-2,176.7,6.9), v(-2,176.7,7.1), v(0,1,0), .43)
--north
cylinder(4, v(2,176.7,-6.9), v(2,176.7,-7.1), v(0,1,0), .43)
cylinder(4, v(0,176.7,-6.9), v(0,176.7,-7.1), v(0,1,0), .43)
cylinder(4, v(-2,176.7,-6.9), v(-2,176.7,-7.1), v(0,1,0), .43)
--east
cylinder(4, v(7,176.7,-2), v(6.8,176.7,-2), v(0,1,0), .43)
cylinder(4, v(7,176.7,0), v(6.8,176.7,0), v(0,1,0), .43)
cylinder(4, v(7,176.7,2), v(6.8,176.7,2), v(0,1,0), .43)
--west
cylinder(4, v(-7,176.7,-2), v(-6.8,176.7,-2), v(0,1,0), .43)
cylinder(4, v(-7,176.7,0), v(-6.8,176.7,0), v(0,1,0), .43)
cylinder(4, v(-7,176.7,2), v(-6.8,176.7,2), v(0,1,0), .43)
--se
cylinder(4, v(6,176.7,12), v(5.2,176.7,11.2), v(0,1,0), .43)
cylinder(4, v(8,176.7,10), v(7.2,176.7,9.2), v(0,1,0), .43)
cylinder(4, v(10,176.7,8), v(9.2,176.7,7.2), v(0,1,0), .43)
cylinder(4, v(12,176.7,6), v(11.2,176.7,5.2), v(0,1,0), .43)
--nw
cylinder(4, v(-6,176.7,-12), v(-5.2,176.7,-11.2), v(0,1,0), .43)
cylinder(4, v(-8,176.7,-10), v(-7.2,176.7,-9.2), v(0,1,0), .43)
cylinder(4, v(-10,176.7,-8), v(-9.2,176.7,-7.2), v(0,1,0), .43)
cylinder(4, v(-12,176.7,-6), v(-11.2,176.7,-5.2), v(0,1,0), .43)
--sw
cylinder(4, v(-6,176.7,12), v(-5.2,176.7,11.2), v(0,1,0), .43)
cylinder(4, v(-8,176.7,10), v(-7.2,176.7,9.2), v(0,1,0), .43)
cylinder(4, v(-10,176.7,8), v(-9.2,176.7,7.2), v(0,1,0), .43)
cylinder(4, v(-12,176.7,6), v(-11.2,176.7,5.2), v(0,1,0), .43)
--ne
cylinder(4, v(6,176.7,-12), v(5.2,176.7,-11.2), v(0,1,0), .43)
cylinder(4, v(8,176.7,-10), v(7.2,176.7,-9.2), v(0,1,0), .43)
cylinder(4, v(10,176.7,-8), v(9.2,176.7,-7.2), v(0,1,0), .43)
cylinder(4, v(12,176.7,-6), v(11.2,176.7,-5.2), v(0,1,0), .43)
--s2
cylinder(4, v(2,176.7,16), v(2,176.7,14.8), v(0,1,0), .43)
cylinder(4, v(0,176.7,16), v(0,176.7,14.8), v(0,1,0), .43)
cylinder(4, v(-2,176.7,16), v(-2,176.7,14.8), v(0,1,0), .43)
--n2
cylinder(4, v(2,176.7,-16), v(2,176.7,-14.8), v(0,1,0), .43)
cylinder(4, v(0,176.7,-16), v(0,176.7,-14.8), v(0,1,0), .43)
cylinder(4, v(-2,176.7,-16), v(-2,176.7,-14.8), v(0,1,0), .43)
--e2
cylinder(4, v(16,176.7,-2), v(14.8,176.7,-2), v(0,1,0), .43)
cylinder(4, v(16,176.7,0), v(14.8,176.7,0), v(0,1,0), .43)
cylinder(4, v(16,176.7,2), v(14.8,176.7,2), v(0,1,0), .43)
--w2
cylinder(4, v(-16,176.7,-2), v(-14.8,176.7,-2), v(0,1,0), .43)
cylinder(4, v(-16,176.7,0), v(-14.8,176.7,0), v(0,1,0), .43)
cylinder(4, v(-16,176.7,2), v(-14.8,176.7,2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,179,0), v(-2.7,179,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,179,-2.7), v(0,179,2.7), v(0,1,0), .75)
--floor5
--south
cylinder(4, v(2,184.9,6.9), v(2,184.9,7.1), v(0,1,0), .43)
cylinder(4, v(0,184.9,6.9), v(0,184.9,7.1), v(0,1,0), .43)
cylinder(4, v(-2,184.9,6.9), v(-2,184.9,7.1), v(0,1,0), .43)
--north
cylinder(4, v(2,184.9,-6.9), v(2,184.9,-7.1), v(0,1,0), .43)
cylinder(4, v(0,184.9,-6.9), v(0,184.9,-7.1), v(0,1,0), .43)
cylinder(4, v(-2,184.9,-6.9), v(-2,184.9,-7.1), v(0,1,0), .43)
--east
cylinder(4, v(7,184.9,-2), v(6.8,184.9,-2), v(0,1,0), .43)
cylinder(4, v(7,184.9,0), v(6.8,184.9,0), v(0,1,0), .43)
cylinder(4, v(7,184.9,2), v(6.8,184.9,2), v(0,1,0), .43)
--west
cylinder(4, v(-7,184.9,-2), v(-6.8,184.9,-2), v(0,1,0), .43)
cylinder(4, v(-7,184.9,0), v(-6.8,184.9,0), v(0,1,0), .43)
cylinder(4, v(-7,184.9,2), v(-6.8,184.9,2), v(0,1,0), .43)
--se
cylinder(4, v(6,184.9,12), v(5.2,184.9,11.2), v(0,1,0), .43)
cylinder(4, v(8,184.9,10), v(7.2,184.9,9.2), v(0,1,0), .43)
cylinder(4, v(10,184.9,8), v(9.2,184.9,7.2), v(0,1,0), .43)
cylinder(4, v(12,184.9,6), v(11.2,184.9,5.2), v(0,1,0), .43)
--nw
cylinder(4, v(-6,184.9,-12), v(-5.2,184.9,-11.2), v(0,1,0), .43)
cylinder(4, v(-8,184.9,-10), v(-7.2,184.9,-9.2), v(0,1,0), .43)
cylinder(4, v(-10,184.9,-8), v(-9.2,184.9,-7.2), v(0,1,0), .43)
cylinder(4, v(-12,184.9,-6), v(-11.2,184.9,-5.2), v(0,1,0), .43)
--sw
cylinder(4, v(-6,184.9,12), v(-5.2,184.9,11.2), v(0,1,0), .43)
cylinder(4, v(-8,184.9,10), v(-7.2,184.9,9.2), v(0,1,0), .43)
cylinder(4, v(-10,184.9,8), v(-9.2,184.9,7.2), v(0,1,0), .43)
cylinder(4, v(-12,184.9,6), v(-11.2,184.9,5.2), v(0,1,0), .43)
--ne
cylinder(4, v(6,184.9,-12), v(5.2,184.9,-11.2), v(0,1,0), .43)
cylinder(4, v(8,184.9,-10), v(7.2,184.9,-9.2), v(0,1,0), .43)
cylinder(4, v(10,184.9,-8), v(9.2,184.9,-7.2), v(0,1,0), .43)
cylinder(4, v(12,184.9,-6), v(11.2,184.9,-5.2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,187.2,0), v(-2.7,187.2,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,187.2,-2.7), v(0,187.2,2.7), v(0,1,0), .75)
--floor6
--south
cylinder(4, v(2,193.2,6.9), v(2,193.2,7.1), v(0,1,0), .43)
cylinder(4, v(0,193.2,6.9), v(0,193.2,7.1), v(0,1,0), .43)
cylinder(4, v(-2,193.2,6.9), v(-2,193.2,7.1), v(0,1,0), .43)
--north
cylinder(4, v(2,193.2,-6.9), v(2,193.2,-7.1), v(0,1,0), .43)
cylinder(4, v(0,193.2,-6.9), v(0,193.2,-7.1), v(0,1,0), .43)
cylinder(4, v(-2,193.2,-6.9), v(-2,193.2,-7.1), v(0,1,0), .43)
--east
cylinder(4, v(7,193.2,-2), v(6.8,193.2,-2), v(0,1,0), .43)
cylinder(4, v(7,193.2,0), v(6.8,193.2,0), v(0,1,0), .43)
cylinder(4, v(7,193.2,2), v(6.8,193.2,2), v(0,1,0), .43)
--west
cylinder(4, v(-7,193.2,-2), v(-6.8,193.2,-2), v(0,1,0), .43)
cylinder(4, v(-7,193.2,0), v(-6.8,193.2,0), v(0,1,0), .43)
cylinder(4, v(-7,193.2,2), v(-6.8,193.2,2), v(0,1,0), .43)
--center screens e/w
cylinder(4, v(2.7,194.5,0), v(-2.7,194.5,0), v(0,1,0), .75)
-- s/n
cylinder(4, v(0,194.5,-2.7), v(0,194.5,2.7), v(0,1,0), .75)
end
--glass coverage
set_material('dark_glass',.01,.01,.1,.6,.1,.1,.1,100)
use_material('dark_glass')
lathe(div1, v(0,150,0), v(0,200,0), v(0,0,1), {0,10, .5,20, 1,10})
end,
dynamic = function(lod)
if lod > 1 then
local lightphase = math.fmod(get_time('SECONDS')+0.620486, 1)
billboard('smoke.png', 50, lightphase > .5 and v(1,0,0) or v(0,1,0), { v(0, 205.3, 0) })
-- tower lens
set_material('lens', .2,.2,0,.35,.2,.2,0,100,.2,.2,0)
use_material('lens')
tapered_cylinder(8, v(0,202.3,0), v(0,205.3,0), v(0,0,1), 3.2, 2.25)
end
end
})
function createLandingPadStatic(padNum, position, lod)
-- padNum: The landing pad number (zero based)
-- position: vector of the landing pad v(0,0,0) is where the ship lands
local padId = 'DOCKING_BAY_' .. (padNum + 1)
local div0 = 2*lod
local div1 = 4*lod
-- draw landing pad
set_material('pad', .7, .7, .7, 1)
use_material('pad')
geomflag(0x10 + padNum)
if lod > 1 then
texture('textures/seamless_texture_07.png', v(.5,.5,0),v(0,0.125,0),v(0,0,1.25))
end
cylinder(10, position + v(0,0,0), position + v(0,-.4,0), v(0,0,1), 50)
if lod > 1 then
cylinder(10, position + v(0,-2,0), position + v(0,-3,0), v(0,0,1), 52.15)
cylinder(10, position + v(0,-4.5,0), position + v(0,-5.5,0), v(0,0,1), 53.15)
cylinder(10, position + v(0,-7,0), position + v(0,-8,0), v(0,0,1), 54.15)
end
geomflag(0)
--windows
--frames
if lod > 1 then
texture('textures/bot5.png', v(.5,.5,0), v(.02,0,0), v(0,0,1))
cuboid(position + v(-51.1,-4,8), v(0,-.1,-16))
--cuboid(position + v(-51.1,-4,7.9), v(0,-.1,-16.1))
cuboid(position + v(51,-4,8), v(.1,-.1,-16))
--cuboid(position + v(51,-4,7.9), v(0,-.1,-16.1))
cuboid(position + v(-51.2,-3,8.1), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,6), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,3.1), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,1), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,8.1), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,6), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,3.1), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,1), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,-8), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,-5.9), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,-3), v(.2,-1.5,-.1))
cuboid(position + v(-51.2,-3,-.9), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,-8), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,-5.9), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,-3), v(.2,-1.5,-.1))
cuboid(position + v(51,-3,-.9), v(.2,-1.5,-.1))
--interior
set_material('screen', 0,0,1,1,0,0,0,5,0.7,0.7,1)
use_material('screen')
texture('textures/tex12.png', v(.5,.5,0), v(0,0,.3), v(.3,0,0))
quad(position + v(-47,-4.49,16), position + v(-47,-3.01,16), position + v(-47,-3.01,-16), position + v(-47,-4.49,-16))--w wall
quad(position + v(47,-4.49,16), position + v(47,-4.49,-16), position + v(47,-3.01,-16), position + v(47,-3.01,16))--e wall
quad(position + v(-51.1,-4.49,16), position + v(51.1,-4.49,16), position + v(51.1,-4.49,-16), position + v(-51.1,-4.49,-16))--floor
quad(position + v(-51.1,-3.01,-16), position + v(51.1,-3.01,-16), position + v(51.1,-3.01,16), position + v(-51.1,-3.01,16))--ceiling
quad(position + v(-51.1,-4.49,-16), position + v(51.1,-4.49,-16), position + v(51.1,-3.01,-16), position + v(-51.1,-3.01,-16))--n wall
quad(position + v(-51.1,-3.01,16), position + v(51.1,-3.01,16), position + v(51.1,-4.49,16), position + v(-51.1,-4.49,16))--s wall
--windows
set_material('lens', .2, .2, 0.2, .15, .2, .2, 0.2, 100, .2, .2, 0.2)
use_material('lens')
texture(nil)
--west
quad(position + v(-51.2,-4,8), position + v(-51.2,-3,8), position + v(-51.2,-3,7.1), position + v(-51.2,-4,7.1))
quad(position + v(-51.2,-4,6.9), position + v(-51.2,-3,6.9), position + v(-51.2,-3,6), position + v(-51.2,-4,6))
quad(position + v(-51.2,-4,3), position + v(-51.2,-3,3), position + v(-51.2,-3,2.1), position + v(-51.2,-4,2.1))
quad(position + v(-51.2,-4,1.9), position + v(-51.2,-3,1.9), position + v(-51.2,-3,1), position + v(-51.2,-4,1))
quad(position + v(-51.2,-4,-1), position + v(-51.2,-3,-1), position + v(-51.2,-3,-1.9), position + v(-51.2,-4,-1.9))
quad(position + v(-51.2,-4,-2.1), position + v(-51.2,-3,-2.1), position + v(-51.2,-3,-3), position + v(-51.2,-4,-3))
quad(position + v(-51.2,-4,-6), position + v(-51.2,-3,-6), position + v(-51.2,-3,-6.9), position + v(-51.2,-4,-6.9))
quad(position + v(-51.2,-4,-7.1), position + v(-51.2,-3,-7.1), position + v(-51.2,-3,-8), position + v(-51.2,-4,-8))
--east
quad(position + v(51.2,-4,8), position + v(51.2,-4,7.1), position + v(51.2,-3,7.1), position + v(51.2,-3,8))
quad(position + v(51.2,-4,6.9), position + v(51.2,-4,6), position + v(51.2,-3,6), position + v(51.2,-3,6.9))
quad(position + v(51.2,-4,3), position + v(51.2,-4,2.1), position + v(51.2,-3,2.1), position + v(51.2,-3,3))
quad(position + v(51.2,-4,1.9), position + v(51.2,-4,1), position + v(51.2,-3,1), position + v(51.2,-3,1.9))
quad(position + v(51.2,-4,-1), position + v(51.2,-4,-1.9), position + v(51.2,-3,-1.9), position + v(51.2,-3,-1))
quad(position + v(51.2,-4,-2.1), position + v(51.2,-4,-3), position + v(51.2,-3,-3), position + v(51.2,-3,-2.1))
quad(position + v(51.2,-4,-6), position + v(51.2,-4,-6.9), position + v(51.2,-3,-6.9), position + v(51.2,-3,-6))
quad(position + v(51.2,-4,-7.1), position + v(51.2,-4,-8), position + v(51.2,-3,-8), position + v(51.2,-3,-7.1))
-- draw out the pad number
texture('textures/seamless_texture_07.png', v(.5,.5,0),v(0,0.125,0),v(0,0,1.25))
set_material('text', 1, 1, 1, 1)
use_material('text')
zbias(1, position + v(0,0,0), v(0,1,0))
text(padNum+1, position + v(0,0,0), v(0,1,0), v(1,0,0), 20.0, {center=true})
-- starport name
-- note: actual starport name is added in the dynamic section where it can use get_label()
text("ACME", position + v(0,0,35), v(0,1,0), v(1,0,0), 5, {center=true})
text("Inc", position + v(0,0,39), v(0,1,0), v(1,0,0), 4, {center=true})
-- elevator labels
text("A", position + v(-44.4,0,8), v(0,1,0), v(0,0,-1), 4, {center=true})
text("B", position + v(-44.4,0,-8), v(0,1,0), v(0,0,-1), 4, {center=true})
text("C", position + v(44.4,0,-8), v(0,1,0), v(0,0,1), 4, {center=true})
text("D", position + v(44.4,0,8), v(0,1,0), v(0,0,1), 4, {center=true})
zbias(0)
--pad body
texture('textures/bot5.png', v(.5,.5,0), v(.02,0,0), v(0,0,1))
end
geomflag(0x10 + padNum) -- landing surface must be at least 1m thick
cylinder(10, position + v(0,-.5,0), position + v(0,-10.5,0), v(0,0,1), 51.15)
geomflag(0)
--pad pylon
lathe(10, position + v(-0,-10.5,0), position + v(0,-30.5,0), v(0,0,1), {0.0,25, 1,10})
if lod > 1 then
--fence posts
ring(div0, position + v(-49.5,0,16), position + v(-49.5,1.3,16), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,16), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-16), position + v(-49.5,1.3,-16), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-16), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,16), position + v(49.5,1.3,16), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,16), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-16), position + v(49.5,1.3,-16), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-16), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,14), position + v(-49.5,1.3,14), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,14), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-14), position + v(-49.5,1.3,-14), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-14), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,14), position + v(49.5,1.3,14), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,14), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-14), position + v(49.5,1.3,-14), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-14), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,12), position + v(-49.5,1.3,12), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,12), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-12), position + v(-49.5,1.3,-12), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-12), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,12), position + v(49.5,1.3,12), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,12), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-12), position + v(49.5,1.3,-12), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-12), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,10), position + v(-49.5,1.3,10), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,10), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-10), position + v(-49.5,1.3,-10), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-10), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,10), position + v(49.5,1.3,10), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,10), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-10), position + v(49.5,1.3,-10), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-10), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,8), position + v(-49.5,1.3,8), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,8), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-8), position + v(-49.5,1.3,-8), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-8), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,8), position + v(49.5,1.3,8), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,8), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-8), position + v(49.5,1.3,-8), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-8), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,6), position + v(-49.5,1.3,6), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,6), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-6), position + v(-49.5,1.3,-6), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-6), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,6), position + v(49.5,1.3,6), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,6), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-6), position + v(49.5,1.3,-6), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-6), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,4), position + v(-49.5,1.3,4), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,4), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-4), position + v(-49.5,1.3,-4), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-4), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,4), position + v(49.5,1.3,4), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,4), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-4), position + v(49.5,1.3,-4), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-4), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,2), position + v(-49.5,1.3,2), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,2), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,-2), position + v(-49.5,1.3,-2), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,-2), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,2), position + v(49.5,1.3,2), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,2), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,-2), position + v(49.5,1.3,-2), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,-2), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-49.5,0,0), position + v(-49.5,1.3,0), v(0,0,1), .125)
circle(div0, position + v(-49.5,1.3,0), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(49.5,0,0), position + v(49.5,1.3,0), v(0,0,1), .125)
circle(div0, position + v(49.5,1.3,0), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(48.2,0,17.75), position + v(48.2,1.3,17.75), v(0,0,1), .125)
circle(div0, position + v(48.2,1.3,17.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(48.2,0,-17.75), position + v(48.2,1.3,-17.75), v(0,0,1), .125)
circle(div0, position + v(48.2,1.3,-17.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-48.2,0,-17.75), position + v(-48.2,1.3,-17.75), v(0,0,1), .125)
circle(div0, position + v(-48.2,1.3,-17.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-48.2,0,17.75), position + v(-48.2,1.3,17.75), v(0,0,1), .125)
circle(div0, position + v(-48.2,1.3,17.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(46.9,0,19.5), position + v(46.9,1.3,19.5), v(0,0,1), .125)
circle(div0, position + v(46.9,1.3,19.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(46.9,0,-19.5), position + v(46.9,1.3,-19.5), v(0,0,1), .125)
circle(div0, position + v(46.9,1.3,-19.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-46.9,0,-19.5), position + v(-46.9,1.3,-19.5), v(0,0,1), .125)
circle(div0, position + v(-46.9,1.3,-19.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-46.9,0,19.5), position + v(-46.9,1.3,19.5), v(0,0,1), .125)
circle(div0, position + v(-46.9,1.3,19.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(45.6,0,21.25), position + v(45.6,1.3,21.25), v(0,0,1), .125)
circle(div0, position + v(45.6,1.3,21.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(45.6,0,-21.25), position + v(45.6,1.3,-21.25), v(0,0,1), .125)
circle(div0, position + v(45.6,1.3,-21.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-45.6,0,-21.25), position + v(-45.6,1.3,-21.25), v(0,0,1), .125)
circle(div0, position + v(-45.6,1.3,-21.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-45.6,0,21.25), position + v(-45.6,1.3,21.25), v(0,0,1), .125)
circle(div0, position + v(-45.6,1.3,21.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(44.3,0,23), position + v(44.3,1.3,23), v(0,0,1), .125)
circle(div0, position + v(44.3,1.3,23), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(44.3,0,-23), position + v(44.3,1.3,-23), v(0,0,1), .125)
circle(div0, position + v(44.3,1.3,-23), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-44.3,0,-23), position + v(-44.3,1.3,-23), v(0,0,1), .125)
circle(div0, position + v(-44.3,1.3,-23), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-44.3,0,23), position + v(-44.3,1.3,23), v(0,0,1), .125)
circle(div0, position + v(-44.3,1.3,23), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(43,0,24.75), position + v(43,1.3,24.75), v(0,0,1), .125)
circle(div0, position + v(43,1.3,24.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(43,0,-24.75), position + v(43,1.3,-24.75), v(0,0,1), .125)
circle(div0, position + v(43,1.3,-24.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-43,0,-24.75), position + v(-43,1.3,-24.75), v(0,0,1), .125)
circle(div0, position + v(-43,1.3,-24.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-43,0,24.75), position + v(-43,1.3,24.75), v(0,0,1), .125)
circle(div0, position + v(-43,1.3,24.75), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(41.7,0,26.5), position + v(41.7,1.3,26.5), v(0,0,1), .125)
circle(div0, position + v(41.7,1.3,26.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(41.7,0,-26.5), position + v(41.7,1.3,-26.5), v(0,0,1), .125)
circle(div0, position + v(41.7,1.3,-26.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-41.7,0,-26.5), position + v(-41.7,1.3,-26.5), v(0,0,1), .125)
circle(div0, position + v(-41.7,1.3,-26.5), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-41.7,0,26.5), position + v(-41.7,1.3,26.5), v(0,0,1), .125)
circle(div0, position + v(-41.7,1.3,26.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(40.4,0,28.25), position + v(40.4,1.3,28.25), v(0,0,1), .125)
circle(div0, position + v(40.4,1.3,28.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(40.4,0,-28.25), position + v(40.4,1.3,-28.25), v(0,0,1), .125)
circle(div0, position + v(40.4,1.3,-28.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-40.4,0,-28.25), position + v(-40.4,1.3,-28.25), v(0,0,1), .125)
circle(div0, position + v(-40.4,1.3,-28.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(-40.4,0,28.25), position + v(-40.4,1.3,28.25), v(0,0,1), .125)
circle(div0, position + v(-40.4,1.3,28.25), v(0,1,0), v(0,0,1), .125)
ring(div0, position + v(39.1,0,30), position + v(40.4,1.1,28.25), v(0,0,1), .125)
ring(div0, position + v(39.1,0,-30), position + v(40.4,1.1,-28.25), v(0,0,1), .125)
ring(div0, position + v(-39.1,0,-30), position + v(-40.4,1.1,-28.25), v(0,0,1), .125)
ring(div0, position + v(-39.1,0,30), position + v(-40.4,1.1,28.25), v(0,0,1), .125)
--vents
tube(div0, position + v(0,-10,-53.5), position + v(0,-.3,-53.5), v(1,0,0), .9, 1)
tube(div0, position + v(0,-10,53.5), position + v(0,-.3,53.5), v(1,0,0), .9, 1)
tube(div0, position + v(-31.4,-10,-43.3), position + v(-31.4,-.3,-43.3), v(1,0,0), .9, 1)
tube(div0, position + v(-31.4,-10,43.3), position + v(-31.4,-.3,43.3), v(1,0,0), .9, 1)
tube(div0, position + v(31.4,-10,43.3), position + v(31.4,-.3,43.3), v(1,0,0), .9, 1)
tube(div0, position + v(31.4,-10,-43.3), position + v(31.4,-.3,-43.3), v(1,0,0), .9, 1)
tube(div0, position + v(-51,-10,-16.5), position + v(-51,-.3,-16.5), v(1,0,0), .9, 1)
tube(div0, position + v(-51,-10,16.5), position + v(-51,-.3,16.5), v(1,0,0), .9, 1)
tube(div0, position + v(51,-10,16.5), position + v(51,-.3,16.5), v(1,0,0), .9, 1)
tube(div0, position + v(51,-10,-16.5), position + v(51,-.3,-16.5), v(1,0,0), .9, 1)
--vent grills
texture('textures/tex7Uruboros.png', v(.5,.5,0), v(.5,0,0), v(0,0,1))
circle(div0, position + v(0,-.38,-53.5), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(0,-.38,53.5), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(-31.4,-.38,-43.3), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(-31.4,-.38,43.3), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(31.4,-.38,43.3), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(31.4,-.38,-43.3), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(-51,-.38,-16.5), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(-51,-.38,16.5), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(51,-.38,16.5), v(0,1,0), v(1,0,0), .9)
circle(div0, position + v(51,-.38,-16.5), v(0,1,0), v(1,0,0), .9)
--border vent grills
texture('textures/metal_7280826.png', v(.5,.5,0), v(.07,0,0), v(0,0,1))
circle(10, position + v(0,-.49,0), v(0,1,0),v(0,0,1), 50.85)
--elevator frames
texture('textures/tex4.png', v(.5,.5,0),v(0,.6,0),v(0,0,1))
cuboid(position + v(-48,0,14), v(-.4,.05,-12))
cuboid(position + v(-39.6,0,14), v(-.4,.05,-12))
cuboid(position + v(-48.4,0,14), v(8.8,.05,.4))
cuboid(position + v(-39.6,0,2), v(-8.8,.05,-.4))
cuboid(position + v(-48,0,-2), v(-.4,.05,-12))
cuboid(position + v(-39.6,0,-2), v(-.4,.05,-12))
cuboid(position + v(-48.4,0,-14.4), v(8.8,.05,.4))
cuboid(position + v(-39.6,0,-1.6), v(-8.8,.05,-.4))
cuboid(position + v(48.4,0,14), v(-.4,.05,-12))
cuboid(position + v(40,0,14), v(-.4,.05,-12))
cuboid(position + v(39.6,0,14), v(8.8,.05,.4))
cuboid(position + v(39.6,0,1.6), v(8.8,.05,.4))
cuboid(position + v(48.4,0,-2), v(-.4,.05,-12))
cuboid(position + v(40,0,-2), v(-.4,.05,-12))
cuboid(position + v(39.6,0,-14.4), v(8.8,.05,.4))
cuboid(position + v(39.6,0,-2), v(8.8,.05,.4))
--lamp housings
cylinder(div1, position + v(-30,0,30), position + v(-30,.05,30), v(0,0,1), .8)
cylinder(div1, position + v(30,0,30), position + v(30,.05,30), v(0,0,1), .8)
cylinder(div1, position + v(-30,0,-30), position + v(-30,.05,-30), v(0,0,1), .8)
cylinder(div1, position + v(30,0,-30), position + v(30,.05,-30), v(0,0,1), .8)
--railings
ring(div0, position + v(40.4,1.2,28.25), position + v(49.5,1.2,16), v(0,0,1), .0625)
ring(div0, position + v(40.4,1.2,-28.25), position + v(49.5,1.2,-16), v(0,0,1), .0625)
ring(div0, position + v(-40.4,1.2,-28.25), position + v(-49.5,1.2,-16), v(0,0,1), .0625)
ring(div0, position + v(-40.4,1.2,28.25), position + v(-49.5,1.2,16), v(0,0,1), .0625)
ring(div0, position + v(40.4,.6,28.25), position + v(49.5,.6,16), v(0,0,1), .0625)
ring(div0, position + v(40.4,.6,-28.25), position + v(49.5,.6,-16), v(0,0,1), .0625)
ring(div0, position + v(-40.4,.6,-28.25), position + v(-49.5,.6,-16), v(0,0,1), .0625)
ring(div0, position + v(-40.4,.6,28.25), position + v(-49.5,.6,16), v(0,0,1), .0625)
ring(div0, position + v(-49.5,1.2,-16), position + v(-49.5,1.2,16), v(1,0,0), .0625)
ring(div0, position + v(49.5,1.2,-16), position + v(49.5,1.2,16), v(1,0,0), .0625)
ring(div0, position + v(-49.5,.6,-16), position + v(-49.5,.6,16), v(1,0,0), .0625)
ring(div0, position + v(49.5,.6,-16), position + v(49.5,.6,16), v(1,0,0), .0625)
--border vents
cylinder(4, position + v(0,-.47,-53.5), position + v(31.4,-.47,-43.3), v(0,0,1), .0625)
cylinder(4, position + v(31.4,-.47,-43.3), position + v(51,-.47,-16.5), v(0,0,1), .0625)
cylinder(4, position + v(51,-.47,-16.5), position + v(51,-.47,16.5), v(1,0,0), .0625)
cylinder(4, position + v(31.4,-.47,43.3), position + v(51,-.47,16.5), v(0,0,1), .0625)
cylinder(4, position + v(0,-.47,53.5), position + v(31.4,-.47,43.3), v(0,0,1), .0625)
cylinder(4, position + v(0,-.47,53.5), position + v(-31.4,-.47,43.3), v(0,0,1), .0625)
cylinder(4, position + v(-31.4,-.47,43.3), position + v(-51,-.47,16.5), v(0,0,1), .0625)
cylinder(4, position + v(-51,-.47,-16.5), position + v(-51,-.47,16.5), v(1,0,0), .0625)
cylinder(4, position + v(-31.4,-.47,-43.3), position + v(-51,-.47,-16.5), v(0,0,1), .0625)
cylinder(4, position + v(0,-.47,-53.5), position + v(-31.4,-.47,-43.3), v(0,0,1), .0625)
end
-- draw the pad body
if lod > 1 then
texture('textures/tex12.png', v(.5,.5,0), v(.005,0,0), v(0,.02,0))
end
set_material('body', .3, .3, .3, 1)
use_material('body')
lathe(10, position + v(0,-30.5,0), position + v(0,-100,0), v(0,0,1), {0,10, 1,20})
if lod > 1 then
texture(nil)
set_material('lens', .2, .2, 0, .35, .2, .2, 0, 100, .2, .2, 0)
use_material('lens')
tapered_cylinder(16, position + v(-30,.05,30), position + v(-30,.15,30), v(0,0,1), .6, .25)
tapered_cylinder(16, position + v(30,.05,30), position + v(30,.15,30), v(0,0,1), .6, .25)
tapered_cylinder(16, position + v(-30,.05,-30), position + v(-30,.15,-30), v(0,0,1), .6, .25)
tapered_cylinder(16, position + v(30,.05,-30), position + v(30,.15,-30), v(0,0,1), .6, .25)
--sequential lights-code from potsmoke66
circle(6 , position + v(0,0.1,46), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,38), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,30), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,22), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,14), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,-46), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,-38), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,-30), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,-22), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(0,0.1,-14), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(46,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(38,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(30,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(22,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(14,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(-46,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(-38,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(-30,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(-22,0.1,0), v(0,1,0), v(0,0,1), .3)
circle(6 , position + v(-14,0.1,0), v(0,1,0), v(0,0,1), .3)
end
end
function createLandingPadDynamic(padNum, position, lod)
-- padNum: The landing pad number (zero based)
-- position: vector of the landing pad v(0,0,0) is where the ship lands
local padId = 'DOCKING_BAY_' .. (padNum + 1)
local stage = get_animation_stage(padId) -- used to determine landing lights
local div0 = 2*lod
local div1 = 4*lod
-- station name label
if lod > 1 then
texture('lmrmodels/stations/textures/seamless_texture_07.png', v(.5,.5,0),v(0,0.125,0),v(0,0,1.25))
set_material('text', 1, 1, 1, 1)
use_material('text')
zbias(1, position + v(0,0,0), v(0,1,0))
-- starport name
text(get_label(), position + v(0,0,-35), v(0,1,0), v(1,0,0), 5.0, {center=true})
zbias(0)
end
-- dynamic lights
if lod > 1 then
if (math.fmod(get_time('SECONDS'), 2) > 1) then
local color
--local light
if stage > 1 or stage < 0 then
color = v(1,0,0) -- red
elseif stage == 1 then
color = v(0,1,0) -- green
else
color = v(1,0.5,0) -- orange
end
--landing lights
texture(nil)
set_material('lit_lamp', 1,0.5,0.5,1,1,0.5,0.5,5,1,0.5,0.5)
use_material('lit_lamp')
tapered_cylinder(div1, position + v(-30,.05,30), position + v(-30,.15,30), v(0,0,1), .6, .25)
tapered_cylinder(div1, position + v(30,.05,30), position + v(30,.15,30), v(0,0,1), .6, .25)
tapered_cylinder(div1, position + v(-30,.05,-30), position + v(-30,.15,-30), v(0,0,1), .6, .25)
tapered_cylinder(div1, position + v(30,.05,-30), position + v(30,.15,-30), v(0,0,1), .6, .25)
billboard('smoke.png', 50, color, {
position + v(-30,3,30),
position + v(30,3,30),
position + v(-30,3,-30),
position + v(30,3,-30) })
end
local freq0 = math.fmod(get_time('SECONDS'),1)
local freq1 = math.sin(freq0*50)
if stage == 1 then
billboard('smoke.png', 20, v(0,freq1*2,0), {
vlerp(freq0, position + v(0,0.15,50), position + v(0,0.15,10)),
vlerp(freq0, position + v(0,0.15,-50), position + v(0,0.15,-10))})
billboard('smoke.png', 20, v(0,freq1*2,0), {
vlerp(freq0, position + v(50,0.15,0), position + v(10,0.15,0)),
vlerp(freq0, position + v(-50,0.15,0), position + v(-10,0.15,0))})
end
end
end
define_model('ground_station_1', {
info = {
lod_pixels = {.1,80,160,0},
bounding_radius=300.0,
materials = {'text', 'pad', 'body', 'lens', 'screen', 'lit_lamp'},
tags = {'surface_station'},
num_docking_ports = 1,
parking_distance = 5000.0,
parking_gap_size = 2000.0,
ship_launch_stage = 0,
dock_anim_stage_duration = { DOCKING_TIMEOUT_SECONDS, 4.0},
undock_anim_stage_duration = { 0 },
ship_dock_anim = function(port, stage, t, from, ship_aabb)
local port_pos = { v(-150,50,0) }
if stage == 2 then
return { vlerp(t, from, port_pos[port] - v(0,ship_aabb.min.y,0)), v(1,0,0), v(0,1,0) }
end
end,
ship_approach_waypoints = function(port, stage)
local port_pos = { v(-150,50,0) }
if stage == 1 then
return { v(port_pos[port].x, port_pos[port].y+5000, port_pos[port].z), v(1,0,0), v(0,1,0) }
elseif stage == 2 then
return { v(port_pos[port].x, port_pos[port].y, port_pos[port].z), v(1,0,0), v(0,1,0) }
end
end,
},
static = function(lod)
-- Control Tower
call_model('control_tower', v(0,0,0), v(1,0,0), v(0,1,0), 1.0)
createLandingPadStatic(0, v(-150,50,0), lod)
end,
dynamic = function(lod)
-- display dynamic landing lights
createLandingPadDynamic(0, v(-150,50,0), lod)
end,
})
define_model('ground_station_2', {
info = {
lod_pixels = {.1,80,160,0},
bounding_radius=300.0,
materials = {'text', 'pad', 'body', 'lens', 'screen', 'lit_lamp'},
tags = {'surface_station'},
num_docking_ports = 2,
parking_distance = 5000.0,
parking_gap_size = 2000.0,
ship_launch_stage = 0,
dock_anim_stage_duration = { DOCKING_TIMEOUT_SECONDS, 4.0},
undock_anim_stage_duration = { 0 },
ship_dock_anim = function(port, stage, t, from, ship_aabb)
local port_pos = { v(-150,50,0), v(150,50,0) }
if stage == 2 then
return { vlerp(t, from, port_pos[port] - v(0,ship_aabb.min.y,0)), v(1,0,0), v(0,1,0) }
end
end,
ship_approach_waypoints = function(port, stage)
local port_pos = { v(-150,50,0), v(150,50,0) }
if stage == 1 then
return { v(port_pos[port].x, port_pos[port].y+5000, port_pos[port].z), v(1,0,0), v(0,1,0) }
elseif stage == 2 then
return { v(port_pos[port].x, port_pos[port].y, port_pos[port].z), v(1,0,0), v(0,1,0) }
end
end,
},
static = function(lod)
-- Control Tower
call_model('control_tower', v(0,0,0), v(1,0,0), v(0,1,0), 1.0)
createLandingPadStatic(0, v(-150,50,0),lod)
createLandingPadStatic(1, v(150,50,0),lod)
end,
dynamic = function(lod)
-- display dynamic landing lights
createLandingPadDynamic(0, v(-150,50,0),lod)
createLandingPadDynamic(1, v(150,50,0),lod)
end,
})
define_model('ground_station_3', {
info = {
lod_pixels = {.1,80,160,0},
bounding_radius=300.0,
materials = {'text', 'pad', 'body', 'lens', 'screen', 'lit_lamp'},
tags = {'surface_station'},
num_docking_ports = 3,
parking_distance = 5000.0,
parking_gap_size = 2000.0,
ship_launch_stage = 0,
dock_anim_stage_duration = { DOCKING_TIMEOUT_SECONDS, 4.0},
undock_anim_stage_duration = { 0 },
ship_dock_anim = function(port, stage, t, from, ship_aabb)
local port_pos = { v(-150,50,0), v(150,50,0), v(0,50,-150) }
if stage == 2 then
return { vlerp(t, from, port_pos[port] - v(0,ship_aabb.min.y,0)), v(1,0,0), v(0,1,0) }
end
end,
ship_approach_waypoints = function(port, stage)
local port_pos = { v(-150,50,0), v(150,50,0), v(0,50,-150) }
if stage == 1 then
return { v(port_pos[port].x, port_pos[port].y+5000, port_pos[port].z), v(1,0,0), v(0,1,0) }
elseif stage == 2 then
return { v(port_pos[port].x, port_pos[port].y, port_pos[port].z), v(1,0,0), v(0,1,0) }
end
end,
},
static = function(lod)
-- Control Tower
call_model('control_tower', v(0,0,0), v(1,0,0), v(0,1,0), 1.0)
createLandingPadStatic(0, v(-150,50,0),lod)
createLandingPadStatic(1, v(150,50,0),lod)
createLandingPadStatic(2, v(0,50,-150),lod)
end,
dynamic = function(lod)
-- display dynamic landing lights
createLandingPadDynamic(0, v(-150,50,0),lod)
createLandingPadDynamic(1, v(150,50,0),lod)
createLandingPadDynamic(2, v(0,50,-150),lod)
end,
})
define_model('ground_station_4', {
info = {
lod_pixels = {.1,80,160,0},
bounding_radius=300.0,
materials = {'text', 'pad', 'body', 'lens', 'screen', 'lit_lamp'},
tags = {'surface_station'},
num_docking_ports = 4,
parking_distance = 5000.0,
parking_gap_size = 2000.0,
ship_launch_stage = 0,
dock_anim_stage_duration = { DOCKING_TIMEOUT_SECONDS, 4.0},
undock_anim_stage_duration = { 0 },
ship_dock_anim = function(port, stage, t, from, ship_aabb)
local port_pos = { v(-150,50,0), v(150,50,0), v(0,50,-150), v(0,50,150) }
if stage == 2 then
return { vlerp(t, from, port_pos[port] - v(0,ship_aabb.min.y,0)), v(1,0,0), v(0,1,0) }
end
end,
ship_approach_waypoints = function(port, stage)
local port_pos = { v(-150,50,0), v(150,50,0), v(0,50,-150), v(0,50,150) }
if stage == 1 then
return { v(port_pos[port].x, port_pos[port].y+5000, port_pos[port].z), v(1,0,0), v(0,1,0) }
elseif stage == 2 then
return { v(port_pos[port].x, port_pos[port].y, port_pos[port].z), v(1,0,0), v(0,1,0) }
end
end,
},
static = function(lod)
-- Control Tower
call_model('control_tower', v(0,0,0), v(1,0,0), v(0,1,0), 1.0)
createLandingPadStatic(0, v(-150,50,0),lod)
createLandingPadStatic(1, v(150,50,0),lod)
createLandingPadStatic(2, v(0,50,-150),lod)
createLandingPadStatic(3, v(0,50,150),lod)
end,
dynamic = function(lod)
-- display dynamic landing lights
createLandingPadDynamic(0, v(-150,50,0),lod)
createLandingPadDynamic(1, v(150,50,0),lod)
createLandingPadDynamic(2, v(0,50,-150),lod)
createLandingPadDynamic(3, v(0,50,150),lod)
end,
})
vuzz, i didn't think lua wil stay for that, if i think about it right it's probably more to find out what's needed for a suitable routine for the new modeling system.
yes, i do hate to see it go, prob. my sentimentality...
on the other hand, i have some reservations about the new stuff, i guess i will post them.
i.e. i have a lot of problems with the chosen "default" format Collada, it seems non of my exported models work proper, on the blender2.6 mac release the export script
has no options, somehow neither the animations nor the material get recognized, i had more success using ".x" meshes, it's stable and there exists ONE format not many.
though i don't quite understand why to use collada, to "maintain" or examine a .dae is complicated like hell compared to the directX format.
"empty nodes", in other words named empty objects as placeholders could be used as well.
further .x can be compressed*, that helps at least to keep the filesize a bit (a lot) smaller, the matrix animations can use up easy 2 - 4 MB in a mesh, depending on how complex they are made, think of "coolhands viper", besides thanks to the new system and as a plus for it it will be very easy now to "ripp" a model, prob. i do that, coolhands viper and my "studcity shuttle" are predestinated for this, even when the shuttle will loose actually some animated parts. a minus, "rotten ffed3d" wasn't planned to handle a second animation, but due to the chosen format (.x) it's possible by default, the engine allows it because all models are "animated always", if the landing gear anim doesn't runs the "alternative" animation runs, a bit lousy, but it was never planned to have this, it was something i experienced.
a .x mesh can have multiple animation channels, how you use them it's part of the engine, unfortunately all export scripts known to me handle only one animation, but it's easy to add them to a previously exported model, and really much easier to do as with .dae, because the files are much easier to read and understand.
that it will be "conventional" i could show you using "MV" again, you can select there between the animation channels, just if one would like to say that this isn't standard or something "lunatic" only i did.
*works with the library, but unfortunately i lose material names when i convert the meshes using MV (meshview, came once with MSdxSDK, is now abondoneware and not longer distributed by MS, even worse marked as "malware" but there is no reason for it. i have no idea why MS decided to remove it and offers only the command line tools you find now in the SDK. anyway a cool helper program, if the material names wouldn't get lost, PERFECT, it shows off and cleans also possible errors in the mesh, allows a few modifications to the mesh, shows the hierarchy (but you can't change it from there), also able to create a absolutely useless "teapot" model. sorts animations new, so they are easier to understand and to edit)
seems material names are not conventional for .x, and brings up the question why we don't use the materials and textures given in the mesh?
i know, hard to maintain with supporting many formats, then why support many?
further one must know that a mesh must contain a material and a texture assign else the exported model leaks of materials (but it will also leak of it actually if the material is not assigned to the mesh, things no one notified here and i'm not sure if i should do such).
there is only one big disadvantage i see right now of .x compared to .dae, animations get lost ("implode" or "explode" usually) when you import a model, so it's not interchangeable, while a .dae you can open the animation will work as it was build once.
i would have many questions and ideas, but i'm really afraid to post all of that, somehow i'm convinced i won't be heard anyway.
one of a 100 would be, why only 24 frames/sec?
already a "medium sized" animation like the "glowing ring" of the "Lancet" becomes staggered with this framerate, on a small object like a scanner you won't notice a slice of 360°/24, but on a diameter of 10m it looks shitty and jumps instead to be animated (and there are only teo ways to handle a looped rotation with the matrix shit, either you start and end the loop at the same position, this leads to a small pause as long as one fraction is, or to end the loop a fraction (in this case the 24th part) before start, this leads to a jump as small as the fraction.
though EVEN if the animation is handled fluid by the engine, this little pause/jump will stay, if i choose a higher framerate i.e 1/240 i can touch up this effect by using smaller fractions (the 240th part of 360° as example).
one thing you must be sure of, a working clock like in FE2 or what we had before we won't see prob. with the matrix "shit". it can't be totally synchronized with the game time, due to this fraction, how small it is/would be ever, it will lead finally to a difference (you have to know my chappel for ffed3d has a "working" clock, with exactly this little leak, it's not 100% synchronized to the game time).
further we will loose the adverts i made once, no more such thing will be possible and i really fear it will be "boring" limited afterwards, sorry.
i guess i won't be able to have a animated material and this limits a lot, i have to solve it "mechanically" if that is really better i'm not convinced about.
sometime i feel it's like a attempt to make "boring highrise" look pretty... because it will be the only "style".
(one grey skyscraper fits all, a sort of dictatorship it is, one could say, do it "my way" or get busted, i dislike sorry)
nonetheless they kept still the wrong scale of the buildings (a floor is 8m on this bld) and even worse took the wrong scaled buildings to measure and rescale the existing models (scaled the eagle so the pilot became 4m tall, prob. to fit it to the wrong scaled buildings), if i look at it from this pov, i fear some have not the right understanding of it.
but we have this new system and you can tell me the shit from hell and if tomorrow the scale is 2:1 it will be and no comment allowed to that.
i'm already not even sure if my models appear in the proper size/scale right now, this much i distrust all of that.
edit: just because i haven't any control about that anymore, this worries me really, i've seen models have been scaled to whatever, i don't understand what the intention was behind, it was wrong from my pov. none of my critizism to that has been taken serious, as if i would be a idiot, so why should i trust this?
and scale is just one aspect, call me nitpicking, yes in this point i am very choosy, sometimes it took me "weeks" to find a proper scale for a model and i really hated it to see that changed, some really was scaled wrong by me that's true to, but leave it up to the creator to fix that.
also i'm predicting right now that you won't see any of my models in a future standard pioneer, that's what i think is the real reason for it (just because you haven't seen them since long in a standard pioneer, neglected for whatever reason and i didn't hink this behave will change in future, conclusion is...) tell me what you like (perhaps a bit unfair of me, but naive as i would be, or as i am inside, i had to learn the hard way that people are not to trust, sorry, to much hands had been lend to me only to beat me. well i never understood "dog eats dog" or the world is mean so you have to be mean, guess what's the reason for it? exactly this pov).
i see we have one who likes to control the models section of pioneer and if he dislikes something it hasn't any chance, that's what i say.
i'm disliked by some because i don't used to say "yes and amen" to everything...
sort of a "persona non grata", uncomfortable at least, i know.
i guess probably i really depart, because like i said a year before, this is no situation, or a situation i won't accept.
it's not the loss of the LMR particulary, it's the sort of "dictatorship" i see ahead (while this counts actually only for the models section of the game, any other has been "opened" and i apreciate this much, though i don't understand quite right this.
i understand that the LMR as modeling system and how it was implemented didn't suits anymore, but i don't understand well why we didn't still use lua to assemble the models and keep the flexibility of this, means in fact the modeler decides and not someone else, i guess such should be possible no?
and if one is satisfied with a simple model using only the landing gear animation, the script would be quite simple, no?
take this as reason why a look so suspective to it, it limits it to the ideas of others (one?). the only real reason i see is to gain (total) control, that's all).
You've not been reading what people have been telling you. We've been using DAE (Collada) because it's easier to pick just one format and support it than to support 20, but the new model system can load ALL of these formats listed here: http://assimp.sourceforge.net/main_features_formats.html
The other thing which you note yourself is that the DirectX "X" format is deprecated by MS, unsupported, and has bugs in the exporters and tools.
So telling people to use that and supporting it wouldn't make sense.
I'll also repeat something you might not have noticed when you read the animation section of the wiki page: "The game will recognize animations by name, the list of supported animations is to be decided."
I believe there's only the landing gear animations at the moment, an "idle" or "default" animation looks like a good next candidate for a lot of reasons, if there are others that you would like to have then you should tell us so we can add them.
Otherwise we have to guess.
very very desapointed by these events , seem the "standardised society" have take a look also on the tools of modelings .
anyway thanks a lot for these two versus of Lancet model (don't need to tell you what is my prefered).
its really a simple way to show what we lose with the lose of LMR .
Yes, i consider that a deteriorate ships is lose, with this new system we go to models "flying box" types, without soul .
ho , just take a look on these variant of the new cobra1 ...
what did you think about this texture ?
What do you lose Vuzz? What is there that cannot be done using the new system? The alternate texture?
We've had a vast choice of flying boxes because people haven't been able to do more complex models with LMR!
I believe there's only the landing gear animations at the moment, an "idle" or "default" animation looks like a good next candidate for a lot of reasons, if there are others that you would like to have then you should tell us so we can add them.
If you look at the test_gear model in the modelviewer, you'll see that it has two animations - gear_down and flapity_flap. So the new system can already handle multiple animations. Of course they're not hooked up to the game yet - that's already been said numerous times elsewhere.
if it not the case and if the station are already in lua , maybe we can continue to use lua for the old models of ships ?
In time LMR will be removed completely. All models will be done through SGModel. There's some extra work to be done around buildings and space stations before this can happen. Notably, buildings need a selection mechanism (something like the old tags), and stations need a way to specifiy docking surfaces and waypoints.
Know what a Byzantine discussion?
The mods with space stations do not work . LMR is dead prematurely in mods, due to lack of support from their creators.
I have no time to study this issue, so, remain dead.
@everyone
Why don't just keep both models till the new model can do anything that the old model can do? I am not an artist myself and i haven't done any model to be honest but this way it will calm down things and be sure that we don't miss anything.
Dionisis
i dont see the problem Vuzz. give it time and there will probably be a way to call 'special' animations like that via the lua modules
somthing like onLanding playAnim special1
on these screen you can see a landing door wicht is openned only if the ship is under docking or landing status , is that sort of things i'm afraid to loose , and please try to make somes models before talking about the works of the others !
Its a landing gear animation. If you had spent even a small amount of time actually trying the new system you'd find that its supported. But even if it wasn't, a) you've been told that this isn't finished and B) you've been asked for feedback. Do you honestly believe that we'd have spaceships without moving parts? Without landing gear?
I simply do not understand where the hostility is coming from.
PS another agressive post from you , and you go directly on my black list .
You just made mine. You're contributing nothing of value, and I see nothing that makes me think that will change in the future.
i dont see the problem Vuzz. give it time and there will probably be a way to call 'special' animations like that via the lua modules
somthing like onLanding playAnim special1
That's a nice idea. Its still too early for a Lua interface to SGModel, but we have started thinking about it a little bit. I'll keep it in the back of my head somewhere 🙂
@VuZZ because alot of artists (like myself) dont know the maths needed to create animations from scratch
alot of us prefer to see what we are doing in front of us (i may not be explaining myself well)
if we must call something via a lua to complete the new system , why we can't continue to make the entire model in lua ?
Because it's a very very bad idea.
Or to put it another way; make the models in Max/Blender/Maya/Lightwave/Modo/etc, make the animations in the same or another preferred program which is meant for that purpose, with possibly hundreds of movements, rotations, scaling and other animated stages.
Attach thrusters, lights and place attachments points.
All done in the same software, all done onto the same models you've created with those programs.
This is usually just a case of pointing and clicking a few times, perhaps with a rotate or scale in there to get things just right on your model.
Then try that using just Lua and a text editor.
That's why almost every professional artist has run a mile.
I asked a couple of the guys I work with, who are professional game artists and one of whom is a technical artist (does scripting and programming too), to contribute a couple of models to Pioneer. In fact I offered to pay one of them £500 for a single model.
None of them would come NEAR Pioneer because of LMR, not even for £500.
I have done a few models for my own usage, I have one that is in progress so I can learn the new model system, I will post them either when I get home tonight or tomorrow.
so what your asking for is a call to an animation when the ship has landed right?
would it not be better to ask for this as a new feature for the model system that can be called from within the .model file with something like 'anim ship_landed 20 30'
So you want an optional "post-landing" or "after-landing" animation, and another to play on/before takeoff.
Ok. That's easy enough. Perhaps instead of declaring the whole new model system to be useless you could just ask about specific things because then we can discuss them.
You've filled two threads with how much you hate it, and won't use it, and will miss LMR, and how we're all "despots" and other horrible name calling. Of course we're getting hurt feelings, you are saying things which hurt our feelings and directly insulting the people who have put a lot of effort into this without giving any actual feedback or information which would help us fix any problems.
Block me if you like, but you and Gernot should go and re-read you posts about us being "despots" and the "standardised society" without realising that this wasn't done on a whim.
RobN spent a lot of time trying to fix the problems LMR, so did Luomu and so have I.
Also people have repeatedly asked for something other than LMR.
So you're directly insulting a large group of people who have spent hundreds of hours or their spare time trying to create a system which HAS been asked for repeatedly.
Block away.
when somebody tell me to stop discuss , i think it's a despot yes , i'm a frenchy don't forget that ^^
and if you decide that when i say that to robn , i also directly insult a large group of people , i must remember one thing , in france we have cuting of the head of our king ^^.
i begin to thing you don't like me .
in these case , i can leave these forum if you want : afterall pioneer is just a game .
You need to keep on topic and stop ranting about any perceived insults.
Yes there are things like the docking animations that will need work. I know that Luomu has already looked into those animation specifically but I don't know what he's done about them.
My first thought was to have a dummy object animated into place, that would belong with the spacestation. Then any docking port would just be a named thing "docking_port_1" with it's docking and undocking animations. All as part of the spacestation model.
I don't want you to leave the forum, or the game, I like both you and Gernot - even if we are driving each other "up the wall" over this.
I want to find out what the problems you're having are, so that we can fix them and make things better. What gets to me is when we can't get that information and instead just get a lot of negativity. 🙁