You are viewing a potentially older version of this package. View all versions.
Kirshoo-MovableChessboard-1.1.0 icon

MovableChessboard

Library/Mod to move chessboard around. Provides useful hooks for mods depending on position of the chessboard.

Date uploaded a month ago
Version 1.1.0
Download link Kirshoo-MovableChessboard-1.1.0.zip
Downloads 232
Dependency string Kirshoo-MovableChessboard-1.1.0

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.2403 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.2403

README

MovableChessboard

MovableChessboard is a simple mod that allows players and mods alike to move the chessboard around the airport. Provides hooks to BoardMovementâ„¢ events to allow mods depending on this one to get instant updates on the new position, rotation and scale of the board!

As stated before, players can move chessboard using controls as defined per config file. For more information, see Configuration section.

Usage

As a dependency

To get updates on chessboard movement, your mod has to first call BoardManager.Init(), preferably in your plugin's Start() method. After that, you can start hooking up your own event handlers. Here's an example:

private void Start()
{
    // Initialize board manager
    BoardManager.Init();
    
    // Hook up to all interested events with your handlers
    BoardManager.OnBoardLoaded += MyOnBoardLoaded;
    BoardManager.OnBoardChangedPosition += MyOnBoardMoved;
    BoardManager.OnBoardChangedRotation += MyOnBoardRotated;
    BoardManager.OnBoardChangedScale += MyOnBoardScaled;
}

private void MyOnBoardLoaded()
{
    Plugin.Log.LogDebug("Chessboard just got loaded into BoardManager!");
}

private void MyOnBoardMoved(Vector3 newPosition)
{
    Plugin.Log.LogDebug($"Chessboard just got moved! New position: {newPosition}");
}

private void MyOnBoardRotated(Quaternion newRotation)
{
    Plugin.Log.LogDebug($"Chessboard just got rotated! New rotation: {newRotation}");
}

private void MyOnBoardScaled(Vector3 newScale)
{
    Plugin.Log.LogDebug($"Chessboard just got scaled! New scale: {newScale}");
}

To move, rotate or scale the chessboard from within your mod, you will have to call MoveChessboard(Vector3 newPosition), RotateChessboard(Quaternion newRotation) and ScaleChessboard(Vector3 newScale) respectively.
For example usages of these methods, see src/MovableChessboard/Plugin.cs.

As a standalone mod

When you create a lobby and get assigned as a host, you have an ability to move, rotate and scale the chessboard using controls as defined by Configuration file.

Note

Chessboard means only chessboard. Pieces will stay at the same position unless moved by other mods, see BetterChess. Also, as of right now, only you (the host) able to percieve the change in chessboard position. (I plan to add more RPC calls to make it possible to also change position when host changes as well as percieving the chessboard movement as client with a mod)

Configuration

Configuration file can be found in your $PEAK_FOLDER/BepInEx/config/com.github.Kirshoo.MovableChessboard.cfg

Issues and Suggestions

If you running into any issues or have suggestions, you can contact me on discord in modding community server here or open an issue on github repository for this project.

CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.1.0] Debug Information

Added

  • Lock chessboard position. All attempts to move the board would be ignored once chessboard position is locked.
  • Debug Chessboard's position, rotation, scale, lock status and magnitude of the movement
  • API to lock position of the chessboard after it was loaded

Changed

  • Only the host of the lobby is able to move the chessboard

[1.0.2] Oopsie update v2

Added

  • Creation of config (i forgor to call the bind config function on Awake() ;_;)

Changed

  • Check for photonView existance, instead of creating 2 photon views (big typo)

[1.0.1] Oopsie update

Added

  • "Issues and Suggestions" section to README
  • Link to github repository to Thunderstore page

[1.0.0] Initial Release

Added

  • Board movement events
  • API to move board around at runtime
  • Simple controls to incrementally change position of the chessboard