UNPKG

slanted-gamedev-toolz

Version:

A slanted mix of tools for your brilliant ideas in game design.

148 lines (100 loc) 3.41 kB
# SlantedGameToolz SlantedGameToolz is a collection of tools designed to be used in games made with typescript. UI components are rendered with react. - These tools can be used in iOS and Android apps when built with [**Capacitor**](https://capacitorjs.com/) - These tools can be used in PC and Mac apps when built with [**Electron**](https://www.electronjs.org/) ## Tools - dice - weighted dice - percentage - React components <br/> # Components ### ImportExportLocalStorage - define `defaultData` use the save manager ``` <ImportExportLocalStorage defaultData={defaultData} /> ``` access data stored in local storage ``` typescript const saveGameData2 = getDataFromLocalStorage(defaultData); ``` OR ``` typescript const isLoading = useIsLoadingLocalStorage(); const { setIsLoading, handleResetGame } = useImportExportLocalStorageActions(); const { saveLocalStorageData, clearLocalStorageData, saveGameData } = useLocalSaveData(defaultData); ``` ### LocalizationSelect saves the selected language in localstorage under key `lagCode` - add `.png` images to `/public/flags/` - required files `en.png, de.png, es.png, zh.png, ja.png, ko.png, fr.png, ru.png, it.png, pt.png, hi.png` ![LocalizationSelect](/public/marketingImages/LocalizationSelect.png) ```typescript import { LocalizationSelect } from "slanted-gamedev-toolz"; function App() { return ( <LocalizationSelect /> ); } export default App; ``` ### HexBtn todo ### SquareTileButton todo # ImportExportLocalStorage todo # Functions ## Dice Utils - `rollDice()` A fair dice roll. - `rollLowWeightedDice()` An unfair fair dice roll that is more likely to roll low. - `rollLowWeightedDice()` An unfair fair dice roll that is more likely to roll high. ## Array Utils - `removeObjectsWithSameName()` Removes objects from the first array if their `name` property matches any object's `name` in the second array. - `randomArrayItem()` Returns a random item from the provided array. ## Number Utils - `numberWithCommas()` Formats a number with comma separators and optional suffixes for large values. Ex. 1,000,000(M) - `isNumberTooLarge()` Checks if a number exceeds JavaScript's `Number.MAX_SAFE_INTEGER`. #### Example Usage ```typescript import { rollDice } from "slanted-gamedev-toolz"; const outcome = rollDice(6); // roll 6 sided dice console.log(`outcome:`, outcome) ``` | Parameter | Type | Description | | - | - | - | | diceSides | number | sides on the dice | | Returns | Type | Description | | - |- | - | | | number | the result of the dice roll | </br></br> # Developer Instructions To Publish: - set version in package.json > `"version": "1.0.36"` - run `npm publish` You want to contribute to SlantedGameToolz? - Install the repo dependencies - Render components - storybook `yarn storybook` - or - Vite app `yarn dev` - Make code changes - Submit PR From the root of the repo, open a terminal then run: ``` $ yarn install ``` </br></br> ### How to publish to NPM - `npm login` (if fails do this first) - `yarn build` - bump version in package.json (ex: "version": "1.0.24") - `npm publish` https://www.npmjs.com/package/slanted-gamedev-toolz https://github.com/theslantedroom/SlantedGameDevToolz ### Examples - [Idle Trillionaire](https://www.idletrillionaire.com/) - [Turn Based Boxing](https://www.hbcboxing.online/)