-
Notifications
You must be signed in to change notification settings - Fork 1
機械を自作する方法について
SKN edited this page Dec 1, 2017
·
3 revisions
現バージョンでは機械データを
assets/mahcine/
フォルダに配置しています。
例えばガスヒーターの画像を置き換えたい場合は
assets/machine/heater/image/gasHeater.png"
の画像を編集してください。
機械は.luaファイルによって制御されるため、基本的なサイズなどのデータも.luaファイル内に記述されます。
例えば、assets/mahcine/signal/signal.lua
ファイルの中身は以下のようになっています。
machine = {
name = "Light",
size = {x = 1, y = 1},
group = "シグナル",
image = "image/light.png",
price = 50
}
function init()
Input = machine.setNodeAt(0.25, 0.5):setDeltaVector(-0.5, 0.0)
end
function updateSystem()
end
function draw()
image("image/light.png"):draw()
if Input:getSignal() == Signal.Hi then
image("image/light-as.png"):draw()
end
end
Electric Revolutionは最初のmachineより基本的なデータを読み込み、init()を外部から実行します。
そして、メインループでupdateSystem()→draw()を繰り返し読み込みます。
machine.setNodeAt()のような用意された関数群を API と呼びます。
新しく機械を追加し、プログラムを記述する際はこのAPIが重要になります。
Electric Revolutionの独自APIの詳細についてはこちらを参照してください。
新しい機械を追加し、読み込ませるには
assets/mahcine/machine.json
ファイルに新しい機械のスクリプト(.luaファイルのこと)へのパスを追加する必要があります。
machine.jsonファイルを開くと以下のようになっているはずなので、最後の行に追加すれば問題ありません。
[
{"mainLua":"conveyor/normalRoller.lua"},
{"mainLua":"conveyor/allAroundRoller.lua"},
{"mainLua":"signal/signal.lua"},
{"mainLua":"signal/switch.lua"},
{"mainLua":"signal/light.lua"},
{"mainLua":"signal/and.lua" },
{"mainLua":"signal/nand.lua" },
{"mainLua":"trader/exporter-allGas.lua"},
{"mainLua":"trader/exporter-allFluid.lua"},
{"mainLua":"trader/exporter-allSolid.lua"},
{"mainLua":"trader/importer-apple.lua"},
{"mainLua":"trader/importer-sand.lua"},
{"mainLua":"trader/importer-cookie.lua"},
{"mainLua":"trader/importer-coal.lua"},
{"mainLua":"trader/importer-fish.lua"},
{"mainLua":"trader/importer-fuelOil.lua"},
{"mainLua":"trader/importer-water.lua"},
{"mainLua":"trader/importer-steam.lua"},
{"mainLua":"trader/importer-naturalGas.lua"},
{"mainLua":"heater/gasHeater.lua"},
{"mainLua":"heater/oilHeater.lua"},
{"mainLua":"steam/boiler.lua"},
{"mainLua":"steam/turbine.lua"}
]