Fix tree growth in skylands scenario (#750) and rework alt tree texture.

Tree growth now implemented using an overload of the grwoth function. Also made the alternate tree skin in skylands a bit more colorful
lights3
Sven Eberhardt 2015-08-27 23:28:41 -04:00
parent 41fd8c38b0
commit 44a396497c
14 changed files with 114 additions and 119 deletions

View File

@ -0,0 +1,4 @@
[DefCore]
id=AltMat_Coniferous
Version=7,0
Category=1

View File

@ -1,4 +1,4 @@
material Soniferous
material Coniferous_AltMat
{
receive_shadows on
technique
@ -7,6 +7,7 @@ material Soniferous
{
cull_hardware none
scene_blend alpha_blend
depth_check off
ambient 1.000000 1.000000 1.000000 1.000000
diffuse 1.000000 1.000000 1.000000 1.000000
@ -15,7 +16,7 @@ material Soniferous
texture_unit
{
texture Soniferous.png
texture coniferous2.png
tex_address_mode wrap
filtering trilinear
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -6,70 +6,70 @@ func InitializeObjects()
CreateObject(Rule_BuyAtFlagpole, 50, 50);
CreateObjectAbove(Tree_SmallConiferous, 962, 839);
CreateObjectAbove(Tree_SmallConiferous, 774, 951);
CreateObjectAbove(Tree_Coniferous, 962, 839);
CreateObjectAbove(Tree_Coniferous2, 774, 951);
CreateObjectAbove(Tree_SmallConiferous, 46, 441);
var Tree_SmallConiferous0015 = CreateObjectAbove(Tree_SmallConiferous, 320, 312);
Tree_SmallConiferous0015->SetR(-30);
Tree_SmallConiferous0015->SetPosition(320, 293);
var Tree_SmallConiferous0019 = CreateObjectAbove(Tree_SmallConiferous, 422, 887);
Tree_SmallConiferous0019->SetClrModulation(0xffb0b080);
var Tree_SmallConiferous0023 = CreateObjectAbove(Tree_SmallConiferous, 373, 920);
Tree_SmallConiferous0023->SetClrModulation(0xff808080);
var Tree_SmallConiferous0027 = CreateObjectAbove(Tree_SmallConiferous, 72, 744);
Tree_SmallConiferous0027->SetClrModulation(0xff808080);
CreateObjectAbove(Tree_SmallConiferous, 974, 327);
CreateObjectAbove(Tree_SmallConiferous, 1003, 326);
CreateObjectAbove(Tree_SmallConiferous, 550, 107);
CreateObjectAbove(Tree_SmallConiferous, 632, 128);
var Tree_SmallConiferous0047 = CreateObjectAbove(Tree_SmallConiferous, 129, 409);
Tree_SmallConiferous0047->SetR(-5);
Tree_SmallConiferous0047->SetClrModulation(0xffd49d68);
Tree_SmallConiferous0047->SetPosition(129, 387);
CreateObjectAbove(Tree_SmallConiferous, 78, 440);
var Tree_SmallConiferous0055 = CreateObjectAbove(Tree_SmallConiferous, 182, 408);
Tree_SmallConiferous0055->SetR(-2);
Tree_SmallConiferous0055->SetClrModulation(0xffca999c);
Tree_SmallConiferous0055->SetPosition(182, 386);
var Tree_SmallConiferous0059 = CreateObjectAbove(Tree_SmallConiferous, 200, 408);
Tree_SmallConiferous0059->SetR(8);
Tree_SmallConiferous0059->SetClrModulation(0xfff7e5ee);
Tree_SmallConiferous0059->SetPosition(200, 386);
CreateObjectAbove(Tree_SmallConiferous, 23, 452);
var Tree_SmallConiferous0067 = CreateObjectAbove(Tree_SmallConiferous, 110, 410);
Tree_SmallConiferous0067->SetR(1);
Tree_SmallConiferous0067->SetClrModulation(0xffe9e2b0);
Tree_SmallConiferous0067->SetPosition(110, 388);
var Tree_SmallConiferous0071 = CreateObjectAbove(Tree_SmallConiferous, 167, 408);
Tree_SmallConiferous0071->SetR(-4);
Tree_SmallConiferous0071->SetClrModulation(0xffedfa82);
Tree_SmallConiferous0071->SetPosition(167, 386);
var Tree_SmallConiferous0075 = CreateObjectAbove(Tree_SmallConiferous, 93, 430);
Tree_SmallConiferous0075->SetR(-10);
Tree_SmallConiferous0075->SetClrModulation(0xffedf4c6);
Tree_SmallConiferous0075->SetPosition(93, 408);
var Tree_SmallConiferous0079 = CreateObjectAbove(Tree_SmallConiferous, 36, 446);
Tree_SmallConiferous0079->SetR(-2);
Tree_SmallConiferous0079->SetClrModulation(0xffca90cd);
Tree_SmallConiferous0079->SetPosition(36, 424);
var Tree_SmallConiferous0083 = CreateObjectAbove(Tree_SmallConiferous, 151, 406);
Tree_SmallConiferous0083->SetR(-3);
Tree_SmallConiferous0083->SetClrModulation(0xffd8d7e0);
Tree_SmallConiferous0083->SetPosition(151, 384);
var Tree_SmallConiferous0087 = CreateObjectAbove(Tree_SmallConiferous, 159, 407);
Tree_SmallConiferous0087->SetClrModulation(0xffd1e168);
var Tree_SmallConiferous0091 = CreateObjectAbove(Tree_SmallConiferous, 60, 440);
Tree_SmallConiferous0091->SetR(-10);
Tree_SmallConiferous0091->SetClrModulation(0xffd8c49d);
Tree_SmallConiferous0091->SetPosition(60, 418);
var Tree_SmallConiferous0095 = CreateObjectAbove(Tree_SmallConiferous, 355, 313);
Tree_SmallConiferous0095->SetR(10);
Tree_SmallConiferous0095->SetPosition(355, 291);
CreateObjectAbove(Tree_SmallConiferous, 132, 726);
var Tree_SmallConiferous0103 = CreateObjectAbove(Tree_SmallConiferous, 487, 805);
Tree_SmallConiferous0103->SetR(-30);
Tree_SmallConiferous0103->SetPosition(487, 786);
CreateObjectAbove(Tree_Coniferous, 46, 441);
var Tree_Coniferous0015 = CreateObjectAbove(Tree_Coniferous2, 320, 312);
Tree_Coniferous0015->SetR(-30);
Tree_Coniferous0015->SetPosition(320, 293);
var Tree_Coniferous0019 = CreateObjectAbove(Tree_Coniferous, 422, 887);
Tree_Coniferous0019->SetClrModulation(0xffb0b080);
var Tree_Coniferous0023 = CreateObjectAbove(Tree_Coniferous2, 373, 920);
Tree_Coniferous0023->SetClrModulation(0xff808080);
var Tree_Coniferous0027 = CreateObjectAbove(Tree_Coniferous, 72, 744);
Tree_Coniferous0027->SetClrModulation(0xff808080);
CreateObjectAbove(Tree_Coniferous, 974, 327);
CreateObjectAbove(Tree_Coniferous2, 1003, 326);
CreateObjectAbove(Tree_Coniferous2, 550, 107);
CreateObjectAbove(Tree_Coniferous, 632, 128);
var Tree_Coniferous0047 = CreateObjectAbove(Tree_Coniferous2, 129, 409);
Tree_Coniferous0047->SetR(-5);
Tree_Coniferous0047->SetClrModulation(0xffd49d68);
Tree_Coniferous0047->SetPosition(129, 387);
CreateObjectAbove(Tree_Coniferous, 78, 440);
var Tree_Coniferous0055 = CreateObjectAbove(Tree_Coniferous, 182, 408);
Tree_Coniferous0055->SetR(-2);
Tree_Coniferous0055->SetClrModulation(0xffca999c);
Tree_Coniferous0055->SetPosition(182, 386);
var Tree_Coniferous0059 = CreateObjectAbove(Tree_Coniferous2, 200, 408);
Tree_Coniferous0059->SetR(8);
Tree_Coniferous0059->SetClrModulation(0xfff7e5ee);
Tree_Coniferous0059->SetPosition(200, 386);
CreateObjectAbove(Tree_Coniferous, 23, 452);
var Tree_Coniferous0067 = CreateObjectAbove(Tree_Coniferous, 110, 410);
Tree_Coniferous0067->SetR(1);
Tree_Coniferous0067->SetClrModulation(0xffe9e2b0);
Tree_Coniferous0067->SetPosition(110, 388);
var Tree_Coniferous0071 = CreateObjectAbove(Tree_Coniferous2, 167, 408);
Tree_Coniferous0071->SetR(-4);
Tree_Coniferous0071->SetClrModulation(0xffedfa82);
Tree_Coniferous0071->SetPosition(167, 386);
var Tree_Coniferous0075 = CreateObjectAbove(Tree_Coniferous2, 93, 430);
Tree_Coniferous0075->SetR(-10);
Tree_Coniferous0075->SetClrModulation(0xffedf4c6);
Tree_Coniferous0075->SetPosition(93, 408);
var Tree_Coniferous0079 = CreateObjectAbove(Tree_Coniferous, 36, 446);
Tree_Coniferous0079->SetR(-2);
Tree_Coniferous0079->SetClrModulation(0xffca90cd);
Tree_Coniferous0079->SetPosition(36, 424);
var Tree_Coniferous0083 = CreateObjectAbove(Tree_Coniferous2, 151, 406);
Tree_Coniferous0083->SetR(-3);
Tree_Coniferous0083->SetClrModulation(0xffd8d7e0);
Tree_Coniferous0083->SetPosition(151, 384);
var Tree_Coniferous0087 = CreateObjectAbove(Tree_Coniferous, 159, 407);
Tree_Coniferous0087->SetClrModulation(0xffd1e168);
var Tree_Coniferous0091 = CreateObjectAbove(Tree_Coniferous2, 60, 440);
Tree_Coniferous0091->SetR(-10);
Tree_Coniferous0091->SetClrModulation(0xffd8c49d);
Tree_Coniferous0091->SetPosition(60, 418);
var Tree_Coniferous0095 = CreateObjectAbove(Tree_Coniferous, 355, 313);
Tree_Coniferous0095->SetR(10);
Tree_Coniferous0095->SetPosition(355, 291);
CreateObjectAbove(Tree_Coniferous, 132, 726);
var Tree_Coniferous0103 = CreateObjectAbove(Tree_Coniferous2, 487, 805);
Tree_Coniferous0103->SetR(-30);
Tree_Coniferous0103->SetPosition(487, 786);
var Chest0107 = CreateObjectAbove(Chest, 164, 903);
Chest0107->SetClrModulation(0xd0ffffff);

View File

@ -1,18 +0,0 @@
[DefCore]
id=Tree_SmallConiferous
Version=6,0
Category=C4D_StaticBack
Width=30
Height=55
Offset=-15,-27
Vertices=9
VertexX=0,0,0,0,0,0,0,0,0
VertexY=22,15,10,5,0,-5,-10,-15,-22
VertexCNAT=8,16,16,16,16,16,16,16,4
VertexFriction=50,50,25,25,25,25,50,50,50
Components=Wood=8
Mass=80
StretchGrowth=1
Oversize=1
Float=1
Rotate=1

View File

@ -1,33 +0,0 @@
/*-- Small Coniferous Tree --*/
#include Library_Plant
#include Library_Tree
private func SeedChance() { return 500; }
private func SeedArea() { return 400; }
private func SeedAmount() { return 12; }
func Construction()
{
StartGrowth(5);
inherited(...);
}
private func Initialize()
{
SetProperty("MeshTransformation", Trans_Mul(Trans_Scale(500,500,500), Trans_Rotate(RandomX(0,359),0,1,0)));
}
public func ChopDown()
{
// Remove the bottom vertex
SetVertex(0, VTX_Y, 0, 1);
RemoveVertex(0);
_inherited(...);
}
local Name = "$Name$";
local Touchable = 0;
local BlastIncinerate = 1;
local ContactIncinerate = 3;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View File

@ -0,0 +1,10 @@
/* Coniferous alternate material */
// High up in the skies, coniferous trees look a little different
#appendto Tree_Coniferous
func Construction(...)
{
SetMeshMaterial("Coniferous_AltMat");
return _inherited(...);
}

View File

@ -0,0 +1,33 @@
/* Small Trees */
// Trees stay small (50% growth) but still yield a lot of wood.
#appendto Library_Tree
// Initially placed trees are smaller
func Initialize(...)
{
SetCon(GetCon() / 2);
return _inherited(...);
}
// Stop growth at 50%
func FxIntGrowthTimer(object obj, effect, ...)
{
if (obj->OnFire() || obj->GetCon() >= 50) return FX_Execute_Kill;
return inherited(obj, effect, ...);
}
// Yield 1-2 extra wood
func Split2Components(...)
{
CreateObject(Wood);
if (GetCon() > 25) CreateObject(Wood);
return inherited(...);
}
func GetComponent(comp_id)
{
var result = inherited(comp_id, ...);
if (comp_id == Wood) result += 1 + (GetCon() > 25);
return result;
}

View File

@ -169,7 +169,7 @@ global func GetMaxBreath()
global func StartGrowth(int value /* the value the object grows approx. every second, in tenths of percent */)
{
var effect;
effect = AddEffect("IntGrowth", this, 1, 35, nil, nil, value);
effect = AddEffect("IntGrowth", this, 1, 35, this, nil, value);
effect.Time = Random(35);
return effect;
}