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 000000000..ac0bda346 Binary files /dev/null and b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Graphics.8.png differ diff --git a/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Script.c b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Script.c new file mode 100644 index 000000000..6a2454bde --- /dev/null +++ b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/Script.c @@ -0,0 +1,31 @@ +/*--- Wood Chunk ---*/ + +/* +What rolls down stairs alone or in pairs +Rolls over your neighbor's dog? +What's great for a snack and fits on your back? +It's Log, Log, Log! +*/ + +#include Library_CarryHeavy + +public func GetCarryMode(clonk) { return CARRY_BothHands; } +public func GetCarryPhase() { return 800; } + +protected func Hit() +{ + Sound("WoodHit?"); +} + +public func IsFuel() { return true; } +public func GetFuelAmount() { return 150; } +public func IsChunk() { return true; } +public func IsSawmillProduct() { return true; } + +local Name = "$Name$"; +local Description = "$Description$"; +local Rebuy = true; +local BlastIncinerate = 5; +local ContactIncinerate = 1; +local Touchable = 2; +local Plane = 470; \ No newline at end of file diff --git a/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblDE.txt b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblDE.txt new file mode 100644 index 000000000..ad07a8e9d --- /dev/null +++ b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblDE.txt @@ -0,0 +1,2 @@ +Name=Holz +Description=Geeignet als Bau- oder Brennmaterial. \ No newline at end of file diff --git a/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblUS.txt b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblUS.txt new file mode 100644 index 000000000..3768fd152 --- /dev/null +++ b/planet/Objects.ocd/Items.ocd/Chunks.ocd/Wood.ocd/StringTblUS.txt @@ -0,0 +1,2 @@ +Name=Log +Description=Needed for construction or as fuel. \ No newline at end of file diff --git a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt index f0f3e4d91..9b7315e27 100644 --- a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt +++ b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/DefCore.txt @@ -10,7 +10,7 @@ VertexX=0,0,0,0,0,0,0,0,0 VertexY=30,15,5,2,0,-2,-5,-15,-25 VertexCNAT=8,16,16,16,16,16,16,16,4 VertexFriction=50,50,25,25,25,25,50,50,50 -Components=Wood=4 +Components=Chunk_Wood=3 Mass=100 StretchGrowth=1 Oversize=1 diff --git a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/Script.c b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/Script.c index bde1018e5..783d7f8f3 100644 --- a/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/Script.c +++ b/planet/Objects.ocd/Vegetation.ocd/LargeCaveMushroom.ocd/Script.c @@ -127,6 +127,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/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