Blockland Forums > Modification Help
Changing The Sun's Ambience
<< < (2/2)
jes00:
So this should work?

--- Code: ---if((%obj = missionGroup.getObject(%i)).getClassName() $= "Sun")
{
%color = %obj.color;

break;
}

setSun(%color, %ambient);

function setSun(%color,%ambient)
{
for(%i=0; %i<missiongroup.getCount(); %i++)
{
%obj=missiongroup.getObject(%i); if(%obj.getClassname()$= "Sun") %obj.delete();
}

$Sun = new sun(Sun)
{
color = %color;
ambient = %ambient;
}
}

--- End code ---
otto-san:
here's a more updated version of what electrk posted, i'm pretty sure it works from what i've tested


--- Code: ---function getSunCount()
{
%ct=-1;
for(%i=0;%i<missiongroup.getcount();%i++)
{
%obj=missiongroup.getObject(%i);
if(%obj.getClassName()$="Sun"){%ct++;}
}
return %ct;
}

function getSun(%c)
{
%ct=-1;
for(%i=0;%i<missiongroup.getcount();%i++)
{
%obj=missiongroup.getObject(%i);
if(%obj.getClassName()$="Sun"){%ct++;}
if(%ct == %c){return %obj;}
}
}

function changeLighting(%d, %l, %p, %r, %s, %c, %am, %az, %e)
{
for(%i = 0; %i <= getSunCount(); %i++)
getSun(%i).delete();
new Sun(Sun)
{
color = %c;
ambient = %am;
azimuth = %az;
elevation = %e;
direction = %d;
locked = %l;
position = %p;
rotation = %r;
scale = %s;
};
missionGroup.add(Sun);
}
--- End code ---

so you could just do something like this maybe


--- Code: ---function changeAmbient(%sun, %a)
{
changeLighting(%sun.direction,
      %sun.locked,
      %sun.position,
      %sun.rotation,
      %sun.scale,
      %sun.color,
      %a,
      %sun.azimuth,
      %sun.elevation);
}
--- End code ---
changeAmbient(getSun(0), whatever);


not tested but try it

also in case you bugger something up here's the default lighting for skylands

changeLighting("0.57735 0.57735 -0.57735", 1, "0 0 0", "1 0 0 0", "1 1 1", "0.6 0.6 0.6 1.0", "0.5 0.5 0.5 1.0", "238", 21);

Navigation
Message Index
Previous page

Go to full version