showFillLevel skript

V tomto návodu si ukážeme, jak zapsat showFillLevel skript do stroje. Doporučuji se prvně ujistit, zda funkce které nabízí showFillLevel nejdou provést například přes indoorHud specializaci. Pokud ne, pak můžete klidně využít showFillLevel.

K čemu to je?

ShowFillLevel skript je určený k zobrazování úrovně zaplnění připojených zařízení, vleků a tak dále. Oproti indoorHud má tu možnost, že se dá aplikovat na vleky a traktory. Umožňuje několik možných typů zobrazení. My si zde ukážeme jak tyto typy zapsat a používat. Pokud vás nebaví číst, můžete se kouknout na video níže, kde popisuji víceméně to samé.

Základní zápis do stroje a rozdělení vlek/traktor

A samozřejmě obecně rozdělení přípojné zařízení/pojizdný storoj. K tomuto rozdělení se používá atribut vehicleType u hlavního oddílu skriptu. Jeho hodnoty můžou být 0 a nebo 1 - podle typu vozidla. 0 znamená řiditelné vozidlo (musí mít specializace stereable a motorized). 1 znamená jakékoli jiné vozidlo. Pokud jdete naslepo a moc tomu nerozumíte, vyzkoušejte prvně 0 a poté 1. Jedno z toho bude fungovat. Ukázka zápisu v xml:

1
2<!-- zapis pro vleky -->
3<fillLevelDetections vehicleType="1">
4 <!-- zapis detekce -->
5</fillLevelDetections>
6
7<!-- zapis pro riditelna vozidla -->
8<fillLevelDetections vehicleType="0">
9 <!-- zapis detekce -->
10</fillLevelDetections>
11

Jen podotknu, že pokud nebude přítomen atribut vehicleType, pak bude automaticky nastaven na 0. Dále zde budu používat verzi pro řiditelná vozidla bez vehicleType, tak se prosím nelekněte.

Číselný ukazatel zaplnění

Funguje na stejném principu jako například rpm přes indoorHud. Jenže díky tomuto skriptu lze použít všude. Je jasné, že potřebujeme někde mít ty čísla zaobalené stejně jako u toho rpm. Proto doporučuji si je vyexportovat z již existujícího stroje. Čísla si umístíme tam, kam potřebujeme a můžeme do xml. Zde platí obecný zápis fillLevelDetection a povinné atributy type, index a displayType. Atribut type je společný pro všechny detekce a nabývá hodnot podle typu ukazatele. V našem případě je to displayNum. Nepoviné parametry jsou: color - barevný vektor modelu rgb s hodnoty <-200;200> - v základu 0 0 0 a precision, označující počet desetinných míst - v základu 0.

DisplayType je parametr určující styl výpisu. Pokud je 0, jsou čísla vypisována. 0 znamená vypsání v litrech se skrytím nul před číslem. 1 znamená vypsání v procentech také se skrytím nul před číslem. 2 a 3 neskrývají nuly před číslem (může být vypsáno třeba 00125) s tím, že 2 je v litrech a 3 v procentech zaplnění.

Ukázky zápisu:

1<fillLevelDetections>
2 <fillLevelDetection type="displayNum" index="0>6|0|15|0|5|0|0|2|2" displayType="0" />
3</fillLevelDetections>

Vytvoří ukazatel zaplnení v litrech se smazáním předcházejících nul na daném indexu.

1<fillLevelDetections>
2 <fillLevelDetection type="displayNum" precision="2" index="0>6|0|15|0|5|0|0|2|2" displayType="1" color="-200 -200 -200"/>
3</fillLevelDetections>

Vytvoří číselný ukazatel zaplnění v procentech na 2 desetinná místa s černou barvou.

Ukazatel zaplnění pomocí rotace

Pokud potřebujete rotovat s nějakou věcí (například ručičkou), je vhodný teno ukazatel. Do položky type stačí vepsat rotatDetection. Atributy jsou startPercent, endPercent, minRotat, maxRotat a index. Index je objekt se kterým rotujeme. Start a endPercent nám určují od kdy do kdy se má objekt rotovat (% zaplnění). Minimální hranice zaplnění je startPercent a maximální je endPercent. Min a maxRotat je startovací rotace (min) a koncová rotace (max).

Ukázky:

1<fillLevelDetections>
2 <fillLevelDetection type="rotatDetection" startPercent="0" endPercent="100" minRotat="0 0 0" maxRotat="0 -150 0" index="0>6|0|15|0"/>
3</fillLevelDetections>

Orotuje předmětem na daném indexu od 0 do -150 stupňů na ose Y.

1<fillLevelDetections>
2 <fillLevelDetection type="rotatDetection" startPercent="20" endPercent="90" minRotat="0 0 0" maxRotat="0 -150 0" index="0>6|0|15|0"/>
3</fillLevelDetections>

Orotuje předmětem po ose Y od 0 do -150 stupňů s tím, že začne rotovat při 20% zaplnění a končí při 90% zaplnění (může se tak animovat "mrtvý bod" ručičky třeba u fekálu).

Ukazatel zaplnění pomocí pohybu

Vhodné na posun měrky například u vodních nádrží. Posouvá objektem plynule z bodu A do bodu B. Atributy jsou startPercent, endPercent, minTrans, maxTrans, index a type. Type musí být nastaveno na "transDetection". Start a end percent se chová stejně jako u rotace. Pohyb se taktéž chová podobně jako rotace.

Ukázka:

1<fillLevelDetections>
2 <fillLevelDetection type="transDetection" startPercent="0" endPercent="100" minTrans="0.034 -0.008 0.001" maxTrans="0.034 0.004 0.001" index="0>6|0|15|0"/>
3</fillLevelDetections>

Ukazatel zaplnění pomocí scale

Dělá to samé co ukazatel pomocí posunu a rotace. Má atributy startPercent, endPercent, minScale, maxScale, index a type. Type musí být nastaveno na "scaleDetection". Start a end percent jsme si už vysvětlovali.

Ukázka:

1<fillLevelDetections>
2 <fillLevelDetection type="scaleDetection" startPercent="0" endPercent="100" minScale="1 0 1" maxScale="1 24.5 1" index="0>6|0|15|0"/>
3</fillLevelDetections>

Ukazatel zaplnění pomocí viditelnosti objektu

Tento ukazatel se může použít třeba pro nějakou jednorázovou kontrolku zaplnění třeba nad 80%. Má pouze 4 atributy a to startPercent, endPercent, index a type. Type musí být nastaveno na "visibility". Skript pak zviditelní obejkt na indexu pokud bude zaplnění v rozmezí startPercent a endPercent.

Ukázka:

1<fillLevelDetections>
2 <fillLevelDetection type="visibility" startPercent="80" endPercent="100" index="0>6|0|15|0"/>
3</fillLevelDetections>

Krokové zobrazení zaplnění

Jedná se o metodu, kdy máme nadefinované nějaké kroky (dejme tomu 10) a ty si zapíšeme jednotlivě do XML ze kterého se poté budou načítat do skriptu. Krok označený jako 1 se zobrazí při minimálním zaplnění a krok označený nejvyšším číslem se zobrazí jako poslední. Pracuje s viditelností objektu. Do XML musíme zapsat typ, kolik máme kroků, jednotlivé kroky a jako vždy start a end percent. Pro každý krok pak náleží 1 index obejktu pro zviditelnění. Myslím že z ukázky pochopíte:

1<fillLevelDetections>
2 <fillLevelDetection type="stepsDetection" startPercent="0" endPercent="100" steps="10">
3 <step1 index="0>15|0|2|3|0" />
4 <step2 index="0>15|0|2|3|1" />
5 <step3 index="0>15|0|2|3|2" />
6 <step4 index="0>15|0|2|3|3" />
7 <step5 index="0>15|0|2|3|4" />
8 <step6 index="0>15|0|2|3|5" />
9 <step7 index="0>15|0|2|3|6" />
10 <step8 index="0>15|0|2|3|7" />
11 <step9 index="0>15|0|2|3|8" />
12 <step10 index="0>15|0|2|3|9" />
13 </fillLevelDetection>
14</fillLevelDetections>

Použití animace

Jako poslední typ ukazatele přibyla od verze 3.0 možnost používat animace. Někde mimo si nadefinuji animaci, kterou poté zapíšu do skriptu a dle ní je potom řízen daný ukazatel. Takový ukazatel se zapisuje dle následujícího příkladu. Myslím že to by vám mohlo jako ukázka stačit. Jen upozorním že toto ve videu nenajdete.

1<fillLevelDetections>
2 <fillLevelDetection type="animation" animation="fillLevel" startPercent="0" endPercent="100" />
3</fillLevelDetections>

Tak toto je pro tento návod vše a já vám děkuji že jste si ho alespoň přečetli. Doufám že byl užitečný a tento skript někde využijete.

Související video

Soubory ke stažení

  1. showFillLevel.lua (Farm-Share)