Skip to content

Commit

Permalink
Add initial interfaces and a more complete binding (#1)
Browse files Browse the repository at this point in the history
* Initial rework

* Fixed README

* Fixed various typos

* Changed naming style

* Misc. adjustments

* Misc. updates

* Additional SS bindings and sorted by docs

* Cleaned up control messages

* Updated names

* Added client agent constants

* Completed client agent bindings

* Misc. additions

* Misc updates

* Added PR template

* Added basic README

* Fix incorrect folder

* Create preview builds

* Automatically determine requirements from requirements.txt

* Misc. changes
  • Loading branch information
thetestgame authored Nov 13, 2024
1 parent 1bb4f16 commit 13b9be3
Show file tree
Hide file tree
Showing 16 changed files with 2,866 additions and 1,431 deletions.
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Issue description
<!-- What is this change intended to accomplish? What problem does it solve?
If this change resolves a GitHub issue, include the issue number. -->

## Solution description
<!-- Explain here how your PR solves the problem, what approach it takes. -->

## Checklist
I have done my best to ensure that…
* [] …this change follows the coding style and design patterns of the codebase
* [] …I own the intellectual property rights to this code
* [] …the intent of this change is clearly explained
* [] …the changed code is adequately covered by the test suite, where possible.
Original file line number Diff line number Diff line change
Expand Up @@ -40,20 +40,31 @@ jobs:
major_pattern: "(MAJOR)"
minor_pattern: "(MINOR)"

# Build the package using the version
# Export the version as an environment variable and also export
# the current release vs prerelease state as an environment variable.
# This is determined if the event_name is release or not. Finally
# build the package.
- name: Build package
if: github.event_name != 'pull_request'
run: |
export MAJOR=${{ steps.package-version.outputs.major }}
export MINOR=${{ steps.package-version.outputs.minor }}
export PATCH=${{ steps.package-version.outputs.patch }}
if [ "${{ github.event_name }}" == "release" ]; then
export RELEASE="true"
else
export RELEASE="false"
fi
echo "Building version $MAJOR.$MINOR.$PATCH"
python -m build
# Load the secret from 1Password
- name: Load secret
id: op-load-secret
uses: 1password/load-secrets-action@v2
if: github.event_name != 'pull_request'
with:
export-env: false
env:
Expand All @@ -63,7 +74,7 @@ jobs:
# Publish the package to PyPi if a release is created
- name: Publish package
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
if: github.event_name == 'release'
if: github.event_name != 'pull_request'
with:
user: __token__
password: ${{ steps.op-load-secret.outputs.SECRET }}
39 changes: 36 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
Expand Down Expand Up @@ -50,6 +49,7 @@ coverage.xml
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
Expand All @@ -72,6 +72,7 @@ instance/
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
Expand All @@ -82,7 +83,9 @@ profile_default/
ipython_config.py

# pyenv
.python-version
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
Expand All @@ -91,7 +94,24 @@ ipython_config.py
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
Expand Down Expand Up @@ -127,3 +147,16 @@ dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
49 changes: 40 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,45 @@
Panda3D Astron
==============
![GitHub issues](https://img.shields.io/github/issues/NxtStudios/p3d-rest?style=for-the-badge)
![PyPI - Status](https://img.shields.io/pypi/status/panda3d-astron?style=for-the-badge)
![Engine](https://img.shields.io/static/v1?style=for-the-badge&label=Engine&message=Panda3D&color=red)
# Panda3D Astron

Panda3D Astron server support as a Python 3 module. Allows the use of Astron with stock Panda3D
[![Build, Test, and Publish](https://github.com/thetestgame/panda3d-astron/actions/workflows/main.yml/badge.svg)](https://github.com/thetestgame/panda3d-astron/actions/workflows/main.yml)
![PyPI - Version](https://img.shields.io/pypi/v/panda3d-astron)

### Requirements
## Overview

- The Panda3D SDK (get it <a href="http://www.panda3d.org/download.php?sdk">here</a>)
Panda3D Astron is a package that integrates the Astron distributed server framework with the Panda3D game engine. This allows for the creation of large-scale multiplayer games using Panda3D.

## Installation

You can install the package using pip:

```bash
pip install panda3d-astron
```

## Dependencies

- `panda3d`
- `panda3d-toolbox`

These dependencies will be installed automatically when you install `panda3d-astron`.

## Usage

To use Panda3D Astron in your project, simply import it along with Panda3D:

```python
import panda3d_astron
from panda3d.core import *
```

## License
Panda3D REST is licensed under the MIT license. See the provided LICENSE file for details.

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

## Contact

For any questions or inquiries, please contact the project maintainers through GitHub.

Loading

0 comments on commit 13b9be3

Please sign in to comment.