このページは整備中です.有識者の方は編集にご協力いただけると幸いです.

[編集]はじめに

Simutrans-Squirrel-APIリファレンス

Simutransでは,Squirrel(すくわーる)というスクリプト言語を用いてAIプレイヤー,シナリオ,ツールを記述することができます.

Squirrelの言語仕様については以下が参考になります.
Squirrel本家
Squirrel 3.0 Reference Manual (Squirrel本家)
Squirrel 2.1 リファレンスマニュアル

[編集]AIプレイヤー

AI interface

[編集]シナリオ

設定ファイル/シナリオを参照してください.

[編集]ツール

スクリプトツールには,以下の2つのファイルが必要です.

  • tool.nut ... Squirrelコード本体
  • description.tab ... 設定ファイル(plain text)

ツールの名前を「my_tool」とするとき,2つのファイルはともに,

pak-something/tool/mytool/

に配置します.

toolディレクトリにはpakファイルは配置できません.pakファイルを配置できるのは

pak-something/

ディレクトリ直下のみです.

[編集]description.tab

description.tabは,ツールのタイトルやタイプなどを定義するtabファイルです.

titleName of tool to be shown in tool selection dialog
typeone_click or two_click
tooltipTooltip for the icon in the toolbar
restartSet to 1 if the virtual machine has to be restarted after each call to the work functions.
menuParameter that can be used to load tools with menuconf.tab
iconName of cursor object (loaded from some pak-file), used images: 0 = cursor, 1 = icon, 2 = marker image

description.tabの例

title=my_tool
type=one_click
tooltip=A scripting tool for testing
restart=0
menu=my-tools
icon=one_click_test

この場合,menuconf.tabで

toolbar[X][Y]=scripts(my-tools)

(X,Yは適当な数字)のように,menuパラメータの値を指定することでツールバーにスクリプトツールを表示させることができます.スクリプトツールをメニューバーに出すにはiconを正しく指定することが必要です.

icon=one_click_test

となっているので,pak-something/直下のcursor.one_click_test.pakがアイコン・カーソル画像のpakとして使われます.

[編集]tool.nut

Tool interface
Tool only functions

1クリックツールの場合は

  • bool init (player_x pl) ... ツール起動時に呼ばれる関数
  • bool exit (player_x pl) ... ツール終了時に呼ばれる関数
  • string work (player_x pl, coord3d pos) ... クリックされたときに呼ばれる関数

2クリックツールの場合は

  • bool init (player_x pl)
  • bool exit (player_x pl)
  • string do_work (player_x pl, coord3d start, coord3d end)
  • void mark_tiles (player_x pl, coord3d start, coord3d end)
  • void is_valid_pos (player_x pl, coord3d pos, coord3d start)

を実装します.


 
Last-modified: 2020-09-11 (金) 17:18:41