mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-26 15:06:42 +01:00
Added documentation for train station peripherals and train schedules
- Added in depth documentation for working with train stations and train schedules in Lua - Fixed small formatting issues in Lua-Rotation-Speed-Controller.md and Lua-Sequenced-Gearshift.md
This commit is contained in:
parent
7f3ca1cfa0
commit
952941e5fc
4 changed files with 381 additions and 10 deletions
|
@ -1,5 +1,5 @@
|
||||||
| Method | Description |
|
| Method | Description |
|
||||||
|:-----------------------------------------------:|----------------------------------------|
|
|--------------------------------------------------|----------------------------------------|
|
||||||
| [`setTargetSpeed(speed)`](#setTargetSpeedspeed) | Sets the target rotation speed |
|
| [`setTargetSpeed(speed)`](#setTargetSpeedspeed) | Sets the target rotation speed |
|
||||||
| [`getTargetSpeed()`](#getTargetSpeed) | Gets the current target rotation speed |
|
| [`getTargetSpeed()`](#getTargetSpeed) | Gets the current target rotation speed |
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
| Method | Description |
|
| Method | Description |
|
||||||
|------------------------------------------------------|--------------------------------------------------------------|
|
|--------------------------------------------------------|--------------------------------------------------------------|
|
||||||
| [`rotate(angle, [modifier])`](#rotateangle-modifier) | Rotates shaft by a set angle |
|
| [`rotate(angle, [modifier])`](#rotateangle-modifier) | Rotates shaft by a set angle |
|
||||||
| [`move(distance, [modifier])`](#moveangle-modifier) | Rotates shaft to move Piston/Pulley/Gantry by a set distance |
|
| [`move(distance, [modifier])`](#movedistance-modifier) | Rotates shaft to move Piston/Pulley/Gantry by a set distance |
|
||||||
| [`isRunning()`](#isRunning) | Checks if the gearshift is spinning |
|
| [`isRunning()`](#isRunning) | Checks if the gearshift is spinning |
|
||||||
|
|
||||||
---
|
---
|
||||||
### `rotate(angle, [modifier])`
|
### `rotate(angle, [modifier])`
|
||||||
|
|
||||||
Rotates connected components by a set angle.
|
Rotates connected components by a set angle.
|
||||||
|
|
||||||
**Parameters**
|
**Parameters**
|
||||||
|
|
193
wiki/Lua-Train-Schedule.md
Normal file
193
wiki/Lua-Train-Schedule.md
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
Train schedules are represented by a table in Lua. The table contains a list of entries where each entry has a single instruction and multiple conditions. Each instruction and condition has a `data` table that stores specific data about the instruction or condition.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
schedule = {
|
||||||
|
cyclic = true, -- Does the schedule repeat itself after the end has been reached?
|
||||||
|
entries = { -- List of entries, each entry contains a single instruction and multiple conditions.
|
||||||
|
{
|
||||||
|
instruction = {
|
||||||
|
id = "create:destination", -- The different instructions are described below.
|
||||||
|
data = { -- Data that is stored about the instruction. Different for each instruction type.
|
||||||
|
text = "Station 1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
conditions = { -- List of lists of conditions. The outer list is the "OR" list
|
||||||
|
{ -- and the inner lists are "AND" lists.
|
||||||
|
{
|
||||||
|
id = "create:delay", -- The different conditions are described below.
|
||||||
|
data = { -- Data that is stored about the condition. Different for each condition type.
|
||||||
|
value = 5,
|
||||||
|
time_unit = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id = "create:powered",
|
||||||
|
data = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
id = "create:time_of_day",
|
||||||
|
data = {
|
||||||
|
rotation = 0,
|
||||||
|
hour = 14,
|
||||||
|
minute = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
---
|
||||||
|
## Instructions
|
||||||
|
| ID | Description |
|
||||||
|
|----------------------------------------------|---------------------------------|
|
||||||
|
| [`"create:destination"`](#createdestination) | Move to a certain train station |
|
||||||
|
| [`"create:rename"`](#createrename) | Change the schedule title |
|
||||||
|
| [`"create:throttle"`](#createthrottle) | Change the train's throttle |
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:destination"`
|
||||||
|
Moves the train to the chosen train station. This instruction must have at least one condition.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _text:_ `string` The name of the station to travel to.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:rename"`
|
||||||
|
Renames the schedule. This name shows up on display link targets. This instruction cannot have conditions.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _text:_ `string` The name to rename the schedule to.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:throttle"`
|
||||||
|
Changes the throttle of the train. This instruction cannot have conditions.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _value:_ `number` The throttle to set the train to. Must be an integer with in the range of [5..100].
|
||||||
|
|
||||||
|
---
|
||||||
|
## Conditions
|
||||||
|
Conditions are stored in a list of lists of conditions. The inner lists contain conditions that get `AND`'d together. They must all be met for that group to be true. The outer list contains the `AND`'d groups of conditions that get `OR`'d together. Only one of the groups needs to be true for the schedule to move onto the next instruction.
|
||||||
|
|
||||||
|
| ID | Description |
|
||||||
|
|-----------------------------------------------------|-----------------------------------------------------|
|
||||||
|
| [`"create:delay"`](#createdelay) | Wait for a certain delay |
|
||||||
|
| [`"create:time_of_day"`](#createtimeofday) | Wait for a specific time of day |
|
||||||
|
| [`"create:fluid_threshold"`](#createfluidthreshold) | Wait for a certain amount of fluid to be on board |
|
||||||
|
| [`"create:item_threshold"`](#createitemthreshold) | Wait for a certain amount of items to be on board |
|
||||||
|
| [`"create:redstone_link"`](#createredstonelink) | Wait for a redstone link to be powered |
|
||||||
|
| [`"create:player_count"`](#createplayercount) | Wait for a certain amount of players to be on board |
|
||||||
|
| [`"create:idle"`](#createidle) | Wait for cargo loading inactivity |
|
||||||
|
| [`"create:unloaded"`](#createunloaded) | Wait for the current chunk to be unloaded |
|
||||||
|
| [`"create:powered"`](#createpowered) | Wait for the station to be powered |
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:delay"`
|
||||||
|
Wait for a set delay. Can be measured in ticks, seconds or minutes.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _value:_ `number` The amount of time to wait for.
|
||||||
|
- _time_unit:_ `number` The unit of time. 0 for ticks, 1 for seconds and 2 for minutes.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:time_of_day"`
|
||||||
|
Wait for a time of day, then repeat at a specified interval.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _hour:_ `number` The hour of the day to wait for in a 24-hour format. Must be an integer within the range of [0..23].
|
||||||
|
- _minute:_ `number` The minute of the hour to wait for. Must be an integer within the range of [0..59].
|
||||||
|
- _rotation:_ `number` The interval to repeat at after the time of day has been met. Check the rotation table below for valid values. Must be an integer within the range of [0..9].
|
||||||
|
|
||||||
|
**Rotation**
|
||||||
|
|
||||||
|
| Rotation | Time Interval |
|
||||||
|
|----------|------------------|
|
||||||
|
| 0 | Every Day |
|
||||||
|
| 1 | Every 12 hours |
|
||||||
|
| 2 | Every 6 hours |
|
||||||
|
| 3 | Every 4 hours |
|
||||||
|
| 4 | Every 3 hours |
|
||||||
|
| 5 | Every 2 hours |
|
||||||
|
| 6 | Every hour |
|
||||||
|
| 7 | Every 45 minutes |
|
||||||
|
| 8 | Every 30 minutes |
|
||||||
|
| 9 | Every 15 minutes |
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:fluid_threshold"`
|
||||||
|
Wait for a certain amount of a specific fluid to be loaded onto the train.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _bucket:_ `table` The bucket item of the fluid.
|
||||||
|
- _threshold:_ `number` The threshold in number of buckets of fluid. Must be a positive integer.
|
||||||
|
- _operator:_ `number` Whether the condition should wait for the train to be loaded above the threshold, below the threshold or exactly at the threshold. 0 for greater than, 1 for less than, 2 for equal to.
|
||||||
|
- _measure:_ `number` The unit to measure the fluid in. This condition supports buckets as the only unit. Set to 0.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [Items](#items) How items are represented in Lua
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:item_threshold"`
|
||||||
|
Wait for a certain amount of a specific item to be loaded onto the train.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _item:_ `table` The item.
|
||||||
|
- _threshold:_ `number` The threshold of items. Must be a positive integer.
|
||||||
|
- _operator:_ `number` Whether the condition should wait for the train to be loaded above the threshold, below the threshold or exactly at the threshold. 0 for greater than, 1 for less than, 2 for equal to.
|
||||||
|
- _measure:_ `number` The unit to measure the items in. 0 for items. 1 for stacks of items.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [Items](#items) How items are represented in Lua
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:redstone_link"`
|
||||||
|
Wait for a redstone link to be powered.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _frequency:_ `{ table... }` A list of the two items making up the redstone link frequency.
|
||||||
|
- _inverted:_ `number` Whether the redstone link should be powered or not to meet the condition. 0 for powered. 1 for not powered.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [Items](#items) How items are represented in Lua
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:player_count"`
|
||||||
|
Wait for a certain amount of players to be seated on the train.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _count:_ `number` The number of players to be seated on the train. Must be a positive integer.
|
||||||
|
- _exact:_ `number` Whether the seated player count has to be exact to meet the condition. 0 for the exact amount of players seated, 1 for a greater than or equal amount of seated players.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:idle"`
|
||||||
|
Wait for a period of inactivity in loading or unloading the train. Can be measured in ticks, seconds or minutes.
|
||||||
|
|
||||||
|
**Data**
|
||||||
|
- _value:_ `number` The amount of idle time to meet the condition. Must be a positive integer.
|
||||||
|
- _time_unit:_ `number` The unit of time. 0 for ticks, 1 for seconds and 2 for minutes.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:unloaded"`
|
||||||
|
Wait for the chunk the train is in to be unloaded.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `"create:powered"`
|
||||||
|
Wait for the station to be powered with a redstone signal.
|
||||||
|
|
||||||
|
---
|
||||||
|
## Items
|
||||||
|
In Lua, items are represented with an ID and a count.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
item = {
|
||||||
|
id = "minecraft:stone",
|
||||||
|
count = 1,
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- _id:_ `string` The ID of the item.
|
||||||
|
- _count:_ `number` The amount of items in the stack. For the purposes of working with train schedules the count should always be 1. Must be an integer.
|
179
wiki/Lua-Train-Station.md
Normal file
179
wiki/Lua-Train-Station.md
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
| Method | Description |
|
||||||
|
|---------------------------------------------------------------|----------------------------------------------------|
|
||||||
|
| [`assemble()`](#assemble) | Assembles a new train at the station |
|
||||||
|
| [`disassemble()`](#disassemble) | Disassembles the currently present train |
|
||||||
|
| [`setAssemblyMode(assemblyMode)`](#setAssemblyModeassemblyMode) | Sets the station's assembly mode |
|
||||||
|
| [`isInAssemblyMode()`](#isInAssemblyMode) | Whether the station is in assembly mode |
|
||||||
|
| [`getStationName()`](#getStationName) | Gets the station's current name |
|
||||||
|
| [`setStationName(name)`](#setStationNamename) | Sets the station's name |
|
||||||
|
| [`isTrainPresent()`](#isTrainPresent) | Whether a train is present at the station |
|
||||||
|
| [`isTrainImminent()`](#isTrainImminent) | Whether a train is imminent to the station |
|
||||||
|
| [`isTrainEnroute()`](#isTrainEnroute) | Whether a train is enroute to the station |
|
||||||
|
| [`getTrainName()`](#getTrainName) | Gets the currently present train's name |
|
||||||
|
| [`setTrainName(name)`](#setTrainNamename) | Sets the currently present train's name |
|
||||||
|
| [`hasSchedule()`](#hasSchedule) | Whether the currently present train has a schedule |
|
||||||
|
| [`getSchedule()`](#getSchedule) | Gets the currently present train's schedule |
|
||||||
|
| [`setSchedule(schedule)`](#setScheduleschedule) | Sets the currently present train's schedule |
|
||||||
|
|
||||||
|
---
|
||||||
|
### `assemble()`
|
||||||
|
Assembles a new train at the station. The station must be in assembly mode prior to calling this function.
|
||||||
|
This function also causes the station to exit assembly mode after the train is done assembing.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not in assembly mode.
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If the train failed to assemble.
|
||||||
|
- If the station failed to exit assembly mode.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [`setAssemblyMode(assemblyMode)`](#setAssemblyModeassemblyMode) To set the assembly mode of the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `disassemble()`
|
||||||
|
Disassembles the station's currently present train. The station must not be in assembly mode.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is in assembly mode.
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
- If the train failed to disassemble.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [`setAssemblyMode(assemblyMode)`](#setAssemblyModeassemblyMode) To set the assembly mode of the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `setAssemblyMode(assemblyMode)`
|
||||||
|
Sets the station's assembly mode.
|
||||||
|
|
||||||
|
**Parameters**
|
||||||
|
- _assemblyMode:_ `boolean` Whether the station should enter or exit assembly mode.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station fails to enter or exit assembly mode.
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `isInAssemblyMode()`
|
||||||
|
Checks whether the station is in assembly mode.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `boolean` Whether the station is in assembly mode.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `getStationName()`
|
||||||
|
Gets the station's current name.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `string` The station's current name.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `setStationName(name)`
|
||||||
|
Sets the station's name.
|
||||||
|
|
||||||
|
**Parameters**
|
||||||
|
- _name:_ `string` The name to set the station to.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station name fails to be set.
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `isTrainPresent()`
|
||||||
|
Checks whether a train is currently present at the station.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- Whether a train is present at the station.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `isTrainImminent()`
|
||||||
|
Checks whether a train is imminently arriving at the station.
|
||||||
|
Imminent is defined as being within 30 meters of the station.
|
||||||
|
This will not be true if the train has arrived and stopped at the station.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- Whether a train is imminent to the station.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [`isTrainPresent()`](#isTrainPresent) To check if a train is present at the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `isTrainEnroute()`
|
||||||
|
Checks whether a train is enroute and navigating to the station.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `boolean` Whether a train is enroute to the station.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `getTrainName()`
|
||||||
|
Gets the currently present train's name.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `string` The currently present train's name.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `setTrainName(name)`
|
||||||
|
Sets the currently present train's name.
|
||||||
|
|
||||||
|
**Parameters**
|
||||||
|
- _name:_ `string` The name to set the currently present train to.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `hasSchedule()`
|
||||||
|
Checks whether the currently present train has a schedule.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `boolean` Whether the currently present train has a schedule.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `getSchedule()`
|
||||||
|
Gets the currently present train's schedule.
|
||||||
|
|
||||||
|
**Returns**
|
||||||
|
- `table` The train's schedule
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
- If the present train doesn't have a schedule.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [Lua Train Schedules](#Lua-Train-Schedules) How train schedules are represented in Lua.
|
||||||
|
|
||||||
|
---
|
||||||
|
### `setSchedule(schedule)`
|
||||||
|
Sets the currently present train's schedule. This will overwrite the currently set schedule.
|
||||||
|
|
||||||
|
**Parameters**
|
||||||
|
- _schedule:_ `table` The schedule to set the present train to.
|
||||||
|
|
||||||
|
**Throws**
|
||||||
|
- If the station is not connected to a track.
|
||||||
|
- If there is no currently present train at the station.
|
||||||
|
|
||||||
|
**See also**
|
||||||
|
- [Lua Train Schedules](#Lua-Train-Schedules) How train schedules are represented in Lua.
|
Loading…
Reference in a new issue