Plant library: RootSurface() limits for positioning added

Felix Wagner 2011-10-21 21:16:44 +01:00
parent cf71fb48b6
commit abcee8afa3
1 changed files with 7 additions and 2 deletions

View File

@ -11,10 +11,15 @@
*/
global func RootSurface()
{
if (HasCNAT(CNAT_Center)) while(GetContact(-1) & CNAT_Center) SetPosition(GetX(),GetY()-1); //Move up if too far underground
if (HasCNAT(CNAT_Center))
{
var i = 0;
while(GetContact(-1) & CNAT_Center && i < GetObjHeight()/2) { SetPosition(GetX(),GetY()-1); i++; } //Move up if too far underground
}
if (HasCNAT(CNAT_Bottom))
{
while(!(GetContact(-1) & CNAT_Bottom)) SetPosition(GetX(),GetY()+1); //Move down if in midair
i = 0;
while(!(GetContact(-1) & CNAT_Bottom) && i < GetObjHeight()/2) { SetPosition(GetX(),GetY()+1); i++; } //Move down if in midair
if (!Stuck()) SetPosition(GetX(),GetY()+1); // try make the plant stuck
}