forked from Mirrors/openclonk
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 colorfullights3
parent
41fd8c38b0
commit
44a396497c
|
@ -0,0 +1,4 @@
|
|||
[DefCore]
|
||||
id=AltMat_Coniferous
|
||||
Version=7,0
|
||||
Category=1
|
|
@ -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 |
|
@ -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);
|
||||
|
|
|
@ -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
|
Binary file not shown.
|
@ -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 |
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
Name=Nadelbaum
|
|
@ -1 +0,0 @@
|
|||
Name=Cone tree
|
|
@ -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(...);
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue