Skip to content

Commit

Permalink
Merge remote-tracking branch 'BeeStation/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
SergeiKoralev committed Dec 10, 2024
2 parents 986f70b + 37ceda0 commit 8e93dae
Show file tree
Hide file tree
Showing 3,216 changed files with 1,143,682 additions and 856,497 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
16 changes: 10 additions & 6 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,20 @@ dependencies.sh @crossedfall
Dockerfile @crossedfall
/SQL @crossedfall
/tools @crossedfall


# ike709

/code/modules/client/loadout @ike709

/config @crossedfall

# powerfulbacon

/code/game/machinery/shuttle @powerfulbacon
/code/modules/shuttle/super_cruise @powerfulbacon
/code/modules/shuttle/shuttle_creation @powerfulbacon
/_maps/map_files/CorgStation @powerfulbacon

# pestoverde322

/_maps @pestoverde322

# itsmeow

/code/game/gamemodes/dynamic @itsmeow
/code/modules/modular_computers @itsmeow
19 changes: 17 additions & 2 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ CONTRIBUTING
4. Code Standards
5. Codebase-specific Policies
6. Asset Policy
7. Banned Content
7. Pull Request Standards
8. Banned Content

## 1. Introduction
Hello and welcome to BeeStation's contributing page. You are presumably here because you are interested in contributing - thank you! Everyone is free to contribute to this project as long as they follow the simple guidelines and specifications below; at BeeStation, we strive to maintain code stability and maintainability, and to do that, we need all pull requests to meet our standards. It's in everyone's best interests - including yours!
Expand Down Expand Up @@ -96,7 +97,21 @@ If you are adding new assets that are not already explicitly licensed under CC-B

If at any point you are confused or unsure of an asset's license or our policy, ask a Maintainer to help you.

## 7. Banned Content
## 7. Pull Request Standards

You should complete the pull-request template in its entirety.

Any pull-request that does not adequately complete the provided template may be closed or marked 'do not merge' by maintainers.
- Any changes that may affect game balance should be documented as a balance change. This also applies to bug fixes which directly alter the game's balance.
- Changes must be documented in their entirety including the extent of their effects. (For example, if you change it so all mobs are half speed, don't label the PR as 'monkeys now move twice as slow'). Failing to document the full extent of the changes may result in a repo-ban if the intent of hiding changes is seen as malicious.
- The section labeled 'about this pull request' should describe the pull request's changes in detail. This includes the changes being made, any important details about how it was implemented, the issues it closes, and links to any other pull requests if code is being ported from another codebase.
- The section labeled "why it's good for the game" should include the reasons behind the changes and how they will be good for the game.
- The testing section should contain screenshots, videos, and/or reproducible testing procedures showing that the PR works as specified. Pull-requests that ignore this section, or are not tested, may be closed by maintainers. This applies to small PRs that may seem trivial.
- The changelog should include a short summary of the changes made. If your pull request includes things made by other people, you should list everybody who contributed, including yourself, after the :cl: tag.

If a pull-request requires updates to the wiki, these changes should be made on your user account page (For example: https://wiki.beestation13.com/view/User:PowerfulBacon), so that the original page can be updated on merge.

## 8. Banned Content

Do not add any of the following in a Pull Request or risk getting the PR closed:

Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: Bug report
about: Create a report to help reproduce and fix the issue
---
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable -->
## Round ID:
## Round ID & Round Date:

<!--- **INCLUDE THE ROUND ID**
<!--- **INCLUDE THE ROUND ID AND THE ROUND DATE**
If you discovered this issue from playing beestation hosted servers:-->

## Testmerges:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/continuous_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:

jobs:
run_linters:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Python setup
Expand Down Expand Up @@ -48,7 +48,7 @@ jobs:
tools/bootstrap/python -m mapmerge2.dmm_test
~/dreamchecker
compile_all_maps:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Setup cache
Expand All @@ -66,7 +66,7 @@ jobs:
python3 tools/ci/template_dm_generator.py
tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS
run_all_tests:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
services:
mysql:
image: mysql:latest
Expand Down
3 changes: 0 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"workbench.editorAssociations": {
"*.dmi": "imagePreview.previewEditor"
},
"files.eol": "\n",
"files.insertFinalNewline": true,
"gitlens.advanced.blame.customArguments": ["-w"],
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
FROM beestation/byond:514.1583 as base
FROM beestation/byond:514.1589 as base

# Install the tools needed to compile our rust dependencies
FROM base as rust-build
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,13 @@ https://github.com/tgstation/tgstation-server

BeeStation currently comes equipped with these maps.

* [DeltaStation (default)](https://wiki.beestation13.com/view/DeltaStation)
* [BoxStation](https://wiki.beestation13.com/view/Boxstation)
* [MetaStation](https://wiki.beestation13.com/view/MetaStation)
* [PubbyStation](https://wiki.beestation13.com/view/PubbyStation)
* [KiloStation](https://wiki.beestation13.com/view/KiloStation)
* [CorgStation](https://wiki.beestation13.com/view/CorgsStation)
* [DeltaStation](https://wiki.beestation13.com/view/DeltaStation)
* [FlandStation](https://wiki.beestation13.com/view/FlandStation)
* [KiloStation](https://wiki.beestation13.com/view/KiloStation)
* [MetaStation (default)](https://wiki.beestation13.com/view/MetaStation)
* [PubbyStation](https://wiki.beestation13.com/view/PubbyStation)
* [RuntimeStation (used for debugging)](https://wiki.beestation13.com/view/RuntimeStation)

All maps have their own code file that is in the base of the _maps directory. Maps are loaded dynamically when the game starts. Follow this guideline when adding your own map, to your fork, for easy compatibility.
Expand Down
112 changes: 44 additions & 68 deletions SQL/beestation_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -82,36 +82,40 @@ CREATE TABLE IF NOT EXISTS `SS13_ban` (
-- Dumping structure for table ss13tgdb.SS13_characters
DROP TABLE IF EXISTS `SS13_characters`;
CREATE TABLE IF NOT EXISTS `SS13_characters` (
`real_name` varchar(50) DEFAULT NULL,
`name_is_always_random` bit(1) NOT NULL,
`body_is_always_random` bit(1) NOT NULL,
`gender` varchar(50) NOT NULL,
`age` tinyint(3) unsigned NOT NULL,
`hair_color` varchar(50) NOT NULL,
`facial_hair_color` varchar(50) NOT NULL,
`eye_color` varchar(50) NOT NULL,
`skin_tone` varchar(50) NOT NULL,
`hair_style_name` varchar(50) NOT NULL,
`facial_style_name` varchar(50) NOT NULL,
`feature_ethcolor` varchar(50) NOT NULL,
`underwear` varchar(50) NOT NULL,
`undershirt` varchar(50) NOT NULL,
`socks` varchar(50) NOT NULL,
`backbag` varchar(50) NOT NULL,
`uplink_loc` varchar(50) NOT NULL,
`species` varchar(50) NOT NULL,
`features` json NOT NULL,
`joblessrole` smallint(6) NOT NULL,
`job_civlian_high` smallint(6) NOT NULL,
`job_civilian_med` smallint(6) NOT NULL,
`job_civilian_low` smallint(6) NOT NULL,
`job_medsci_high` smallint(6) NOT NULL,
`job_medsci_med` smallint(6) NOT NULL,
`job_medsci_low` smallint(6) NOT NULL,
`job_engsec_high` smallint(6) NOT NULL,
`job_engsec_med` smallint(6) NOT NULL,
`job_engsec_low` smallint(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
`slot` INT(11) UNSIGNED NOT NULL,
`ckey` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`species` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`real_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`name_is_always_random` TINYINT(1) NOT NULL,
`body_is_always_random` TINYINT(1) NOT NULL,
`gender` VARCHAR(16) NOT NULL COLLATE 'utf8mb4_general_ci',
`age` TINYINT(3) UNSIGNED NOT NULL,
`hair_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`gradient_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`facial_hair_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`eye_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`skin_tone` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`hair_style_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`gradient_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`facial_style_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`underwear` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`underwear_color` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`undershirt` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`socks` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`backbag` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`jumpsuit_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`uplink_loc` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`features` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`custom_names` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`helmet_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preferred_ai_core_display` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preferred_security_department` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`joblessrole` TINYINT(4) UNSIGNED NOT NULL,
`job_preferences` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`all_quirks` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`equipped_gear` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`slot`, `ckey`) USING BTREE
) COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;



Expand Down Expand Up @@ -265,6 +269,7 @@ CREATE TABLE IF NOT EXISTS `SS13_messages` (
`timestamp` datetime NOT NULL,
`expire_timestamp` datetime DEFAULT NULL,
`severity` text,
`playtime` int(11) unsigned NULL DEFAULT NULL,
`server_name` varchar(32) DEFAULT NULL,
`server_ip` int(10) unsigned NOT NULL,
`server_port` smallint(5) unsigned NOT NULL,
Expand Down Expand Up @@ -400,46 +405,14 @@ CREATE TABLE IF NOT EXISTS `SS13_poll_vote` (

-- Dumping structure for table ss13tgdb.SS13_preferences
DROP TABLE IF EXISTS `SS13_preferences`;
CREATE TABLE IF NOT EXISTS `SS13_preferences` (
`ckey` varchar(32) NOT NULL,
`asaycolor` varchar(7) DEFAULT NULL,
`ooccolor` varchar(7) DEFAULT NULL,
`lastchangelog` varchar(50) DEFAULT NULL,
`ui_style` varchar(50) DEFAULT NULL,
`hotkeys` tinyint(3) unsigned DEFAULT NULL,
`tgui_fancy` tinyint(3) unsigned DEFAULT NULL,
`tgui_lock` tinyint(3) unsigned DEFAULT NULL,
`buttons_locked` tinyint(3) unsigned DEFAULT NULL,
`windowflashing` tinyint(3) unsigned DEFAULT NULL,
`default_slot` tinyint(3) unsigned DEFAULT NULL,
`toggles` smallint(5) unsigned DEFAULT NULL,
`chat_toggles` smallint(5) unsigned DEFAULT NULL,
`clientfps` smallint(5) unsigned DEFAULT NULL,
`parallax` tinyint(4) DEFAULT NULL,
`ambientocclusion` tinyint(3) unsigned DEFAULT NULL,
`auto_fit_viewport` tinyint(3) unsigned DEFAULT NULL,
`ghost_form` varchar(50) DEFAULT NULL,
`ghost_orbit` varchar(50) DEFAULT NULL,
`ghost_accs` tinyint(3) unsigned DEFAULT NULL,
`ghost_others` tinyint(3) unsigned DEFAULT NULL,
`menuoptions` json DEFAULT NULL,
`be_special` json DEFAULT NULL,
`crew_objectives` tinyint(3) unsigned DEFAULT NULL,
`pda_style` varchar(50) DEFAULT NULL,
`pda_color` varchar(7) DEFAULT NULL,
`key_bindings` json DEFAULT NULL,
`preferred_map` varchar(50) DEFAULT NULL,
`ghost_hud` tinyint(4) DEFAULT NULL,
`ignoring` json DEFAULT NULL,
`inquisitive_ghost` tinyint(4) unsigned DEFAULT NULL,
`uses_glasses_colour` tinyint(4) unsigned DEFAULT NULL,
`enable_tips` tinyint(4) unsigned DEFAULT NULL,
`tip_delay` mediumint(8) unsigned DEFAULT NULL,
PRIMARY KEY (`ckey`)
CREATE TABLE `SS13_preferences` (
`ckey` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preference_tag` INT(11) NOT NULL,
`preference_value` MEDIUMTEXT NULL COLLATE 'utf8mb4_general_ci',
UNIQUE INDEX `prefbinding` (`ckey`, `preference_tag`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



-- Dumping structure for table ss13tgdb.SS13_role_time
DROP TABLE IF EXISTS `SS13_role_time`;
CREATE TABLE IF NOT EXISTS `SS13_role_time` (
Expand Down Expand Up @@ -482,7 +455,7 @@ CREATE TABLE IF NOT EXISTS `SS13_schema_revision` (
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`major`,`minor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (5, 8);
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (6, 1);



Expand Down Expand Up @@ -570,6 +543,9 @@ CREATE TABLE IF NOT EXISTS `SS13_achievement_metadata` (
) ENGINE=InnoDB;





/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
67 changes: 64 additions & 3 deletions SQL/database_changelog.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,74 @@
Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255.

The latest database version is 5.9; The query to update the schema revision table is:
The latest database version is 6.1; The query to update the schema revision table is:

INSERT INTO `schema_revision` (`major`, `minor`) VALUES (5, 10);
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (6, 1);
or
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (5, 10);
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (6, 1);

In any query remember to add a prefix to the table names if you use one.

Version 6.1, 29 December 2020, by Missfox, ported 20 August 2022 by ivanmixo
Modified table `messages`, adding column `playtime` to show the user's playtime when the note was created.

ALTER TABLE `messages` ADD `playtime` INT(11) UNSIGNED NULL DEFAULT(NULL) AFTER `severity`

-----------------------------------------------------

-----------------------------------------------------
Version 6.0, 23 August 2022 by AffectedArc07

Fully refactors the preferences system. You will want to run tools/preferences_importer

# 1. Clear out old tables

DROP TABLE IF EXISTS `SS13_characters`;
DROP TABLE IF EXISTS `SS13_preferences`;

# 2. Make new ones
CREATE TABLE IF NOT EXISTS `SS13_characters` (
`slot` INT(11) UNSIGNED NOT NULL,
`ckey` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`species` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`real_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`name_is_always_random` TINYINT(1) NOT NULL,
`body_is_always_random` TINYINT(1) NOT NULL,
`gender` VARCHAR(16) NOT NULL COLLATE 'utf8mb4_general_ci',
`age` TINYINT(3) UNSIGNED NOT NULL,
`hair_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`gradient_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`facial_hair_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`eye_color` VARCHAR(8) NOT NULL COLLATE 'utf8mb4_general_ci',
`skin_tone` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`hair_style_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`gradient_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`facial_style_name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`underwear` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`underwear_color` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`undershirt` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`socks` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`backbag` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`jumpsuit_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`uplink_loc` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`features` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`custom_names` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`helmet_style` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preferred_ai_core_display` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preferred_security_department` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
`joblessrole` TINYINT(4) UNSIGNED NOT NULL,
`job_preferences` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`all_quirks` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
`equipped_gear` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`slot`, `ckey`) USING BTREE
) COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;

CREATE TABLE `SS13_preferences` (
`ckey` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci',
`preference_tag` INT(11) NOT NULL,
`preference_value` MEDIUMTEXT NULL COLLATE 'utf8mb4_general_ci',
UNIQUE INDEX `prefbinding` (`ckey`, `preference_tag`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-----------------------------------------------------
Version 5.10, 28 December 2020 by Crossedfall
Added the server_name column to the feedback table
Expand Down
Loading

0 comments on commit 8e93dae

Please sign in to comment.