8. 採掘と加工を頼む
工房の様子が分かったらゴーレムへ最初の仕事を任せましょう。空いているかを確かめてから鉱石の採掘を頼みます。この章の術式は実際の工房で仕事を始めます。
ゴーレムを選ぶ
Workshop.Golems[0]は所有する最初のゴーレムです。番号は0から始まるため、最初が0、次が1です。ここでは最初の1体を使います。
golem.IsIdleはそのゴーレムが空いているかを調べます。採掘中や充電中ならfalseです。こうした状態を読む名前を「プロパティ」と呼びます。
空いているときだけ注文する
public class Program : ArcaneProgram
{
public void OnStart()
{
var golem = Workshop.Golems[0];
if (golem.IsIdle)
{
var result = golem.Mine(Mineral.Ore, 20);
if (result.Ok)
{
Workshop.Log.Write("Mining accepted.");
}
else
{
Workshop.Log.Write("Mining was not accepted.");
}
}
}
}OnStartの中は実行を始めたときに一度動きます。術式の順番を追ってみましょう。
- 最初のゴーレムをgolemに入れます。
- IsIdleを調べます。falseならifの中へ入りません。
- 空いていれば、Mineで鉱石20の採掘を注文します。
- 受付結果をresultに入れ、Okで受け付けられたかを調べます。
Mine(Mineral.Ore, 20)の丸括弧の中は操作へ渡す値です。この値を「引数」と呼びます。ここでは採掘する種類と数量をカンマで区切っています。Mineのように呼び出して処理を行うものを「メソッド」と呼びます。Log.Writeもメソッドです。
Okがtrueでも採掘が完成したわけではありません。工房の表示で進み具合を確認してください。空いていても容量などの理由で断られることがあるため、受付結果も調べます。
加工を注文するには
Workshop.Production[RecipeKind.Iron].Start(5)で鉄5の加工を注文できます。Startに渡す数は作りたい製品の数量です。鉄1には鉱石2を使うので鉄5には使用可能な鉱石10が必要です。
Mineと同じように返ってきた結果のOkを調べます。設備が使用中なら受け付けられません。レシピと設備は設備と研究の解放で確認できます。
採掘の例を次の術式へ置き換えると、鉄の加工を一度注文できます。使える鉱石が10未満なら注文しません。
public class Program : ArcaneProgram
{
public void OnStart()
{
if (Workshop.Resources[ResourceKind.Ore].Available >= 10)
{
var result = Workshop.Production[RecipeKind.Iron].Start(5);
if (result.Ok)
{
Workshop.Log.Write("Crafting accepted.");
}
else
{
Workshop.Log.Write("Crafting was not accepted.");
}
}
}
}練習問題
最初のゴーレムが空いているときだけ鉱石10を採掘するように例を変えてください。
解答例を表示する解答例を閉じる
golem.Mine(Mineral.Ore, 20)の20を10に変えます。IsIdleを調べるifは残します。空いていない場合には数量に関係なく注文しません。
