Added planks- Get some them from the sawmill.

Reworked quite a lot of production costs to either planks or chunk_wood. Haven't done a thourough search. I expact that soon Chunk_Wood is renamed into Wood anyway, so any errors will solve themselves.
heavy-resources
Clonkonaut 2014-04-03 18:16:57 +02:00
parent 8d1120b9e7
commit 59ee596d35
44 changed files with 94 additions and 81 deletions

View File

@ -0,0 +1,17 @@
[DefCore]
id=Planks
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=Chunk_Wood=1
Rotate=1
Float=1
StretchGrowth=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,24 @@
/*--- Planks ---*/
#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;

View File

@ -0,0 +1,2 @@
Name=Holz
Description=Geeignet als Bau- oder Brennmaterial.

View File

@ -0,0 +1,2 @@
Name=Log
Description=Needed for construction or as fuel.

View File

@ -11,7 +11,7 @@ VertexY=3,-3,-3
VertexFriction=40,40,40 VertexFriction=40,40,40
Value=6 Value=6
Mass=16 Mass=16
Components=Wood=3 Components=Chunk_Wood=1
Rotate=1 Rotate=1
Float=1 Float=1
StretchGrowth=1 StretchGrowth=1

View File

@ -20,7 +20,7 @@ protected func Hit()
public func IsFuel() { return true; } public func IsFuel() { return true; }
public func GetFuelAmount() { return 150; } public func GetFuelAmount() { return 150; }
public func IsChunk() { return true; } public func IsChunk() { return true; }
public func IsSawmillProduct() { return true; } public func IsSawmillIngredient() { return true; }
local Name = "$Name$"; local Name = "$Name$";
local Description = "$Description$"; local Description = "$Description$";

View File

@ -13,7 +13,7 @@ func Incineration()
public func IsFuel() { return true; } public func IsFuel() { return true; }
public func GetFuelAmount() { return 50; } public func GetFuelAmount() { return 50; }
public func IsSawmillProduct() { return true; } //public func IsSawmillProduct() { return true; }
local Collectible = 1; local Collectible = 1;
local Name = "$Name$"; local Name = "$Name$";

View File

@ -11,6 +11,6 @@ VertexY=0,3,-3
VertexFriction=50,50,50 VertexFriction=50,50,50
Value=15 Value=15
Mass=12 Mass=12
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=-6,-6,6,6,0,0
VertexFriction=60,60,60,60,60,60 VertexFriction=60,60,60,60,60,60
Value=12 Value=12
Mass=20 Mass=20
Components=Wood=2;Metal=1; Components=Chunk_Wood=2;Metal=1;
Rotate=1 Rotate=1
Float=1 Float=1

View File

@ -11,6 +11,6 @@ VertexY=3,-6,10,10
VertexFriction=80,60,60 VertexFriction=80,60,60
Value=12 Value=12
Mass=20 Mass=20
Components=PowderKeg=1;Firestone=1;Wood=1; Components=PowderKeg=1;Firestone=1;Planks=1;
Rotate=1 Rotate=1
ColorByOwner=1 ColorByOwner=1

View File

@ -10,7 +10,7 @@ VertexX=-4,-4,5,5
VertexY=-2,5,-2,5 VertexY=-2,5,-2,5
VertexCNAT=5,9,6,10 VertexCNAT=5,9,6,10
VertexFriction=25,25,25,25 VertexFriction=25,25,25,25
Components=Wood=3; Components=Chunk_Wood=3;
Construction=1 Construction=1
Value=6 Value=6
Mass=12 Mass=12

View File

@ -12,5 +12,5 @@ VertexFriction=50,50,50,50
Picture=0,0,64,64 Picture=0,0,64,64
Value=16 Value=16
Mass=30 Mass=30
Components=Wood=1;Coal=2;Firestone=2 Components=Planks=1;Coal=2;Firestone=2
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=0,0
VertexFriction=80,80 VertexFriction=80,80
Value=12 Value=12
Mass=10 Mass=10
Components=Wood=2;Metal=1;Rope=1; Components=Planks=2;Metal=1;Rope=1;
Rotate=1 Rotate=1
Float=2 Float=2

View File

@ -11,6 +11,6 @@ VertexY=1,5,-2,-2
VertexFriction=80,80,80,80 VertexFriction=80,80,80,80
Value=3 Value=3
Mass=15 Mass=15
Components=Wood=1;Rock=1; Components=Chunk_Wood=1;Rock=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=-6,-5,-5,4
VertexFriction=50,100,100,40 VertexFriction=50,100,100,40
Value=10 Value=10
Mass=20 Mass=20
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=4,-3,-3
VertexFriction=100,100,100 VertexFriction=100,100,100
Value=8 Value=8
Mass=10 Mass=10
Components=Wood=2;Rope=2; Components=Chunk_Wood=2;Rope=2;
Rotate=1 Rotate=1
NoStabilize=1 NoStabilize=1

View File

@ -11,6 +11,6 @@ VertexY=4,-3,-3
VertexFriction=100,100,100 VertexFriction=100,100,100
Value=8 Value=8
Mass=10 Mass=10
Components=Wood=2;Rope=1; Components=Chunk_Wood=2;Rope=1;
Rotate=1 Rotate=1
NoStabilize=1 NoStabilize=1

View File

@ -11,5 +11,5 @@ VertexY=-7,9,0
VertexFriction=50,50,50 VertexFriction=50,50,50
Value=10 Value=10
Mass=20 Mass=20
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,5 +11,5 @@ VertexY=0,0,0
VertexFriction=50,50,100 VertexFriction=50,50,100
Value=10 Value=10
Mass=10 Mass=10
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=-10,-10,10,10
VertexFriction=100,100,100,100,100 VertexFriction=100,100,100,100,100
Value=8 Value=8
Mass=10 Mass=10
Components=Wood=3; Components=Chunk_Wood=3;
Rotate=1 Rotate=1
Float=2 Float=2

View File

@ -11,6 +11,6 @@ VertexY=-7,7
VertexFriction=50,50 VertexFriction=50,50
Value=10 Value=10
Mass=20 Mass=20
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,5 +11,5 @@ VertexY=0,0,2,0
VertexFriction=50,50,70 VertexFriction=50,50,70
Value=25 Value=25
Mass=15 Mass=15
Components=Metal=3;Wood=1; Components=Metal=3;Planks=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=-12,13
VertexFriction=100,50 VertexFriction=100,50
Value=12 Value=12
Mass=9 Mass=9
Components=Wood=2;Metal=1; Components=Chunk_Wood=2;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,5 +11,5 @@ VertexY=0,0,2,0
VertexFriction=50,50,70 VertexFriction=50,50,70
Value=18 Value=18
Mass=15 Mass=15
Components=Metal=2;Wood=1; Components=Metal=2;Chunk_Wood=1;
Rotate=1 Rotate=1

View File

@ -11,5 +11,5 @@ VertexY=-4,5,-2,-2
VertexFriction=50,50 VertexFriction=50,50
Value=10 Value=10
Mass=20 Mass=20
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,6 +11,6 @@ VertexY=-7,7
VertexFriction=50,50 VertexFriction=50,50
Value=10 Value=10
Mass=20 Mass=20
Components=Wood=1;Metal=1; Components=Chunk_Wood=1;Metal=1;
Rotate=1 Rotate=1

View File

@ -11,7 +11,7 @@ VertexY=-13,-15,-14,24,24,24
VertexFriction=50,50,50,100,100,100 VertexFriction=50,50,50,100,100,100
Value=200 Value=200
Mass=4500 Mass=4500
Components=Wood=3;Metal=2;Loam=2 Components=Planks=3;Metal=2;Loam=2
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-17,-25,-14,25,25,25
VertexFriction=50,50,50,100,100,100 VertexFriction=50,50,50,100,100,100
Value=200 Value=200
Mass=4500 Mass=4500
Components=Wood=3;Metal=3 Components=Chunk_Wood=3;Metal=3
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -10,7 +10,7 @@ VertexX=-8,-8,8,8
VertexY=-2,11,-2,11 VertexY=-2,11,-2,11
VertexCNAT=5,9,6,10 VertexCNAT=5,9,6,10
VertexFriction=50,50,100,100 VertexFriction=50,50,100,100
Components=Wood=3; Components=Chunk_Wood=3;
Construction=1 Construction=1
Value=15 Value=15
Mass=10 Mass=10

View File

@ -11,7 +11,7 @@ VertexY=-27,-27,32,32,32
VertexFriction=50,50,100,100,100 VertexFriction=50,50,100,100,100
Value=50 Value=50
Mass=1500 Mass=1500
Components=Wood=3;Metal=1 Components=Planks=3;Metal=1
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=41,-41, 41,41,41,11,2
VertexFriction=100,10,100,100,100,10,10 VertexFriction=100,10,100,100,100,10,10
Value=200 Value=200
Mass=4500 Mass=4500
Components=Wood=3;Metal=3 Components=Planks=3;Metal=3
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-17,-25,-14,25,25,25
VertexFriction=50,50,50,100,100,100 VertexFriction=50,50,50,100,100,100
Value=200 Value=200
Mass=4500 Mass=4500
Components=Wood=3;Chunk_Rock=1;Metal=1 Components=Planks=3;Chunk_Rock=1;Metal=1
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-4,-3,14,14
VertexFriction=50,50,100,100 VertexFriction=50,50,100,100
Value=100 Value=100
Mass=1000 Mass=1000
Components=Wood=3;Metal=1;Chunk_Rock=1 Components=Planks=3;Metal=1;Chunk_Rock=1
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-3,15,15
VertexFriction=50,100,100 VertexFriction=50,100,100
Value=40 Value=40
Mass=400 Mass=400
Components=Wood=1;Metal=3; Components=Planks=1;Metal=3;
Picture=3360,0,112,128,0,0 Picture=3360,0,112,128,0,0
Exclusive=1 Exclusive=1
Construction=1 Construction=1

View File

@ -2,7 +2,7 @@
Sawmill Sawmill
Authors: Ringwaul, Clonkonaut Authors: Ringwaul, Clonkonaut
Cuts trees or other objects into wood. Accepts only objects purely made from wood. Cuts trees or other objects into planks. Accepts only objects purely made from planks.
--*/ --*/
#include Library_Structure #include Library_Structure
@ -19,31 +19,14 @@ public func Construction(object creator)
public func Initialize() public func Initialize()
{ {
this.SpinAnimation = PlayAnimation("work", 10, Anim_Const(0), Anim_Const(1000)); this.SpinAnimation = PlayAnimation("work", 10, Anim_Const(0), Anim_Const(1000));
AddTimer("CollectionZone", 1);
return _inherited(...); return _inherited(...);
} }
/*-- Interaction --*/ /*-- Interaction --*/
// Sawmill can't be accessed as a container.
public func IsContainer() { return false; }
// Sawmill can't be interacted with.
public func IsInteractable() { return false; }
// Automatically search for trees in front of sawmill
// Temporary solution?
protected func FindTrees()
{
var tree = FindObject(Find_AtPoint(), Find_Func("IsTree"), Find_Not(Find_Func("IsStanding")), Find_Func("GetComponent", Wood));
if (!tree) return;
Saw(tree);
}
private func CheckWoodObject(object target) private func CheckWoodObject(object target)
{ {
if (target->GetComponent(nil, 0) != Wood) return false; if (target->GetComponent(nil, 0) != Planks) return false;
if (target->GetComponent(nil, 1)) return false; if (target->GetComponent(nil, 1)) return false;
return true; return true;
} }
@ -52,20 +35,11 @@ private func CheckWoodObject(object target)
private func IgnoreKnowledge() { return true; } private func IgnoreKnowledge() { return true; }
public func Saw(object target)
{
target->Enter(this);
var output = target->GetComponent(Wood);
target->Split2Components();
AddToQueue(Wood, output);
return true;
}
private func IsProduct(id product_id) private func IsProduct(id product_id)
{ {
return product_id->~IsSawmillProduct(); return product_id->~IsSawmillProduct();
} }
private func ProductionTime(id toProduce) { return 100; } private func ProductionTime(id toProduce) { return 400; }
private func PowerNeed() { return 50; } private func PowerNeed() { return 50; }
public func NeedRawMaterial(id rawmat_id) public func NeedRawMaterial(id rawmat_id)
@ -108,23 +82,17 @@ public func OnProductionFinish(id product)
} }
} }
// Timer, check for objects to collect in the designated collection zone func Collection()
func CollectionZone()
{
if (GetCon() < 100) return;
// Only take one tree at a time
if (!(FrameCounter() % 35))
if (GetLength(queue) == 0)
FindTrees();
}
protected func Collection()
{ {
Sound("Clonk"); Sound("Clonk");
return _inherited(...); return _inherited(...);
} }
func Collection2()
{
if (!GetQueue()[0]) AddToQueue(Planks, 1);
}
public func FxSawingTimer(object target, proplist effect, int time) public func FxSawingTimer(object target, proplist effect, int time)
{ {
var dir = GetCalcDir(); var dir = GetCalcDir();
@ -145,8 +113,8 @@ public func OnProductEjection(object product)
protected func RejectCollect(id id_def, object collect) protected func RejectCollect(id id_def, object collect)
{ {
// Don't collect wood // Don't collect planks
if (id_def == Wood) if (id_def == Planks)
return true; return true;
if (collect->~IsSawmillIngredient() || CheckWoodObject(collect)) if (collect->~IsSawmillIngredient() || CheckWoodObject(collect))
return false; return false;

View File

@ -11,7 +11,7 @@ VertexY=53,53,53, 3, 3,-17
VertexFriction=100,100,100,50,50,50 VertexFriction=100,100,100,50,50,50
Value=200 Value=200
Mass=4500 Mass=4500
Components=Wood=12;Metal=6 Components=Planks=12;Metal=6
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-10,-20,47,47,-20
VertexFriction=50,50,100,100,50 VertexFriction=50,50,100,100,50
Value=150 Value=150
Mass=2500 Mass=2500
Components=Chunk_Rock=1;Wood=2; Components=Chunk_Rock=1;Planks=2;
Exclusive=1 Exclusive=1
Construction=1 Construction=1
ContainBlast=1 ContainBlast=1

View File

@ -11,7 +11,7 @@ VertexY=-7,-6,19,19,4,19,-4,19
VertexFriction=50,50,100,100 VertexFriction=50,50,100,100
Value=200 Value=200
Mass=4000 Mass=4000
Components=Wood=5;Chunk_Rock=1 Components=Chunk_Wood=5;Chunk_Rock=1
Entrance=-12,0,13,20 Entrance=-12,0,13,20
Exclusive=1 Exclusive=1
Construction=1 Construction=1

View File

@ -13,7 +13,7 @@ VertexFriction=50,50,50,15,5,5,15,5,5
Value=60 Value=60
Mass=300 Mass=300
ColorByOwner=1 ColorByOwner=1
Components=Metal=6;Wood=4; Components=Metal=6;Planks=4;
Rotate=1 Rotate=1
Entrance=-12,-12,24,24 Entrance=-12,-12,24,24
Exclusive=1 Exclusive=1

View File

@ -12,7 +12,7 @@ VertexCNAT=0,4,5,6,1,2,1,2,9,10,8
VertexFriction=0,20,20,20,20,20,20,20,80,80,80 VertexFriction=0,20,20,20,20,20,20,20,80,80,80
Value=50 Value=50
Mass=5000 Mass=5000
Components=Metal=4;Wood=4;Rope=2; Components=Metal=4;Planks=4;Rope=2;
Float=-27; Float=-27;
SolidMask=0,0,36,4,11,49 SolidMask=0,0,36,4,11,49
Picture=128,0,128,128,0,0 Picture=128,0,128,128,0,0

View File

@ -13,7 +13,7 @@ VertexCNAT=5,6,9,10
VertexFriction=80,80,10,10 VertexFriction=80,80,10,10
Value=50 Value=50
Mass=125 Mass=125
Components=Metal=4;Wood=2; Components=Metal=4;Planks=2;
GrabPutGet=C4D_GrabGet|C4D_GrabPut GrabPutGet=C4D_GrabGet|C4D_GrabPut
Rotate=30 Rotate=30
UprightAttach=8 UprightAttach=8

View File

@ -13,7 +13,7 @@ VertexCNAT=5,6,9,10
VertexFriction=80,80,10,10 VertexFriction=80,80,10,10
Value=50 Value=50
Mass=125 Mass=125
Components=Metal=1;Wood=6; Components=Metal=1;Chunk_Wood=6;
Entrance=-12,-12,24,24 Entrance=-12,-12,24,24
RotatedEntrance=1 RotatedEntrance=1
GrabPutGet=C4D_GrabGet|C4D_GrabPut GrabPutGet=C4D_GrabGet|C4D_GrabPut

View File

@ -13,7 +13,7 @@ VertexCNAT=5,6,9,10
VertexFriction=80,80,10,10 VertexFriction=80,80,10,10
Value=20 Value=20
Mass=75 Mass=75
Components=Metal=2;Wood=1; Components=Metal=2;Chunk_Wood=1;
Collection=-12,-8,24,10 Collection=-12,-8,24,10
GrabPutGet=C4D_GrabGet|C4D_GrabPut GrabPutGet=C4D_GrabGet|C4D_GrabPut
Rotate=30 Rotate=30