From 25d85e8fb6eb28c0e1622b4f79bb02001d537f12 Mon Sep 17 00:00:00 2001 From: Clonkonaut Date: Thu, 3 Apr 2014 17:36:15 +0200 Subject: [PATCH] Added Chunk_Wood. Reworked all trees to split into Chunk_Wood. --- .../Items.ocd/Chunks.ocd/Wood.ocd/DefCore.txt | 17 ++++++++++ .../Chunks.ocd/Wood.ocd/Graphics.8.png | Bin 0 -> 3190 bytes .../Items.ocd/Chunks.ocd/Wood.ocd/Script.c | 31 ++++++++++++++++++ .../Chunks.ocd/Wood.ocd/StringTblDE.txt | 2 ++ .../Chunks.ocd/Wood.ocd/StringTblUS.txt | 2 ++ .../LargeCaveMushroom.ocd/DefCore.txt | 2 +- .../LargeCaveMushroom.ocd/Script.c | 11 +++++++ .../Trees.ocd/Coconut.ocd/DefCore.txt | 2 +- .../Trees.ocd/Coconut.ocd/Script.c | 11 +++++++ .../ConiferousBurned.ocd/DefCore.txt | 2 +- .../ConiferousBurned.ocd/Script.c | 29 +++++++++++++++- .../Trees.ocd/Coniferous.ocd/DefCore.txt | 2 +- .../Trees.ocd/Coniferous.ocd/Script.c | 11 +++++++ .../Vegetation.ocd/Trunk.ocd/DefCore.txt | 2 +- 14 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/DefCore.txt create mode 100644 planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Graphics.8.png create mode 100644 planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Script.c create mode 100644 planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblDE.txt create mode 100644 planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblUS.txt diff --git a/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/DefCore.txt b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/DefCore.txt new file mode 100644 index 000000000..9548f01a2 --- /dev/null +++ b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/DefCore.txt @@ -0,0 +1,17 @@ +[DefCore] +id=Chunk_Wood +Version=4,10,0,0 +Category=C4D_Object +Width=12 +Height=12 +Offset=-6,-6 +Vertices=3 +VertexX=0,4,-4 +VertexY=3,-3,-3 +VertexFriction=40,40,40 +Value=6 +Mass=16 +Components=Wood=3 +Rotate=1 +Float=1 +StretchGrowth=1 \ No newline at end of file diff --git a/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Graphics.8.png b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Graphics.8.png new file mode 100644 index 0000000000000000000000000000000000000000..ac0bda3462451ee30b148bb8e7c4cb7ae7756b84 GIT binary patch literal 3190 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 + } + RemoveObject(); +} + func Damage() { _inherited(); diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt index d69dfe827..d46b4a67e 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/DefCore.txt @@ -10,7 +10,7 @@ VertexX=0,0,0,0,0 VertexY=40,20,0,-20,-40 VertexCNAT=8,16,16,16,4 VertexFriction=50,25,25,25,50 -Components=Wood=4 +Components=Chunk_Wood=3 Mass=110 StretchGrowth=1 Oversize=1 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/Script.c b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/Script.c index cd3795626..2451b4626 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/Script.c +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coconut.ocd/Script.c @@ -59,6 +59,17 @@ public func ChopDown() _inherited(...); } +func SplitDown() +{ + for (var i = 0 ; i < GetComponent(Chunk_Wood) ; i++) + { + var x = Sin(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); // Chunk_Wood is 12 in size, 15 seems about good + var y = Cos(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); + CreateObject(Chunk_Wood, x,y)->SetR(GetR()); + } + RemoveObject(); +} + local Name = "$Name$"; local Touchable = 0; local BlastIncinerate = 1; diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt index 08f03c784..0f0338abf 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/DefCore.txt @@ -10,7 +10,7 @@ VertexX=0,0,0,0,0,0,0,0,0 VertexY=45,30,20,10,0,-10,-20,-30,-45 VertexCNAT=8,16,16,16,16,16,16,16,4 VertexFriction=50,50,25,25,25,25,50,50,50 -Components=Wood=5 +Components=Chunk_Wood=3 Mass=120 StretchGrowth=1 Oversize=1 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/Script.c b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/Script.c index 3b9fee773..4e19c00a9 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/Script.c +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/ConiferousBurned.ocd/Script.c @@ -64,7 +64,6 @@ protected func Damage() _inherited(...); } - public func ChopDown() { // Use Special Vertex Mode 1 (see documentation) so the removed vertex won't come back when rotating the tree. @@ -115,6 +114,34 @@ func BurstIntoAshes() RemoveObject(); } +/* Splitting */ + +// Copied from the plant library + +local split; + +func Toughness() +{ + return 4; +} + +func Split() +{ + split++; + if (split > Toughness()) Split(); +} + +func SplitDown() +{ + for (var i = 0 ; i < GetComponent(Chunk_Wood) ; i++) + { + var x = Sin(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); // Chunk_Wood is 12 in size, 15 seems about good + var y = Cos(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); + CreateObject(Chunk_Wood, x,y)->SetR(GetR()); + } + RemoveObject(); +} + local Name = "$Name$"; local Touchable = 0; local BlastIncinerate = 1; diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt index 201f2d501..9b87410ce 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/DefCore.txt @@ -10,7 +10,7 @@ VertexX=0,0,0,0,0,0,0,0,0 VertexY=45,30,20,10,0,-10,-20,-30,-45 VertexCNAT=8,16,16,16,16,16,16,16,4 VertexFriction=50,50,25,25,25,25,50,50,50 -Components=Wood=5 +Components=Chunk_Wood=4 Mass=150 StretchGrowth=1 Oversize=1 diff --git a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/Script.c b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/Script.c index f704bf47d..88e7ea7bb 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/Script.c +++ b/planet/Objects.ocd/Vegetation.ocd/Trees.ocd/Coniferous.ocd/Script.c @@ -38,6 +38,17 @@ public func ChopDown() _inherited(...); } +func SplitDown() +{ + for (var i = 0 ; i < GetComponent(Chunk_Wood) ; i++) + { + var x = Sin(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); // Chunk_Wood is 12 in size, 15 seems about good + var y = Cos(GetR(), 15 * ( i - GetComponent(Chunk_Wood,nil,nil, GetID())/2 )); + CreateObject(Chunk_Wood, x,y)->SetR(GetR()); + } + RemoveObject(); +} + func Damage() { _inherited(); diff --git a/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt index 319bd59c3..2f361ab04 100644 --- a/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/Trunk.ocd/DefCore.txt @@ -14,4 +14,4 @@ StretchGrowth=1 Oversize=1 Float=1 Rotate=1 -Components=Wood=3 +Components=Chunk_Wood=2 \ No newline at end of file