slanted-gamedev-toolz
Version:
A slanted mix of tools for your brilliant ideas in game design.
148 lines (100 loc) • 3.41 kB
Markdown
# 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`

```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/)