Ka0s Dashboard

Ka0s Dashboard 1.1.1

Login or Register an account to download this content
Changes in Latest Version (1.1.1 | 30-Oct-2014)
  • Minor fix to ensure that hidden apps stay hidden on next startup. This feature broke with the introduction of the "inherit" feature in 1.1.0
  • Like
Reactions: URBAN303
Changes in Latest Version (1.1.0 | 28-Oct-2014)
NOTE:
  • There have been some major structural changes to the codebase, so please __delete__ your existing ka0sdashboard folder before un-RARing this one.
  • Your downloaded skins need to be updated as well, you can get them HERE.
  • For any custom skins, make sure you back them up before deleting the old ka0sdashboard folder.
CHANGES:
  • Major code overhaul, including performance/readability improvements
  • Consolidated codebase to have every dashboard widget being rendered from the same class.
    • This means any app (speed, rpm, fuel, gear, pedals, steering) can render any element from any app.
    • This allows greater consistency in config.json declaration and will allow skin authors to create "super apps" which can potentially create a single, unified dashboard widget.
  • Add state support for the dial - i.e. dials can change background image based on defined parameters.
    • This is how the gear app works, now works for any app.
    • @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
  • Added support for multiple needles in the same app.
    • @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
  • Added support for multiple, multi-state overlays.
    • An overlay is a graphical element which can be used anywhere on the skin.
    • For example, it can be used for "glass" textures on top of the dial, or gear numbers via image rather than text, or anything under the sun.
  • Added support for multiple, multi-state underlays.
    • This is the same as overlays, except overlays are rendered above the needle (top layer), whereas underlays are rendered under the needle but above the dial and other text elements.
  • Made the bars element used in the pedals app generic
    • This can be used in any element now, not just pedals
    • @Skin authors: This will need some changes to way needles are defined in the config.json (see below)
  • Added skin-level flag to disable inheritance from the default skin if that widget is not defined in your skin
    • Current behavior : If a skin doesn't have a specific widget defined (say the fuel widget), then the Ka0s Dashboard app inherits this from the default skin
    • New behavior : If the "inherit" flag is set to false, then the Ka0s Dashboard app will __not__ inherit any undefined widgets from the default skin
    • To enable this, set a variable "inherit": false under "skin" in the config.json in your base skin folder (where you define the skin name, description and author)
  • Added reload button in the Configuration GUI (enabled if DEBUG = True).
    • It reloads the skin configurations from disk and immediately applies them without having to logout of the current race session. Very useful for skin authors.
  • Test skin to showcase new capabilities available here : https://www.mediafire.com/?m65mx5xn65yshga
    • This is for demo purposes only, not really a usable skin
Skin authors, some of the changes you will need to make to your existing skins:
  • OLD __needle__ declaration (for fuel, rpm, speed apps)
    Code:
    	"needle": {
    		"size": {
    			"x": 200,
    			"y": 200
    		},
    		"position": {
    			"x": 0,
    			"y": 0
    		},
    		"image": {
    			"path": "needle",
    			"filename": "needle.<angle>.png"
    		},
    		"background_opacity": 0,
    		"attribute": "percent_speed",
    		"start_angle": 45,
    		"end_angle": 303
    	}
  • NEW __needle__ declaration (for fuel, rpm, speed apps)
    Code:
    	"needles": [
    		{
    			"size": {
    				"x": 200,
    				"y": 200
    			},
    			"position": {
    				"x": 0,
    				"y": 0
    			},
    			"image": {
    				"path": "needle",
    				"filename": "needle.<angle>.png"
    			},
    			"background_opacity": 0,
    			"attribute": "percent_speed",
    			"start_angle": 45,
    			"end_angle": 303
    		}
    	]
  • OLD __states__ declaration (for gear app)
    Code:
        "dial": {
    		...   
            "attribute": "percent_rpm",
            "states": [
                {
                    "shift_percent": 0
                },
                {
                    "shift_percent": 0.92
                }
            ]
            ...
    	}
  • NEW __states__ declaration (for gear app)
    • __states__ can now also be used in any app where dial/overlay/underlay is defined
    Code:
        "dial": {
    		...   
            "states": {
                "attribute": "percent_rpm",
                "values" : [
                    0,
                    0.92
                ]
            }
            ...
    	}
  • OLD __pedals__ declaration (for pedals app)
    Code:
        "clutch": {
            "image": {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 0,
                    "y": 0
                },
    	        "image": {
    	            "path": "pedals",
    	            "filename": "clutch.png"
    	        },
                "background_opacity": 0
            },
            "bar": {
                "color": {
                    "red": 0,
                    "green": 0,
                    "blue": 223
                },
                "position": {
                    "x": 56,
                    "y": {
                        "start": 82,
                        "max": 80
                    }
                },
                "width": 3,
                "background_opacity": 1,
                "attribute": "clutch"
            }
        }
        ...
        "brake": {
            "image": {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 63,
                    "y": 0
                },
    	        "image": {
    	            "path": "pedals",
    	            "filename": "brake.png"
    	        },
                "background_opacity": 0
            },
            "bar": {
                "color": {
                    "red": 223,
                    "green": 0,
                    "blue": 0
                },
                "position": {
                    "x": 119,
                    "y": {
                        "start": 82,
                        "max": 80
                    }
                },
                "width": 3,
                "background_opacity": 1,
                "attribute": "brake"
            }
        }
        ...
        "accelerator": {
            "image": {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 126,
                    "y": 0
                },
    	        "image": {
    	            "path": "pedals",
    	            "filename": "accelerator.png"
    	        },
                "background_opacity": 0
            },
            "bar": {
                "color": {
                    "red": 0,
                    "green": 224,
                    "blue": 0
                },
                "position": {
                    "x": 182,
                    "y": {
                        "start": 100,
                        "max": 98
                    }
                },
                "width": 3,
                "background_opacity": 1,
                "attribute": "accelerator"
            }
        },
  • NEW __pedals__ declaration (for pedals app)
    • This is now modeled as __underlays__ and __bars__
    • __bars__ can be used in any app
    Code:
        "underlays": [
            {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 0,
                    "y": 0
                },
                "image": {
                    "path": "pedals",
                    "filename": "clutch.png"
                },
                "background_opacity": 0
            },
            {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 63,
                    "y": 0
                },
                "image": {
                    "path": "pedals",
                    "filename": "brake.png"
                },
                "background_opacity": 0
            },
            {
                "size": {
                    "x": 54,
                    "y": 100
                },
                "position": {
                    "x": 126,
                    "y": 0
                },
                "image": {
                    "path": "pedals",
                    "filename": "accelerator.png"
                },
                "background_opacity": 0
            }
        ]
        ...
        "bars": [
            {
                "color": {
                    "red": 0,
                    "green": 0,
                    "blue": 223
                },
                "position": {
                    "x": {
                        "coordinates": {
                            "min": 55,
                            "max": 59
                        },
                        "attribute": {
                            "name": "static_attribute",
                            "min": 0,
                            "max": 1
                        }
                    },
                    "y": {
                        "coordinates": {
                            "min": 80,
                            "max": 0
                        },
                        "attribute": {
                            "name": "clutch",
                            "min": 0,
                            "max": 1
                        }
                    }
                },
                "background_opacity": 1
            },
            {
                "color": {
                    "red": 223,
                    "green": 0,
                    "blue": 0
                },
                "position": {
                    "x": {
                        "coordinates": {
                            "min": 119,
                            "max": 123
                        },
                        "attribute": {
                            "name": "static_attribute",
                            "min": 0,
                            "max": 1
                        }
                    },
                    "y": {
                        "coordinates": {
                            "min": 80,
                            "max": 0
                        },
                        "attribute": {
                            "name": "brake",
                            "min": 0,
                            "max": 1
                        }
                    }
                },
                "background_opacity": 1
            },
            {
                "color": {
                    "red": 0,
                    "green": 224,
                    "blue": 0
                },
                "position": {
                    "x": {
                        "coordinates": {
                            "min": 182,
                            "max": 187
                        },
                        "attribute": {
                            "name": "static_attribute",
                            "min": 0,
                            "max": 1
                        }
                    },
                    "y": {
                        "coordinates": {
                            "min": 100,
                            "max": 0
                        },
                        "attribute": {
                            "name": "accelerator",
                            "min": 0,
                            "max": 1
                        }
                    }
                },
                "background_opacity": 1
            }
        ],
  • Like
Reactions: URBAN303
Changes in Latest Version (1.0.0 | 06-Oct-2014)
  • Added in-game configuration GUI
JGk1uny.png
  • Like
Reactions: URBAN303
Changes in Latest Version (0.4.0 | 29-Aug-2014)
  • Updated for AC 0.22 shared memory update
  • Like
Reactions: URBAN303
Changes in Latest Version (0.3.0 | 15-Aug-2014)
  • Added support for glass-type dial overlay
Changes in Latest Version (0.2.0 | 13-Aug-2014)
  • Added skinning support!
  • Added support for multiple states in gear shift app
  • Added support for imperial/metric units
  • Added support for apps not updating in the background when dismissed
  • Added config file to save user preferences
  • Various performance improvements

Latest News

Shifting method

  • I use whatever the car has in real life*

  • I always use paddleshift

  • I always use sequential

  • I always use H-shifter

  • Something else, please explain


Results are only viewable after voting.
Back
Top