Attract-Mode Support > Themes

Conveyor_Helper Module for Themers: Updated - 11/28/2017

(1/14) > >>

ArcadeBliss:
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 examplesHow 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 betterResources

* Module and Example layout download zip: https://drive.google.com/file/d/0B6SHVZjz_r1fOUVTUmktUWF5blU/view?usp=sharing&resourcekey=0-sS24ZLQXLoW6GaNEgdzMzA
* ReadMe: https://drive.google.com/file/d/0B6SHVZjz_r1feFFtUmZQNDlabWc/view?usp=sharing&resourcekey=0-3YfzSTD7ONeKj33G9bFajA
* Video of the included examples: https://youtu.be/DZ-tMeU9B7A
* All Configuration Code Items:
--- Code: ---      // ----------- 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     



--- End code ---


Change Log

--- Code: ---
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


--- End code ---

kent79:
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:
Would you like add display game name in the module? Thanks

ArcadeBliss:

--- Quote from: kent79 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  :)


--- End quote ---

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

ArcadeBliss:

--- Quote from: kent79 on October 27, 2017, 10:57:24 PM ---Would you like add display game name in the module? Thanks

--- End quote ---

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.

Navigation

[0] Message Index

[#] Next page

Go to full version