Skip to content

機械を自作する方法について

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"}
]