mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Slideshow - Add support for texture selections (#8702)
Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: mharis001 <34453221+mharis001@users.noreply.github.com>
This commit is contained in:
parent
8cea7f4007
commit
2f2280494f
@ -47,6 +47,12 @@ class CfgVehicles {
|
|||||||
typeName = "NUMBER";
|
typeName = "NUMBER";
|
||||||
defaultValue = 0;
|
defaultValue = 0;
|
||||||
};
|
};
|
||||||
|
class Selection {
|
||||||
|
displayName = CSTRING(Selection_DisplayName);
|
||||||
|
description = CSTRING(Selection_Description);
|
||||||
|
typeName = "NUMBER";
|
||||||
|
defaultValue = 0;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
class ModuleDescription {
|
class ModuleDescription {
|
||||||
description = CSTRING(Description);
|
description = CSTRING(Description);
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
* 2: Names <ARRAY>
|
* 2: Names <ARRAY>
|
||||||
* 3: Controller <OBJECT>
|
* 3: Controller <OBJECT>
|
||||||
* 4: Current Slideshow <NUMBER>
|
* 4: Current Slideshow <NUMBER>
|
||||||
|
* 5: Texture Selection <NUMBER> (default: 0)
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* List of actions <ARRAY>
|
* List of actions <ARRAY>
|
||||||
@ -19,7 +20,7 @@
|
|||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params ["_objects", "_images", "_names", "_controller", "_currentSlideshow"];
|
params ["_objects", "_images", "_names", "_controller", "_currentSlideshow", ["_selection", 0]];
|
||||||
|
|
||||||
private _actions = [];
|
private _actions = [];
|
||||||
{
|
{
|
||||||
@ -30,15 +31,15 @@ private _actions = [];
|
|||||||
_names select _forEachIndex,
|
_names select _forEachIndex,
|
||||||
"",
|
"",
|
||||||
{
|
{
|
||||||
(_this select 2) params ["_objects", "_image", "_currentSlideshow"];
|
(_this select 2) params ["_objects", "_image", "_currentSlideshow", "_selection"];
|
||||||
{
|
{
|
||||||
_x setObjectTextureGlobal [0, _image]
|
_x setObjectTextureGlobal [_selection, _image]
|
||||||
} count _objects;
|
} count _objects;
|
||||||
[QGVAR(slideChanged), [_image, _currentSlideshow]] call CBA_fnc_localEvent;
|
[QGVAR(slideChanged), [_image, _currentSlideshow]] call CBA_fnc_localEvent;
|
||||||
},
|
},
|
||||||
{true},
|
{true},
|
||||||
{},
|
{},
|
||||||
[_objects, _x, _currentSlideshow]
|
[_objects, _x, _currentSlideshow, _selection]
|
||||||
] call EFUNC(interact_menu,createAction),
|
] call EFUNC(interact_menu,createAction),
|
||||||
[],
|
[],
|
||||||
_controller
|
_controller
|
||||||
|
@ -9,17 +9,18 @@
|
|||||||
* 2: State Variable Name <ARRAY>
|
* 2: State Variable Name <ARRAY>
|
||||||
* 3: Current Slideshow <NUMBER>
|
* 3: Current Slideshow <NUMBER>
|
||||||
* 4: Duration <NUMBER> (0 disables automatic transitions)
|
* 4: Duration <NUMBER> (0 disables automatic transitions)
|
||||||
|
* 5: Texture Selection <NUMBER>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [objects, images, "ace_slideshow_slideshow1", duration] call ace_slideshow_fnc_autoTransition
|
* [objects, images, "ace_slideshow_slideshow1", duration, selection] call ace_slideshow_fnc_autoTransition
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params ["_objects", "_images", "_varString", "_currentSlideshow", "_duration"];
|
params ["_objects", "_images", "_varString", "_currentSlideshow", "_duration", "_selection"];
|
||||||
|
|
||||||
// Get current slide number of this slideshow
|
// Get current slide number of this slideshow
|
||||||
private _currentSlide = missionNamespace getVariable [_varString, 0];
|
private _currentSlide = missionNamespace getVariable [_varString, 0];
|
||||||
@ -34,11 +35,11 @@ private _image = _images select _currentSlide;
|
|||||||
|
|
||||||
// Set slide
|
// Set slide
|
||||||
{
|
{
|
||||||
_x setObjectTextureGlobal [0, _image];
|
_x setObjectTextureGlobal [_selection, _image];
|
||||||
} count _objects;
|
} count _objects;
|
||||||
|
|
||||||
[QGVAR(slideChanged), [_image, _currentSlideshow]] call CBA_fnc_localEvent;
|
[QGVAR(slideChanged), [_image, _currentSlideshow]] call CBA_fnc_localEvent;
|
||||||
|
|
||||||
// Log current slide and execute Next slide
|
// Log current slide and execute Next slide
|
||||||
TRACE_4("Auto-transition",_image,_currentSlide,count _images,_duration);
|
TRACE_4("Auto-transition",_image,_currentSlide,count _images,_duration);
|
||||||
[FUNC(autoTransition), [_objects, _images, _varString, _currentSlideshow, _duration], _duration] call CBA_fnc_waitAndExecute;
|
[FUNC(autoTransition), [_objects, _images, _varString, _currentSlideshow, _duration, _selection], _duration] call CBA_fnc_waitAndExecute;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
* 3: Action Names <ARRAY>
|
* 3: Action Names <ARRAY>
|
||||||
* 4: Slide Duration <NUMBER> (0 disables automatic transitions)
|
* 4: Slide Duration <NUMBER> (0 disables automatic transitions)
|
||||||
* 5: Set Name <STRING> (default: localized "Slides")
|
* 5: Set Name <STRING> (default: localized "Slides")
|
||||||
|
* 6: Texture Selection <NUMBER> (default: 0)
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* Slideshow ID <NUMBER>
|
* Slideshow ID <NUMBER>
|
||||||
@ -26,7 +27,8 @@ params [
|
|||||||
["_images", [], [[]] ],
|
["_images", [], [[]] ],
|
||||||
["_names", [], [[]] ],
|
["_names", [], [[]] ],
|
||||||
["_duration", 0, [0]],
|
["_duration", 0, [0]],
|
||||||
["_setName", localize LSTRING(Interaction), [""]]
|
["_setName", localize LSTRING(Interaction), [""]],
|
||||||
|
["_selection", 0, [0]]
|
||||||
];
|
];
|
||||||
|
|
||||||
// Verify data
|
// Verify data
|
||||||
@ -47,7 +49,7 @@ TRACE_5("Information",_objects,_controllers,_images,_names,_setName);
|
|||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
// Default images on whiteboards (first image)
|
// Default images on whiteboards (first image)
|
||||||
{
|
{
|
||||||
_x setObjectTextureGlobal [0, _images select 0];
|
_x setObjectTextureGlobal [_selection, _images select 0];
|
||||||
} count _objects;
|
} count _objects;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -82,7 +84,7 @@ if (_duration == 0) then {
|
|||||||
{},
|
{},
|
||||||
{true},
|
{true},
|
||||||
{(_this select 2) call FUNC(addSlideActions)},
|
{(_this select 2) call FUNC(addSlideActions)},
|
||||||
[_objects, _images, _names, _x, _currentSlideshow],
|
[_objects, _images, _names, _x, _currentSlideshow, _selection],
|
||||||
[0, 0, 0],
|
[0, 0, 0],
|
||||||
2
|
2
|
||||||
] call EFUNC(interact_menu,createAction);
|
] call EFUNC(interact_menu,createAction);
|
||||||
@ -100,7 +102,7 @@ if (_duration == 0) then {
|
|||||||
missionNamespace setVariable [_varString, 0];
|
missionNamespace setVariable [_varString, 0];
|
||||||
|
|
||||||
// Automatic transitions handler
|
// Automatic transitions handler
|
||||||
[FUNC(autoTransition), [_objects, _images, _varString, _currentSlideshow, _duration], _duration] call CBA_fnc_waitAndExecute;
|
[FUNC(autoTransition), [_objects, _images, _varString, _currentSlideshow, _duration, _selection], _duration] call CBA_fnc_waitAndExecute;
|
||||||
};
|
};
|
||||||
|
|
||||||
_currentSlideshow
|
_currentSlideshow
|
||||||
|
@ -32,6 +32,7 @@ private _images = [_logic getVariable ["Images", ""], false, false] call EFUNC(c
|
|||||||
private _names = [_logic getVariable ["Names", ""], false, false] call EFUNC(common,parseList);
|
private _names = [_logic getVariable ["Names", ""], false, false] call EFUNC(common,parseList);
|
||||||
private _setName = _logic getVariable ["SetName", ""];
|
private _setName = _logic getVariable ["SetName", ""];
|
||||||
private _duration = _logic getVariable ["Duration", 0];
|
private _duration = _logic getVariable ["Duration", 0];
|
||||||
|
private _selection = _logic getVariable ["Selection", 0];
|
||||||
|
|
||||||
// Objects synced to the module
|
// Objects synced to the module
|
||||||
{
|
{
|
||||||
@ -40,6 +41,6 @@ private _duration = _logic getVariable ["Duration", 0];
|
|||||||
} count (synchronizedObjects _logic);
|
} count (synchronizedObjects _logic);
|
||||||
|
|
||||||
// Prepare with actions
|
// Prepare with actions
|
||||||
[_objects, _controllers, _images, _names, _duration, _setName] call FUNC(createSlideshow);
|
[_objects, _controllers, _images, _names, _duration, _setName, _selection] call FUNC(createSlideshow);
|
||||||
|
|
||||||
INFO_1("Slideshow Module Initialized on %1 Objects",(count _objects));
|
INFO_1("Slideshow Module Initialized on %1 Objects",(count _objects));
|
||||||
|
@ -227,6 +227,12 @@
|
|||||||
<Chinese>每張幻燈片顯示的時間。 預設:0 (自動換圖已禁用)</Chinese>
|
<Chinese>每張幻燈片顯示的時間。 預設:0 (自動換圖已禁用)</Chinese>
|
||||||
<Chinesesimp>每张幻灯片显示的时间。 预设:0 (自动换图已禁用)</Chinesesimp>
|
<Chinesesimp>每张幻灯片显示的时间。 预设:0 (自动换图已禁用)</Chinesesimp>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Slideshow_Selection_DisplayName">
|
||||||
|
<English>Texture Selection</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Slideshow_Selection_Description">
|
||||||
|
<English>Object texture selection. Default: 0</English>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_Slideshow_Interaction">
|
<Key ID="STR_ACE_Slideshow_Interaction">
|
||||||
<English>Slides</English>
|
<English>Slides</English>
|
||||||
<French>Diapositives</French>
|
<French>Diapositives</French>
|
||||||
|
@ -40,13 +40,14 @@ Important notes:
|
|||||||
3 | Action Names | Array | Required
|
3 | Action Names | Array | Required
|
||||||
4 | Slide Duration | Number | Optional (default: `0`, `0` disables automatic transitions)
|
4 | Slide Duration | Number | Optional (default: `0`, `0` disables automatic transitions)
|
||||||
5 | Set Name | String | Optional (default: localized `"Slides"`)
|
5 | Set Name | String | Optional (default: localized `"Slides"`)
|
||||||
|
6 | Texture Selection | Number | Optional (default: `0`)
|
||||||
**R** | None | None | Return value
|
**R** | None | None | Return value
|
||||||
|
|
||||||
_Note: Set Name argument added in 3.9.1._
|
_Note: Set Name argument added in 3.9.1._
|
||||||
|
|
||||||
#### 2.1.1 Example
|
#### 2.1.1 Example
|
||||||
|
|
||||||
`[[object1, object2], [controller1], ["images\image1.paa", "images\image2.paa"], ["Action1", "Action2"], 5, "My Slides"] call ace_slideshow_fnc_createSlideshow;`
|
`[[object1, object2], [controller1], ["images\image1.paa", "images\image2.paa"], ["Action1", "Action2"], 5, "My Slides", 1] call ace_slideshow_fnc_createSlideshow;`
|
||||||
|
|
||||||
| Arguments | Explanation
|
| Arguments | Explanation
|
||||||
---| --------- | -----------
|
---| --------- | -----------
|
||||||
@ -56,3 +57,4 @@ _Note: Set Name argument added in 3.9.1._
|
|||||||
3 | `["Action1", "Action2"]` | Action names for interaction menu if automatic transitions are not enabled
|
3 | `["Action1", "Action2"]` | Action names for interaction menu if automatic transitions are not enabled
|
||||||
4 | `5` | 5s slide duration before change to next image
|
4 | `5` | 5s slide duration before change to next image
|
||||||
5 | `"My Slides"` | Main interaction point name, for easier distinguishing of multiple slideshow sets
|
5 | `"My Slides"` | Main interaction point name, for easier distinguishing of multiple slideshow sets
|
||||||
|
6 | `1` | Uses texture selection 1 for objects with multiple options
|
||||||
|
Loading…
Reference in New Issue
Block a user