Author Topic: Conveyor_Helper Module for Themers: Updated - 11/28/2017  (Read 55499 times)

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Conveyor_Helper Module for Themers: Updated - 11/28/2017
« on: October 27, 2017, 09:41:49 PM »
What is this - Updated 11/28/2017

Conveyor Helper is a module that simplifies the use of the conveyor to make complicated game lists for your layout.

Main Features
  • Create Vertical, Horizontal, Coverflow or Spinwheel lists - easy configuration options
  • Use Game item design templates or completely customize your own
  • Text fallback function – if artwork is not available show a text object with the name of the game
  • Favorite game indicators – fully configurable
  • Add standard image or a colored backgrounds , gloss overlays, and borders for all game items
  • Customize the included template's text size and color
  • Customize the included template's shown artwork
  • Fade Gamelist after navigating to a new game
  • Add a separate image or a colored background for the currently selected game
  • progressively fade game items that are further away from the selected game item
  • progressively scale the game item's size bigger or smaller as they are further away from the selected game item
  • Comprehensive Readme and layout examples
How to Install and Use
  • Extract the “zip” to the root of your AM folder.
  • A new module and layout will be created in  “layouts\conveyor_helper” and “modules\conveyor_helper”
  • From your layout:
  • Load the module: fe.load_module("conveyor_helper")
  • Create a gamelist object: local yourGameListObject = MyGameList()
  • Configure the gamelist – use built-in or custom templates
  • Show the game list: yourGameListObject.show()
The layout has 4 examples: a vertical, horizontal, spinwheel, and spinwheel effects list - using template and customized game items

Thanks!
  • to verion for planting the idea to make this module
  • to the person I shamelessly ripped the favorite graphic
  • to all that will give feedback to make this module even better
Resources
Code: [Select]
      // ----------- General List Options -----------   


      type = ch.Spinwheel;          // OPTIONS: ch.Coverflow / ch.Spinwheel / ch.Linear_Vertical / ch.Linear_Horizontal
      bend.direction = ch.Right;        // OPTIONS: ch.Left / ch.Right
      bend.gl_radius = fe.layout.height / 2;   // OPTIONS: radius of the spinwheel in pixels
      x = fe.layout.width / 2;         // OPTIONS: top left x-coordinate if gamelist is linear or the center x-coordinate if a spinwheel or coverflow
      y = fe.layout.height / 2;         // OPTIONS: top left y-coordinate if gamelist is linear or the center y-coordinate if a spinwheel or coverflow
      width = 270;                // OPTIONS: linear game list total width in pixels
      height = 0;                // OPTIONS: linear list's height in pixels

      ms_speed = 150;                     // OPTIONS: in milliseconds, sets the speed of the conveyor
      fade_after_nav = 30;               // OPTIONS: 0-255 Fades the entire gamelist after navigation to this value. set to 255 to disable fading
      fade_delay = 5000;                   // the amount of time in milliseconds before the fade should start
      fade_speed = 1;                   // the mulitplier controlling the speed of the fade
      fade_selected = false;                   // OPTIONS: TRUE/FALSE fade selected game if gamelist fading is active
     
      // ----------- Spinwheel options -----------
      spinwheel.shape = 180;          // OPTIONS: shape of the spinwheel arc in degrees eg: 270, 180, 360
      spinwheel.rotate_items = true;      // OPTIONS: true / false - Rotate the items along the spinwheel arc
      spinwheel.startDegree = 90;      // The degree on a circle to start drawing the spinwheel. From left to right 0= left, 90 = top, 180 = right, 270= bottom
      spinwheel.effects.x = 1.00;         // a number that changes the spinwheel algorithm to create cool effects
      spinwheel.effects.y = 1.00;         // a number that changes the spinwheel algorithm to create cool effects
     
      // ----------- Linear List options -----------
      linear.padding = 6;   // the amount of padding in pixels between each gamelist item


      // ----------- List Item  Options -----------
      item.contentTemplate = ch.Artwork_or_Text;   // OPTIONS: ch.Artwork / ch.Text / ch.Artwork_and_Text / ch.Artwork_or_Text / ch.Flyer_and_Artwork  / ch.Custom
      item.count = 12;                   // OPTIONS: Total number of gamelist items to display


      item.sizeScaling.low = 0.20;             // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
      item.sizeScaling.high = 0.80;             // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
      item.sizeScaling.currentlySelected = 1.0;           // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item


      item.alphaScaling.low = 60;             // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
      item.alphaScaling.high = 210;             // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
      item.alphaScaling.currentlySelected = 255;          // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item


      item.height = 500;                   // OPTIONS: Height of each gameList item in pixels before scaling - dynamic with linear vertical lists
      item.width = 270 ;                  // OPTIONS: Width of each gameList item in pixels before scaling - dynamic with linear horizontal lists
   
      item.margin.left = 10;                // OPTION: bounding box left margin size for all images and text
      item.margin.right = 10;                // OPTION: bounding box right margin size for all images and text
      item.margin.top = 10;               // OPTION: bounding box top margin size for all images and text
      item.margin.bottom = 10;               // OPTION: bounding box bottom margin size for all images and text


      // ----------- List Item Content: borders / backgrounds / gloss / colors  -----------
      item.toggle.backgroundColor = false;         // if set to "TRUE" the game item background can be colored (use item.normal.color)
      item.toggle.backgroundFile = false;         // if set to "TRUE" the game item will use a file as the background (file: item_backgroundFile.png)
      item.toggle.selectedBackgroundColor = false;    // if set to "TRUE" the selected game item background can be colored (use item.currentlySelected.color)
      item.toggle.selectedBackgroundFile = false;      // if set to "TRUE" the selected game item will use a file as the background (file: item_selectedBackgroundFile.png)
      item.toggle.glossOverlay = false;         // if set to "TRUE" will overlay the game item with a gloss file (file: item_glossOverlay.png)
      item.toggle.borderOverlay = false;         // if set to "TRUE" will overlay the game item with a boarder file (file: item_borderOverlay.png)
     
      item.normal.color.red = 128;         // OPTIONS: background red color channel 0 - 255
      item.normal.color.green = 0;                   // OPTIONS: background green color channel 0 - 255
      item.normal.color.blue = 128;                    // OPTIONS: background blue color channel 0 - 255


      item.currentlySelected.color.red=0;      // OPTIONS: background red color channel 0 - 255
      item.currentlySelected.color.green=128;      // OPTIONS: background green color channel 0 - 255
      item.currentlySelected.color.blue=128;        // OPTIONS: background blue color channel 0 - 255


     
      // ----------- List Item Content: Text -----------
      text.message = "[Title]";
      text.alignment = Align.Centre;           // OPTIONS:left/right/center
      text.normal.font = "Arial";
      text.normal.size = 16;             // OPTIONS: text font size for every gameList item
      text.normal.color.red = 255;         // OPTIONS: text font red color channel 0 - 255
      text.normal.color.green = 255;         // OPTIONS: text font green color channel 0 - 255
      text.normal.color.blue = 128;         // OPTIONS: text font blue color channel 0 - 255
     
      text.currentlySelected.font = "Arial";
      text.currentlySelected.size = 18;       // OPTIONS: text font size for every gameList item
      text.currentlySelected.color.red = 255;   // OPTIONS: text font red color channel 0 - 255
      text.currentlySelected.color.green = 255;    // OPTIONS: text font green color channel 0 - 255
      text.currentlySelected.color.blue = 128;     // OPTIONS: text font blue color channel 0 - 255


      // ----------- List Item Content: User Defined Artwork -----------   
      artwork.type = "wheel";                         // OPTIONS: name of the artwork to use for the conveyour
      artwork.type2 = "snap";                   // OPTIONS: name of the artwork to use for the conveyour setting "Flyer_and_Artwork"
      artwork.preserveAspect = false;                    // OPTIONS: true / false
      // add_favoriteImage(path,x,y,width,height); // add a favorite image to the game item.
     
      // ------------ Options when creating custom gameitem objects -------------
      gi_textFallback = false;    // When true, the game item will show the game name when no artwork is available
      text_fallback_index = -1;   // Only adjust if not working correctly. Set the index of the text object that should be shown when gi_textFallback=true
      artwork_test_index = -1;   // Only adjust if not working correctly. Set the index of the fe.image object which is to be tested when gi_textFallback = true     




Change Log
Code: [Select]

2017.11.28
- [FEATURE]: added ch.Coverflow for coverflow lists and a new demo layout as an example
- [BUGFIX]: setting fade_afte_nav nolonger results in an endless loop
- [CHANGE]: refactored setLinearStops() (again) and LinearSlotItem.on_progress()  to match lessons learned with setSpinWheelStops all list types not work almost exactly the same simplifying code
- [CHANGE]: spinwheel gamelist items are now centered in the middle
- [CHANGE]: moved origin settings to setOriginSettings() based upon gamelist type and bend direction


2017.11.19
- [FEATURE]: added the ability to fade the wheel after navigating use: fade_after_nav, fade_delay, fade_selected and fade_speed
- [FEATURE]: added the ability to change the navigation speed of the gamelist see: ms_speed
- [BUGFIX]: corrected vertical lists text scrolling in the wrong direction
- [BUGFIX]: fixed fading of the fallback text object in setSlotItemClass()
- [BUGFIX]: Ensure correct game is selected when item.count is an even number see: "sel_game_offset"
- [CHANGE]: refactored setLinearStops to match lessons learned with setSpinWheelStops


2017.11.15
- [BUGFIX]: Vertical lists now sort alphabetically from A to Z instead of Z to A - Thanks to BadFurDay for reporting this
- [CHANGE]: Updated all Demo Spinwheel layouts to start drawing from 90deg thus centering the selected item in the middle of the screen.


2017.11.14
- [BUGFIX]: Spinwheel now sorts alphabetically from A to Z instead of Z to A


2017.11.10
- [CHANGE]: moved the text from text only list out of the surface. Changes in: LinerSlotItem.constructor(), MyGameList.show(), setGameItemContent(), setSlotItemClass()
- [FEATURE]: added config item "text.word_wrap"
- [BUGFIX]: Spinwheel fixes. Selected game centered by default when selecting an odd number of items. Animation optimized

« Last Edit: February 25, 2024, 05:35:29 AM by ArcadeBliss »

kent79

  • Hero Member
  • *****
  • Posts: 842
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #1 on: October 27, 2017, 10:19:11 PM »
Welcome. You are the best.

Out of topic. Could you help to develop a virtual keyboard searching plugin like as "ArcadeBliss Cab Edition Theme"? Thanks  :)

kent79

  • Hero Member
  • *****
  • Posts: 842
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #2 on: October 27, 2017, 10:57:24 PM »
Would you like add display game name in the module? Thanks

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #3 on: October 28, 2017, 01:37:19 AM »
Welcome. You are the best.

Out of topic. Could you help to develop a virtual keyboard searching plugin like as "ArcadeBliss Cab Edition Theme"? Thanks  :)


My next project will be to complete the eye theme. After that I will so the plugin

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #4 on: October 28, 2017, 01:39:11 AM »
Would you like add display game name in the module? Thanks

The text you circled is just a graphic border that I used for my own layouts. You can change the border graphic to be anything you want. If you want the graphic border to be dynamic, you would need to create a custom game item. See the layout - horzintal.nut for a custom game item example.
« Last Edit: October 28, 2017, 02:10:15 AM by ArcadeBliss »

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Re:Round Conveyor Example
« Reply #5 on: October 28, 2017, 03:59:02 AM »
Here is an example with code to achieve a round conveyor:


Code: [Select]


// Include the converyour helper module
fe.load_module("conveyor_helper");




/*
   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   Spinwheel Demo
   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   A Spinwheel List with all valid options
   Omitted options will use the defaults
   
*/
 
   // initialize the game list
   local spinList = MyGameList();


   // Configure spinlist options


      // ----------- General List Options -----------   
      spinList.type = ch.Spinwheel;                   // OPTIONS: ch.Spinwheel / ch.Linear_Vertical / ch.Linear_Horizontal
      spinList.bend.direction = ch.Right;              // OPTIONS: ch.Left / ch.Right
      spinList.bend.gl_radius = fe.layout.height / 2 -200;   // OPTIONS: radius of the spinwheel in pixels
      spinList.x = fe.layout.width / 2;               // OPTIONS: top left x-coordinate if gamelist is linear or the center x-coordinate if a spinwheel
      spinList.y = fe.layout.height / 2;               // OPTIONS: top left y-coordinate if gamelist is linear or the center y-coordinate if a spinList
      spinList.width = 270;                         // OPTIONS: linear game list total width in pixels
      spinList.height = 0;                         // OPTIONS: linear list's height in pixels


      // ----------- Spinwheel options -----------
      spinList.spinwheel.shape = 360;                // OPTIONS: shape of the spinwheel arc in degrees eg: 270, 180, 360
      spinList.spinwheel.rotate_items = true;         // OPTIONS: true / false - Rotate the items along the spinwheel arc
      spinList.spinwheel.startDegree = 210;            // The degree on a circle to start drawing the spinwheel. From left to right 0= left, 90 = top, 180 = right, 270= bottom
      spinList.spinwheel.effects.x = 1.00;            // a number that changes the spinwheel algorithm to create cool effects Default is 1
      spinList.spinwheel.effects.y = 1.00;            // a number that changes the spinList algorithm to create cool effects Default is 1


      // ----------- List Item  Options -----------
      spinList.item.contentTemplate = ch.Artwork;   // OPTIONS: ch.Artwork / ch.Text / ch.Artwork_and_Text / ch.Artwork_or_Text / ch.Flyer_and_Artwork
      spinList.item.count = 12;                      // OPTIONS: Total number of gamelist items to display


      spinList.item.sizeScaling.low = 1.00;             // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
      spinList.item.sizeScaling.high = 1.00;          // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
      spinList.item.sizeScaling.currentlySelected = 1.6;   // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item


      spinList.item.alphaScaling.low = 150;             // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
      spinList.item.alphaScaling.high = 230;          // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
      spinList.item.alphaScaling.currentlySelected = 255;// OPTIONS: 0-100 Scaling size percentage to use for the currently selected item


      spinList.item.height = 120;                   // OPTIONS: Height of each gameList item in pixels before scaling - dynamic with linear vertical lists
      spinList.item.width = 270;                     // OPTIONS: Width of each gameList item in pixels before scaling - dynamic with linear horizontal lists


      spinList.item.margin.left = 15;                // OPTION: bounding box left margin size for all images and text
      spinList.item.margin.right = 15;                // OPTION: bounding box right margin size for all images and text
      spinList.item.margin.top = 10;                  // OPTION: bounding box top margin size for all images and text
      spinList.item.margin.bottom = 15;               // OPTION: bounding box bottom margin size for all images and text


      // ----------- List Item Content: borders / backgrounds / gloss / colors  -----------
      spinList.item.toggle.backgroundColor = false;         // if set to "TRUE" the game item background can be colored (use item.normal.color)
      spinList.item.toggle.backgroundFile = false;         // if set to "TRUE" the game item will use a file as the background (file: item_backgroundFile.png)
      spinList.item.toggle.selectedBackgroundColor = true;    // if set to "TRUE" the selected game item background can be colored (use item.currentlySelected.color)
      spinList.item.toggle.selectedBackgroundFile = false;   // if set to "TRUE" the selected game item will use a file as the background (file: item_selectedBackgroundFile.png)
      spinList.item.toggle.glossOverlay = false;            // if set to "TRUE" will overlay the game item with a gloss file (file: item_glossOverlay.png)
      spinList.item.toggle.borderOverlay = false;            // if set to "TRUE" will overlay the game item with a boarder file (file: item_borderOverlay.png)


      spinList.item.normal.color.red = 128;               // OPTIONS: background red color channel 0 - 255
      spinList.item.normal.color.green = 0;                   // OPTIONS: background green color channel 0 - 255
      spinList.item.normal.color.blue = 128;                 // OPTIONS: background blue color channel 0 - 255


      spinList.item.currentlySelected.color.red=0;         // OPTIONS: background red color channel 0 - 255
      spinList.item.currentlySelected.color.green=128;       // OPTIONS: background green color channel 0 - 255
      spinList.item.currentlySelected.color.blue=128;        // OPTIONS: background blue color channel 0 - 255


      // ----------- List Item Content: Text -----------
      spinList.text.message = "[Title]";
      spinList.text.alignment = Align.Centre;           // OPTIONS:left/right/center
      spinList.text.normal.font = "Arial Black";
      spinList.text.normal.size = 16;                // OPTIONS: text font size for every gameList item
      spinList.text.normal.color.red = 255;            // OPTIONS: text font red color channel 0 - 255
      spinList.text.normal.color.green = 255;         // OPTIONS: text font green color channel 0 - 255
      spinList.text.normal.color.blue = 128;            // OPTIONS: text font blue color channel 0 - 255
     
      spinList.text.currentlySelected.font = "Arial";
      spinList.text.currentlySelected.size = 18;       // OPTIONS: text font size for every gameList item
      spinList.text.currentlySelected.color.red = 128;   // OPTIONS: text font red color channel 0 - 255
      spinList.text.currentlySelected.color.green = 255; // OPTIONS: text font green color channel 0 - 255
      spinList.text.currentlySelected.color.blue = 128;  // OPTIONS: text font blue color channel 0 - 255
       
      // ----------- List Item Content: User Defined Artwork -----------   
      spinList.artwork.type = "wheel";          // OPTIONS: name of the artwork to use for the conveyour
      spinList.artwork.type2 = "snap";         // OPTIONS: name of the artwork to use for the conveyour setting "Flyer_and_Artwork"
      spinList.artwork.preserveAspect = false;    // OPTIONS: true / false
      spinList.add_favoriteImage(fe.script_dir + "favorite.png",spinList.item.width -30,0,30,25);


      if (spinList.item.contentTemplate == ch.Custom)
      {
   //      Configure custom gameitem
         local object = spinList;
         local temp = null;
         local x = 0
         local y = 0
         local w = object.item.width
         local h = object.item.height


         temp = object.add_customGameItemContent("artwork", "snap", x+w*0.40 ,y ,w*0.6 ,h * 0.80 );
         temp.preserve_aspect_ratio = object.artwork.preserveAspect;
         temp.trigger = Transition.EndNavigation;
         
         temp = object.add_customGameItemContent("text", "[Title]", x, h*0.85, w, h * 0.2);
         temp.font = object.text.normal.font;
         temp.charsize  = object.text.normal.size;
         temp.align = object.text.alignment;
         temp.set_rgb(object.text.normal.color.red, object.text.normal.color.green, object.text.normal.color.blue);
         
         temp = object.add_customGameItemContent("artwork","wheel", x ,y ,w*0.35 ,h * 0.80 );
         temp.preserve_aspect_ratio = object.artwork.preserveAspect;
         temp.trigger = Transition.EndNavigation;
         object.gi_textFallback = true;
      }
// show the spinwheel list
spinList.show()
     






local w = fe.layout.width
local h = fe.layout.height


// show a video of the game and set the shader
local temp = fe.add_artwork( "snap", w,h, 640,480);
temp.preserve_aspect_ratio = true;
temp.origin_x = 320;
temp.origin_y = 240;
temp.x = w /2;
temp.y = h /2;
temp.trigger = Transition.EndNavigation;
local sh = fe.add_shader( Shader.VertexAndFragment, "shaders/crt.vert", "shaders/crt.frag" );
sh.set_param( "rubyInputSize", 400, 300 );
sh.set_param( "rubyOutputSize", ScreenWidth, ScreenHeight );
sh.set_param( "rubyTextureSize", 320, 240 );
sh.set_texture_param("rubyTexture");
temp.shader = sh;






//add tvframe to the video
temp = fe.add_image("TVframe.png",w,h, 640,480);
temp.preserve_aspect_ratio = true;
temp.origin_x = 320;
temp.origin_y = 240;
temp.x = w /2;
temp.y = h /2;
« Last Edit: October 28, 2017, 04:00:35 AM by ArcadeBliss »

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Vertical list with only text example
« Reply #6 on: October 28, 2017, 04:12:54 AM »
Here is a vertical list using only text for the game names


Code: [Select]


// Include the converyour helper module
fe.load_module("conveyor_helper");





/*
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Vertical List Demo
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
A vertical List with all valid options
Omitted options will use the defaults

*/
 
// initialize the vertical list
local vList = MyGameList();


// ----------- General List Options -----------
vList.type = ch.Linear_Vertical; // OPTIONS: ch.Spinwheel / ch.Linear_Vertical / ch.Linear_Horizontal
vList.bend.direction = ch.Right;  // OPTIONS: ch.Left / ch.Right
vList.x = 0; // OPTIONS: top left x-coordinate if gamelist is linear or the center x-coordinate if a spinwheel
vList.y = -120; // OPTIONS: top left y-coordinate if gamelist is linear or the center y-coordinate if a spinwheel
vList.width = fe.layout.width; // OPTIONS: linear game list total width in pixels
vList.height = fe.layout.height+120*2; // OPTIONS: linear list's height in pixels

// ----------- Linear List options -----------
vList.linear.padding = 5; // the amount of padding in pixels between each gamelist item

// ----------- List Item  Options -----------
vList.item.contentTemplate = ch.Text; // OPTIONS: ch.Artwork / ch.Text / ch.Artwork_and_Text / ch.Artwork_or_Text / ch.Flyer_and_Artwork
vList.item.count = 21; // OPTIONS: Total number of gamelist items to display
       
vList.item.sizeScaling.low = 0.60; // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
vList.item.sizeScaling.high = 0.80; // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
vList.item.sizeScaling.currentlySelected = 1.00; // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item
       
vList.item.alphaScaling.low = 150; // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
vList.item.alphaScaling.high = 255; // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
vList.item.alphaScaling.currentlySelected = 255; // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item
       
vList.item.height = 40; // OPTIONS: Height of each gameList item in pixels before scaling - dynamic with linear vertical lists
vList.item.width = 600; // OPTIONS: Width of each gameList item in pixels before scaling - dynamic with linear horizontal lists
       
vList.item.margin.left = 0; // OPTION: bounding box left margin size for all images and text
vList.item.margin.right = 0; // OPTION: bounding box right margin size for all images and text
vList.item.margin.top = 0; // OPTION: bounding box top margin size for all images and text
vList.item.margin.bottom = 0; // OPTION: bounding box bottom margin size for all images and text
       
// ----------- List Item Content: borders / backgrounds / gloss / colors  -----------
vList.item.toggle.backgroundColor = true; // if set to "TRUE" the game item background can be colored (use item.normal.color)
vList.item.toggle.backgroundFile = false; // if set to "TRUE" the game item will use a file as the background (file: item_backgroundFile.png)
vList.item.toggle.selectedBackgroundColor = true; // if set to "TRUE" the selected game item background can be colored (use item.currentlySelected.color)
vList.item.toggle.selectedBackgroundFile = false; // if set to "TRUE" the selected game item will use a file as the background (file: item_selectedBackgroundFile.png)
vList.item.toggle.glossOverlay = false; // if set to "TRUE" will overlay the game item with a gloss file (file: item_glossOverlay.png)
vList.item.toggle.borderOverlay = false; // if set to "TRUE" will overlay the game item with a boarder file (file: item_borderOverlay.png)

vList.item.normal.color.red = 0; // OPTIONS: background red color channel 0 - 255
vList.item.normal.color.green = 0;                // OPTIONS: background green color channel 0 - 255
vList.item.normal.color.blue = 255;                  // OPTIONS: background blue color channel 0 - 255
       
vList.item.currentlySelected.color.red=255; // OPTIONS: background red color channel 0 - 255
vList.item.currentlySelected.color.green=0;        // OPTIONS: background green color channel 0 - 255
vList.item.currentlySelected.color.blue=0;        // OPTIONS: background blue color channel 0 - 255
       
// ----------- List Item Content: Text -----------
vList.text.message = "[Title]";
vList.text.alignment = Align.Centre;  // OPTIONS:left/right/center
vList.text.normal.font = "Arial";
vList.text.normal.size = 24; // OPTIONS: text font size for every gameList item
vList.text.normal.color.red = 255; // OPTIONS: text font red color channel 0 - 255
vList.text.normal.color.green = 255; // OPTIONS: text font green color channel 0 - 255
vList.text.normal.color.blue = 255; // OPTIONS: text font blue color channel 0 - 255

vList.text.currentlySelected.font = "Arial";
vList.text.currentlySelected.size = 18; // OPTIONS: text font size for every gameList item
vList.text.currentlySelected.color.red = 128; // OPTIONS: text font red color channel 0 - 255
vList.text.currentlySelected.color.green = 255; // OPTIONS: text font green color channel 0 - 255
vList.text.currentlySelected.color.blue = 128;  // OPTIONS: text font blue color channel 0 - 255
       
// ----------- List Item Content: User Defined Artwork -----------
vList.artwork.type = "wheel"; // OPTIONS: name of the artwork to use for the conveyour
vList.artwork.type2 = "snap"; // OPTIONS: name of the artwork to use for the conveyour setting "Flyer_and_Artwork"
vList.artwork.preserveAspect = false; // OPTIONS: true / false
vList.add_favoriteImage(fe.script_dir + "favorite.png",vList.item.width -30,0,30,25);

// show the vertical list
vList.show();
 




local w = fe.layout.width
local h = fe.layout.height


// show a video of the game and set the shader
local temp = fe.add_artwork( "snap", w,h, 400,300);
temp.preserve_aspect_ratio = true;
temp.origin_x = 200;
temp.origin_y = 150;
temp.x = w /2;
temp.y = h /2;
temp.trigger = Transition.EndNavigation;
local sh = fe.add_shader( Shader.VertexAndFragment, "shaders/crt.vert", "shaders/crt.frag" );
sh.set_param( "rubyInputSize", 400, 300 );
sh.set_param( "rubyOutputSize", ScreenWidth, ScreenHeight );
sh.set_param( "rubyTextureSize", 320, 240 );
sh.set_texture_param("rubyTexture");
temp.shader = sh;


//Show wheel artwork
local temp = fe.add_artwork( "wheel", w,h, 400,0);
temp.preserve_aspect_ratio = true;
temp.origin_x = 200;
temp.x = w /2;
temp.y = h /2 + 150;
temp.trigger = Transition.EndNavigation;




//add tvframe to the video
temp = fe.add_image("TVframe.png",w,h, 400,300);
temp.preserve_aspect_ratio = true;
temp.origin_x = 200;
temp.origin_y = 150;
temp.x = w /2;
temp.y = h /2;

jedione

  • Hero Member
  • *****
  • Posts: 1135
  • punktoe
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #7 on: October 28, 2017, 06:50:05 AM »
this, is some great work....this will help me in some great new themes...thank you
will be testing tonight.
help a friend....

verion

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 861
    • View Profile
    • new projects
Re: Conveyor_Helper Module for Themers
« Reply #8 on: October 28, 2017, 11:18:20 AM »
Thanks for creating this.
I'm glad to see that my ENDLESS list of features to implement didn't scare you after all :D

qqplayer

  • Sr. Member
  • ****
  • Posts: 301
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #9 on: October 28, 2017, 01:07:00 PM »
Awesome!!! Thanks.

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #10 on: October 29, 2017, 01:48:47 PM »
had to take a break because of life issues. The Eye is on its way

BadFurDay

  • Full Member
  • ***
  • Posts: 82
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #11 on: October 29, 2017, 04:12:29 PM »
I'm trying to suss this out myself but struggling, any chance you get get the conveyor to appear like the robospin conveyor? e.g.



Also any chance to add the option to fade out the wheel? I also really like the idea, if possible, to fade out all the wheel except the one highlighted, if it could have those two options would be sweet.  :)

BadFurDay

  • Full Member
  • ***
  • Posts: 82
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #12 on: October 29, 2017, 04:48:03 PM »
I'm trying to suss this out myself but struggling, any chance you get get the conveyor to appear like the robospin conveyor? e.g.



Edit: Something else I'm noticing as a difference between this and the robospin/standard conveyor is that the list goes the wrong way and means the buttons seem back to front. Anyway to reverse this?

Also any chance to add the option to fade out the wheel? I also really like the idea, if possible, to fade out all the wheel except the one highlighted, if it could have those two options would be sweet.  :)

jedione

  • Hero Member
  • *****
  • Posts: 1135
  • punktoe
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #13 on: October 29, 2017, 06:45:45 PM »
yes i noticed this to,, you can go up ,, then down , but you hold the key,, and it zooms up ..both dir.

other than that...tit's
help a friend....

ArcadeBliss

  • Sr. Member
  • ****
  • Posts: 195
    • View Profile
Re: Conveyor_Helper Module for Themers
« Reply #14 on: October 30, 2017, 12:07:52 AM »
I'm trying to suss this out myself but struggling, any chance you get get the conveyor to appear like the robospin conveyor? e.g.



Also any chance to add the option to fade out the wheel? I also really like the idea, if possible, to fade out all the wheel except the one highlighted, if it could have those two options would be sweet.  :)

This is possible. Just use the following settings:
 item.alphaScaling.low = 60;             // OPTIONS: 0-100 Scaling size percentage to use for the item furthest from the selected item
      item.alphaScaling.high = 60;             // OPTIONS: 0-100 Scaling size percentage to use for item closest to the selected item
      item.alphaScaling.currentlySelected = 255;          // OPTIONS: 0-100 Scaling size percentage to use for the currently selected item