Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
LoogleCZ committed Jan 24, 2018
0 parents commit 662cc5c
Show file tree
Hide file tree
Showing 39 changed files with 8,565 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Interactive Control specialization for FS17

This is specialization for Farming Simulator 17 - Interactive Control.

## History

This specialization is available many years now. In year 2014 I was asked to add monitors feature into old IC. I've done this and also started to create new concept of IC. In FS15 there was some releases, but then I've ended with scripting for FS. This was due to my graduation exams and because I went to college.

In summer 2017 GtX from LS Modcompany contacted me and asked me to revide his convert of IC to FS17. I was excited and I started to revide his code. At same time I realized that events are old and not maintained and IC should be done better. So I started to creating new version - version 4.0.0

## Documentation

Interactive Control from version 4.0.0. comes with documentation in english. You can translate documentation into your native language if you want. Good point to start in documentation is on [front page of this docu](./documentation/en/README.md). I hope you'll find all you need.

## Info about script

### Release

Last script release version: 4.0.2.

Release date: 2018-01-24

### Development

Last script development version: 4.0.2.

Last modification date: 2018-01-24

## Contributors

Main idea of IC from LS11: Manuel Leithner

Development since FS13: [Martin Fabík](https://www.fb.com/LoogleCZ) [<mar.fabik@gmail.com>](mailto:mar.fabik@gmail.com)

Convert to FS17 and some changes: GtX from LS Modcompany

Testing: [Ago-Systemtech (Modhoster Team)](https://www.fb.com/ago.systemtech)

If you want to help with development with this script, you can do it here on GitHub or write me an email at [mar.fabik@gmail.com](mailto:mar.fabik@gmail.com).

## Mods using this script

List of mods using this specialization. If you want, you can add your mod in this list or I'll add your mod in this list if you [send me a mail](mailto:mar.fabik@gmail.com) or contact me anywhere else.

* [John Deere 7R series 2011 Europe Version](https://www.modhoster.de/mods/john-deere-7r-series-2011-europe-version) by [Ago Modding](https://www.fb.com/ago.systemtech)

## Licence

Free for non-commercial usage; for commercial use please contact me at [mar.fabik@gmail.com](mailto:mar.fabik@gmail.com)
10 changes: 10 additions & 0 deletions documentation/en/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Interactive Control documentation

Interactive control is script for FS17 that allows you to create interactive game experience.

In documentation you can find:

* [How to install interactive control](./minimalInstalation.md)
* [List of supported components](./supportedComponents.md)
* [Whole XML documentation for IC](./XMLFormatDocumentation.md)
* [Useful tutorials, tips and trics](./tutorials.md)
207 changes: 207 additions & 0 deletions documentation/en/XMLFormatDocumentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# IC XML Scheme documentation

In this file I will describe XML schema for Interactive Control. In shema I'll be using this symbols with this meaning:

* `( x | y )` - this means, that script using x OR y - not both at same time
* `[xyz=""]` - means that attribute is not required and default value is no set
* `[xyz="abc"]` - optional attribute with default value
* `[xyz="" abc="xyz"]` - list of optional attributes - if you fill one you must fill other
* `xyz=""//type` - means that attribute has type `type`
* Also whole tag can be optional
* Everything outside of [] breackets is required and without propper filling script will not work!

If you have any question regards this XML scheme, send me mail at [mar.fabik@gmail.com](mailto:mar.fabik@gmail.com) with subject "IC - XML schema".

```xml
<!-- IC XML schema documentation -->
<interactiveComponents [outsideTriggerOn="false"//bool [minOutsideDistance="3"//float]]>
[<animations>
[<animation
[name="modHub_error"//l10n_entry]
[mark=""//i3d_node
[size="0.05"//float]
[renderStatusText="true"//bool]
[onMessage="action_turnOnOBJECT"//l10n_entry]
[offMessage="action_turnOffOBJECT"//l10n_entry]
[isOutside="false"//bool]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]
(animName=""//string | clipRoot=""//i3d_node clip=""//string)
[defaultStatus="false"//bool]
[synch="true"//bool]
[initAction="false"//bool]
[looping="false"//bool]
[animSpeedScale="1"//float]
[saveAnimationStatus="false"//bool] />]
<!--
from animation(0) to animation(n)
thus first animation have index 0. This is useful for multi-buttons and debugging
-->
</animations>]
[<buttons>
[<button
[name="modHub_error"//l10n_entry]
[mark=""//i3d_node
[size="0.05"//float]
[renderStatusText="true"//bool]
[onMessage="action_turnOnOBJECT"//l10n_entry]
[offMessage="action_turnOffOBJECT"//l10n_entry]
[isOutside="false"//bool]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]
event=""//string
[defaultStatus="false"//bool]
[synch="true"//bool]
[initAction="false"//bool] />]
<!--
from button(0) to button(n)
thus first button have index 0. This is useful for multi-buttons and debugging
-->
</buttons>]
[<monitors>
<monitor
[name="modHub_error"//l10n_entry]
[mark=""//i3d_node
[size="0.05"//float]
[renderStatusText="true"//bool]
[onMessage="action_turnOnOBJECT"//l10n_entry]
[offMessage="action_turnOffOBJECT"//l10n_entry]
[isOutside="false"//bool]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]
[defaultStatus="false"//bool]
[synch="true"//bool]
[initAction="false"//bool]
[defaultLayer=""//int
[moveDefaultLayer="false"//bool]
]
layerVisPos=""//i3d_coords
layerClosePos=""//i3d_coords
[animName=""//string]
[useStart="true"//bool] >
<layer
index=""//i3d_node
[name="ERROR"//l10n_entry]
[onMessage="ic_button_on"//l10n_entry]
[offMessage="ic_button_off"//l10n_entry]
[renderStatusText="true"//bool]>
[<open
[mark=""//i3d_node
[size="0.05"//float]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]/>]
[<close
[mark=""//i3d_node
[size="0.05"//float]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]/>]
</layer>
<!--
Note - open and close tag should be omitted only in case of default layer!
From layer(0) to layer(n)
-->
</monitor>
<!--
From monitor(0) to monitor(n)
this first monitor have index 0 for multi-buttons
-->
</monitors>]
[<visControls>
[<button
[name="modHub_error"]
[mark=""//i3d_node
[size="0.05"//float]
[renderStatusText="true"//bool]
[onMessage="action_turnOnOBJECT"//l10n_entry]
[offMessage="action_turnOffOBJECT"//l10n_entry]
[isOutside="false"//bool]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]
[defaultStatus="false"//bool]
[synch="true"//bool]
[initAction="false"//bool]
[typeChange="set"//string ('set' or 'toggle')]
[controlElem=""//i3d_node]
[defaultVis=""//bool]
[saveAnimationStatus="false"//bool] />]
>
[<object
index=""//i3d_node
[neg="false"//bool] />]
<!--
you must state at least one object
upper limit for objects is not set
-->
</button>]
<!--
from button(0) to button(n)
this first button have index 0 for multi-buttons
-->
</visControls>]
<!-- multi buttons needs revision -->
[<multiButtons>
<mbutton
[name="modHub_error"//l10n_entry]
[mark=""//i3d_node
[size="0.05"//float]
[renderStatusText="true"//bool]
[onMessage="action_turnOnOBJECT"//l10n_entry]
[offMessage="action_turnOffOBJECT"//l10n_entry]
[isOutside="false"//bool]
[pulsingMark="false"//bool
[pulseScale="0.01 0.01 0.01"//i3d_coords]
]
]
[defaultStatus="false"//bool]
[synch="true"//bool]
[initAction="false"//bool] >
[<control
type=""//string
index=""//int />]
[<part
type=""//string
index=""//int
[negStatus="false"//bool] />]
<!--
You can set only one < control > element per mbutton
You can set n partial elements for one mbutton
-->
</mbutton>
<!--
from mbutton(0) to mbutton(n)
this first mbutton have index 0 for multi-buttons
-->
</multiButtons>]
[<buttonsListeners>
[<listener>
<element type="objectType"//string index=""//int />
[<element type="objectType"//string index=""//int />]
<!-- from element 0 to element n -->
</listener>]
<!-- from listener 0 to listener n -->
</buttonsListeners>]
[<sounds>
[<sound
index=""
type=""
>
[<opening //SoundUtil sample attributes>]
[<closing //SoundUtil sample attributes>]
[<open //SoundUtil sample attributes>]
[<close //SoundUtil sample attributes>]
</sound>]
</sounds>]
</interactiveComponents>
```
27 changes: 27 additions & 0 deletions documentation/en/code/l10n_entries.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<l10n>
<text name="InteractiveControl_Off">
<en>Disable IC</en>
<cz>Vypnout IC</cz>
</text>
<text name="InteractiveControl_On">
<en>Activate IC</en>
<cz>Zapnout IC</cz>
</text>
<text name="InteractiveControl_ModeSelect">
<en>IC toggle mode: %s</en>
<cz>Mód IC: %s</cz>
</text>
<text name="InteractiveControl_Quick">
<en>Quick</en>
<cz>Rychlý</cz>
</text>
<text name="input_INTERACTIVE_CONTROL_SWITCH">
<en>Turn Interactive Control on/off</en>
<cz>Vypnout/zapnout Interactive Control</cz>
</text>
<text name="input_INTERACTIVE_CONTROL_MODE">
<en>Change Interactive Control toggle style</en>
<cz>Změnit styl přepínání Interactive Control</cz>
</text>
</l10n>
44 changes: 44 additions & 0 deletions documentation/en/code/modDesc.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<modDesc descVersion="37">
<!-- rest of your modDesc here -->
<specializations>
<!-- rest of the specializations -->
<specialization name="InteractiveControl" className="InteractiveControl" filename="icSources/InteractiveControl.lua"/>
</specializations>

<vehicleTypes>
<!-- maybe other vehicleTypes -->
<type name="yourVehicleType" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
<!-- rest of vehicle specializations here -->
<specialization name="InteractiveControl"/>
</type>
</vehicleTypes>

<inputBindings>
<!-- another input bindings here -->
<input name="INTERACTIVE_CONTROL_SWITCH" category="VEHICLE" key1="KEY_lalt" key2="" button="" device="0" mouse="" />
<input name="INTERACTIVE_CONTROL_MODE" category="VEHICLE" key1="KEY_lctrl KEY_m" key2="" button="" device="0" mouse="" />
</inputBindings>

<l10n>
<!-- another l10n entries here - in release use that in l10n_entries.xml -->
<text name="InteractiveControl_Off">
<en>Disable IC</en>
</text>
<text name="InteractiveControl_On">
<en>Activate IC</en>
</text>
<text name="InteractiveControl_ModeSelect">
<en>IC toggle mode: %s</en>
</text>
<text name="InteractiveControl_Quick">
<en>Quick</en>
</text>
<text name="input_INTERACTIVE_CONTROL_SWITCH">
<en>Turn Interactive Control on/off</en>
</text>
<text name="input_INTERACTIVE_CONTROL_MODE">
<en>Change Interactive Control toggle style</en>
</text>
</l10n>
</modDesc>
Loading

0 comments on commit 662cc5c

Please sign in to comment.