Autochangelogs (#17152)

* Scripts ported

* Converted changelogs

* Fix

* Prettier

* Removes old unneeded save

* Removes very old changelogs
This commit is contained in:
Selis
2025-02-15 17:10:05 -05:00
committed by GitHub
parent f423f81e42
commit f7de6141b5
54 changed files with 678 additions and 11804 deletions
-3
View File
@@ -46,6 +46,3 @@
## Force tab indents on dm files
*.dm whitespace=indent-with-non-tab
# force changelog merging to use union
html/changelog.html merge=union
+17 -36
View File
@@ -1,43 +1,24 @@
name: Autochangelog
# Creates an entry in html/changelogs automatically, to eventually be compiled by compile_changelogs
name: Auto Changelog
on:
pull_request_target:
types: closed
types:
- closed
branches:
- master
env:
BASENAME: "vorestation"
permissions:
contents: write
jobs:
autochangelog:
name: Autochangelog
runs-on: ubuntu-22.04
auto_changelog:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true
steps:
- uses: /actions/checkout@v3
with:
ref: master
- name: Update repository to master
run: git pull "origin" master
- name: Ensure +x on CI directory
run: |
chmod -R +x ./tools/ci
- uses: actions/setup-python@v5
with:
python-version: '3.7'
- name: Generate Changelog
run: |
pip install pyyaml
python tools/GenerateChangelog/ss13_autochangelog.py \
html/changelogs \
${{ github.event.pull_request.number }} \
"${{ github.event.pull_request.user.login }}" \
"${{ github.event.pull_request.body }}"
python tools/GenerateChangelog/ss13_genchangelog.py \
html/changelog.html \
html/changelogs
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Automatic changelog generation for ${{ github.events.pull_request.number }}
branch: ${{ github.events.pull_request.base }}
commit_user_name: Autochangelog Bot
- name: Checkout
uses: actions/checkout@v4
- name: Run auto changelog
uses: actions/github-script@v7
with:
script: |
const { processAutoChangelog } = await import('${{ github.workspace }}/tools/pull_request_hooks/autoChangelog.js')
await processAutoChangelog({ github, context })
github-token: ${{ secrets.COMFY_ORANGE_PAT || secrets.GITHUB_TOKEN }}
+54
View File
@@ -0,0 +1,54 @@
name: Compile changelogs
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
compile:
name: "Compile changelogs"
runs-on: ubuntu-24.04
steps:
#- name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps"
# id: value_holder
# env:
# ENABLER_SECRET: ${{ secrets.ACTION_ENABLER }}
# run: |
# unset SECRET_EXISTS
# if [ -n "$ENABLER_SECRET" ]; then SECRET_EXISTS=true ; fi
# echo "ACTIONS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT
- name: "Setup python"
#if: steps.value_holder.outputs.ACTIONS_ENABLED
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: "Install deps"
#if: steps.value_holder.outputs.ACTIONS_ENABLED
run: |
python -m pip install --upgrade pip
python -m pip install pyyaml
sudo apt-get install dos2unix
- name: "Checkout"
#if: steps.value_holder.outputs.ACTIONS_ENABLED
uses: actions/checkout@v4
with:
fetch-depth: 25
persist-credentials: false
- name: "Compile"
#if: steps.value_holder.outputs.ACTIONS_ENABLED
run: |
python tools/ss13_genchangelog.py html/changelogs
- name: Commit
#if: steps.value_holder.outputs.ACTIONS_ENABLED
run: |
git config --local user.email "action@github.com"
git config --local user.name "Changelogs"
git pull origin master
git add html/changelogs
git commit -m "Automatic changelog compile [ci skip]" -a || true
- name: "Push"
#if: steps.value_holder.outputs.ACTIONS_ENABLED
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.COMFY_ORANGE_PAT || secrets.GITHUB_TOKEN }}
+2
View File
@@ -3,3 +3,5 @@
GLOBAL_REAL(config, /datum/controller/configuration) = new
GLOBAL_DATUM_INIT(revdata, /datum/getrev, new)
GLOBAL_VAR_INIT(changelog_hash, "")
+1
View File
@@ -0,0 +1 @@
GLOBAL_DATUM(changelog_tgui, /datum/changelog)
+32
View File
@@ -0,0 +1,32 @@
/datum/changelog
var/static/list/changelog_items = list()
/datum/changelog/tgui_state()
return GLOB.tgui_always_state
/datum/changelog/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if (!ui)
ui = new(user, src, "Changelog")
ui.open()
/datum/changelog/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
. = ..()
if(.)
return
if(action == "get_month")
var/datum/asset/changelog_item/changelog_item = changelog_items[params["date"]]
if (!changelog_item)
changelog_item = new /datum/asset/changelog_item(params["date"])
changelog_items[params["date"]] = changelog_item
return ui.send_asset(changelog_item)
/datum/changelog/tgui_static_data()
var/list/data = list( "dates" = list() )
var/regex/ymlRegex = regex(@"\.yml", "g")
for(var/archive_file in sortList(flist("html/changelogs/archive/")))
var/archive_date = ymlRegex.Replace(archive_file, "")
data["dates"] = list(archive_date) + data["dates"]
return data
+3 -1
View File
@@ -14,7 +14,9 @@
debug_log = start_log("[log_path]-debug.log")
//VOREStation Edit End
changelog_hash = md5('html/changelog.html') //used for telling if the changelog has changed recently
var/latest_changelog = file("[global.config.directory]/../html/changelogs/archive/" + time2text(world.timeofday, "YYYY-MM") + ".yml")
GLOB.changelog_hash = fexists(latest_changelog) ? md5(latest_changelog) : "" //for telling if the changelog has changed recently
to_world_log("Changelog Hash: '[GLOB.changelog_hash]' ([latest_changelog])")
if(byond_version < RECOMMENDED_VERSION)
to_world_log("Your server's byond version does not meet the recommended requirements for this server. Please update BYOND")
-1
View File
@@ -32,7 +32,6 @@ var/href_logfile = null
// var/const/star_name = "Vir"
// var/const/starsys_name = "Vir"
var/const/game_version = "VOREStation"
var/changelog_hash = ""
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 300) //VOREStation Edit
var/round_progressing = 1
+1 -1
View File
@@ -534,7 +534,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
/datum/asset/changelog_item/New(date)
item_filename = sanitize_filename("[date].yml")
SSassets.transport.register_asset(item_filename, file("html/changelogs_ch/archive/" + item_filename))
SSassets.transport.register_asset(item_filename, file("html/changelogs/archive/" + item_filename))
/datum/asset/changelog_item/send(client)
if (!item_filename)
@@ -10,28 +10,6 @@
"no_image32.png" = 'html/images/no_image32.png',
)
/datum/asset/simple/changelog
assets = list(
"88x31.png" = 'html/88x31.png',
"bug-minus.png" = 'html/bug-minus.png',
"cross-circle.png" = 'html/cross-circle.png',
"hard-hat-exclamation.png" = 'html/hard-hat-exclamation.png',
"image-minus.png" = 'html/image-minus.png',
"image-plus.png" = 'html/image-plus.png',
"map-pencil.png" = 'html/map-pencil.png',
"music-minus.png" = 'html/music-minus.png',
"music-plus.png" = 'html/music-plus.png',
"tick-circle.png" = 'html/tick-circle.png',
"wrench-screwdriver.png" = 'html/wrench-screwdriver.png',
"spell-check.png" = 'html/spell-check.png',
"burn-exclamation.png" = 'html/burn-exclamation.png',
"chevron.png" = 'html/chevron.png',
"chevron-expand.png" = 'html/chevron-expand.png',
"changelog.css" = 'html/changelog.css',
"changelog.js" = 'html/changelog.js',
"changelog.html" = 'html/changelog.html'
)
/datum/asset/simple/arcade
assets = list(
"boss1.gif" = 'icons/UI_Icons/Arcade/boss1.gif',
@@ -0,0 +1,17 @@
/datum/asset/changelog_item
_abstract = /datum/asset/changelog_item
var/item_filename
/datum/asset/changelog_item/New(date)
item_filename = sanitize_filename("[date].yml")
register_asset(item_filename, file("html/changelogs/archive/" + item_filename))
/datum/asset/changelog_item/send(client)
if (!item_filename)
return
. = send_asset(client, item_filename)
/datum/asset/changelog_item/get_url_mappings()
if (!item_filename)
return
. = list("[item_filename]" = get_asset_url(item_filename))
+6
View File
@@ -330,6 +330,12 @@
void = new()
screen += void
if((prefs?.read_preference(/datum/preference/text/lastchangelog) != GLOB.changelog_hash) && isnewplayer(src.mob)) //bolds the changelog button on the interface so we know there are updates.
to_chat(src, span_info("You have unread updates in the changelog."))
winset(src, "rpane.changelog", "background-color=#eaeaea;font-style=bold")
if(CONFIG_GET(flag/aggressive_changelog))
src.changes()
if(CONFIG_GET(flag/paranoia_logging))
var/alert = FALSE //VOREStation Edit start.
if(isnum(player_age) && player_age == 0)
@@ -1,3 +1,5 @@
// Toggles
/// Whether or not to toggle ambient occlusion, the shadows around people
/datum/preference/toggle/ambient_occlusion
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
@@ -93,3 +95,14 @@
savefile_key = "obfuscate_job"
default_value = FALSE
savefile_identifier = PREFERENCE_PLAYER
// Text
/datum/preference/text/lastchangelog
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_key = "lastchangelog"
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/text/lastchangelog/is_accessible(datum/preferences/preferences)
..()
return FALSE
+7 -1
View File
@@ -483,7 +483,13 @@
/client/verb/changes()
set name = "Changelog"
set category = "OOC.Resources"
src << link("https://wiki.vore-station.net/Changelog")
if(!GLOB.changelog_tgui)
GLOB.changelog_tgui = new /datum/changelog()
GLOB.changelog_tgui.tgui_interact(usr)
if(prefs?.read_preference(/datum/preference/text/lastchangelog) != GLOB.changelog_hash)
prefs.write_preference_by_type(/datum/preference/text/lastchangelog, GLOB.changelog_hash)
/mob/verb/observe()
set name = "Observe"
+4 -4
View File
@@ -106,12 +106,10 @@
else
output += "<p><b><a href='byond://?src=\ref[src];open_station_news=1'>Show [using_map.station_name] News<br>(NEW!)</A></b></p>"
/* //TODO: Actually add the fukin changelog. We need it DESPERATELY but this isn't the PR for it.
if(client.prefs.lastchangelog == changelog_hash)
if(read_preference(/datum/preference/text/lastchangelog) == GLOB.changelog_hash)
output += "<p><a href='byond://?src=\ref[src];open_changelog=1'>Show Changelog</A><br><i>No Changes</i></p>"
else
output += "<p><b><a href='byond://?src=\ref[src];open_changelog=1'>Show Changelog</A><br>(NEW!)</b></p>"
*/
output += "</div>"
@@ -354,7 +352,9 @@
client.feedback_form = new(client)
if(href_list["open_changelog"])
src << link("https://wiki.vore-station.net/Changelog")
write_preference_directly(/datum/preference/text/lastchangelog, GLOB.changelog_hash)
client.changes()
return
/mob/new_player/proc/handle_server_news()
if(!client)
-5822
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,4 +0,0 @@
author: Cerebulon
delete-after: True
changes:
- soundadd: "Added button sounds to various machines."
-13
View File
@@ -1,13 +0,0 @@
author: KasparoVy
delete-after: True
changes:
- imageadd: Adds orange Teshari goggles, selectable in the loadout.
- imageadd: Adds blindfold & new white (recolorable) blindfold to loadout.
- imageadd: Adds species-fitted Teshari ring sprites.
- imageadd: Adds species-fitted Teshari hudpatches & white blindfold.
- imageadd: Adds full selection of Teshari belted cloaks.
- imageadd: Adds full selection of non-job Teshari hooded cloaks.
- rscadd: Adds a bunch of Teshari worksuits (sprites already existed).
- imageadd: Adds some species-fitted Teshari jacket accessories (tan, charcoal, navy, burgundy, checkered).
- tweak: Updates all Teshari undercoats and cloaks with new sprites from downstreams.
- bugfix: Fixes Teshari captain glove sprites.
-37
View File
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: MoondancerPony
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Food will no longer erroneously have double the nutriment it's supposed to."
- bugfix: "Fixed a lot of invalid food nutriment tastes and spruced up some old ones."
-36
View File
@@ -1,36 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: MoondancerPony
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- experiment: "Hopefully made cooking recipe selection/calculation much faster on the backend."
-37
View File
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: MoondancerPony
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Foods will no longer have improper grammar and capitalisation when eaten with utensils."
- tweak: "Refactors utensils to use weakrefs rather than stored strings; also does a bunch of code cleanup."
@@ -1,4 +0,0 @@
author: Mechoid
delete-after: True
changes:
- rscadd: "Added system for exosuit over-encumbrance. Combat mechs and Ripleys have higher than default."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Fixed some objects giving duplicate results when an analyzer was used on them"
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Fixed borosilicate glass not producing shards in most situations."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Cooking a mouse into a mouseburger now uses up the mouse."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Fixed omni filters reacting incorrectly to configuration changes that swap ports."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Blood from artifacts will no longer break the pathogenic isolator."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Fixed some mountain POIs sometimes overlapping in odd ways"
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- tweak: "If you try to put someone in one of their own slots using the stripping menu, now you will instead try to strip that slot."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- tweak: "The tesla energy ball will now eventually disappear if not kept charged with the particle accelerator"
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- rscadd: "The Tesla Generator is now available from cargo. Coils and grounding rods for it may be printed on the protolathe and autolathe, respectively."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "Fat (triglyceride) now tastes greasy instead of bitter."
@@ -1,4 +0,0 @@
author: Meghan-Rossi
delete-after: True
changes:
- bugfix: "If you place wall-mounted machines such as status displays on a window, they will no longer be hidden underneath the window."
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Poojawa
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- soundadd: "Added my fancy vore sounds."
- rscadd: "Porting of a few QoL Citadel changes to vore menu related to sounds."
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Poojawa
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Applies Feeding and Devourable prefs."
- bugfix: "Made VoreUI toggles a lot more clear of what mode they're in."
@@ -1,5 +0,0 @@
author: RunaDacino
delete-after: True
changes:
- rscadd: "Enabled research borgs equipped with 'exosuit gripper' to be able to replace internal exosuit parts like actuators, to upgrade or to repair"
@@ -1,4 +0,0 @@
author: Subber
delete-after: True
changes:
- rscadd: "Added two new antag augments to traitor uplink: armblade and handblade."
-4
View File
@@ -1,4 +0,0 @@
author: Woodrat
delete-after: True
changes:
- tweak: "Changes vote notification sound to that of World Server in order to help people realize there is a vote occurring."
-8
View File
@@ -1,8 +0,0 @@
author: Atermonera
delete-after: True
changes:
- tweak: "Stairs have been completely reworked, and now consist of multi-tile constructs built from lower, middle, and upper stair pieces, and an openspace in the floor."
- rscadd: "To go up and down stairs, simply step upon the lower/upper stair pieces, and you'll be moved automatically if the stairs are in working condition. Any grabbed or dragged items will be brought with you."
- rscadd: "If the lower stair piece is missing (or even if it's not), but the middle and upper sections are present, you can climb up the middle section by click-dragging from your character to the middle stair."
- rscadd: "If you step onto the open space, you will fall down the stairs. Teshari players, consider yourselves warned."
- rscadd: "Stairs remain unconstructable in-round (Doing so would also require a way to make openspaces), but there are spawners rooted on the middle stair (as with old stairs) that will create a completed stair and can be spawned in by admins/mappers."
-36
View File
@@ -1,36 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Cameron
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "psilocybin now makes you hallucinate."
+29 -6
View File
@@ -8,21 +8,44 @@
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# maptweak
# spellcheck (typo fixes)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: N3X15
author: "
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
@@ -1,38 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Mechoid
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "Move Rig modules to more granular files"
- rscadd: "Add RIG components to robotics mechfab, plus incredibly basic belt-voidsuit RIG."
- rscadd: "Add Graphite, made by compressing coal, presently only used heavily in RIG components."
-37
View File
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Mechoid
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Animals can be butchered for organs and hide. Requires scraping (sharp), washing (water or washing machine), and then drying (bonfire or drying rack)."
- rscadd: "Organs can be butchered for meat, named \"[organ] meat\". Heart meat, liver meat, etc. Brains from player mobs cannot be butchered."
@@ -1,42 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Mechoid
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Hardpoint Actuator equipment for Exosuits, allowing them (And most effectively, Ripleys) to swap components on the fly, after a short delay."
- rscadd: "Exo Inflatables Deployer, allowing exosuits to pick up and deploy inflatables."
- rscadd: "Exo screwdriver, wirecutters, and welding laser, to help round-out the tool-based equipment types."
- rscadd: "Fire modifiers based on stacks added, to be used by the damage system tweaked above."
- tweak: "Incendiary exo weapons tweaked to conform with fire change."
- tweak: "Ignition effects from weapons changed from the old fire-system to the modifier fire system."
- bugfix: "Shocker now retaliates properly against melee."
@@ -1,6 +0,0 @@
author: Mechoid
delete-after: True
changes:
- rscadd: "Adds Wurmwoad, a suspiciously worm-like plant that produces pods of spice."
- rscadd: "Adds Wurmwoad to the service borg synthesizer."
- bugfix: "Service borgs can work with kitchenware again."
-38
View File
@@ -1,38 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Neerti
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "The 'cut' and 'pulse' buttons in the hacking interface now check all available hands for tools, instead of only the active hand."
- tweak: "The textual indicators at the bottom of the hacking window will now go bold when they change, until the next window refresh."
- tweak: "Hacking an Autolathe no longer requires you to hack it using the Autolathe's main window, but instead opens the hacking window like everything else."
@@ -1,10 +0,0 @@
author: schnayy
delete-after: True
changes:
- rscadd: "Adds the reagent yeast. It can be found in the kitchen vendor and in cargo kitchen supply crates."
- tweak: "Bread now calls for 5 units yeast instead of an egg, and baguettes and croissants call for 5 units yeast in addition to former ingredients."
- rscadd: "Corn oil added to the Dinnerware vendor and the Booze-o-Mat."
- imageadd: "Sprites for peanut butter, mayo, and yeast condiments."
- bugfix: "Boiled slime core now links to the proper sprite."
-37
View File
@@ -1,37 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Woodrat
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added new shutters ported from World."
- tweak: "Replaced lightswitch, request console, newscaster sprite with one from Virgo."
-36
View File
@@ -1,36 +0,0 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Woodrat
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "Minor adjustment of ID icons."
+342
View File
@@ -0,0 +1,342 @@
import dateformat from 'dateformat';
import yaml from 'js-yaml';
import { Component, Fragment } from 'react';
import { resolveAsset } from 'tgui/assets';
import { useBackend } from 'tgui/backend';
import { Window } from 'tgui/layouts';
import {
Box,
Button,
Dropdown,
Icon,
Section,
Stack,
Table,
} from 'tgui-core/components';
import { classes } from 'tgui-core/react';
const icons = {
add: { icon: 'check-circle', color: 'green' },
admin: { icon: 'user-shield', color: 'purple' },
balance: { icon: 'balance-scale-right', color: 'yellow' },
bugfix: { icon: 'bug', color: 'green' },
code_imp: { icon: 'code', color: 'green' },
config: { icon: 'cogs', color: 'purple' },
expansion: { icon: 'check-circle', color: 'green' },
experiment: { icon: 'radiation', color: 'yellow' },
image: { icon: 'image', color: 'green' },
imageadd: { icon: 'tg-image-plus', color: 'green' },
imagedel: { icon: 'tg-image-minus', color: 'red' },
qol: { icon: 'hand-holding-heart', color: 'green' },
refactor: { icon: 'tools', color: 'green' },
rscadd: { icon: 'check-circle', color: 'green' },
rscdel: { icon: 'times-circle', color: 'red' },
server: { icon: 'server', color: 'purple' },
sound: { icon: 'volume-high', color: 'green' },
soundadd: { icon: 'tg-sound-plus', color: 'green' },
sounddel: { icon: 'tg-sound-minus', color: 'red' },
spellcheck: { icon: 'spell-check', color: 'green' },
tgs: { icon: 'toolbox', color: 'purple' },
tweak: { icon: 'wrench', color: 'green' },
unknown: { icon: 'info-circle', color: 'label' },
wip: { icon: 'hammer', color: 'orange' },
};
type Data = { dates: string[] };
export class Changelog extends Component<
{},
{
data:
| string
| { date: string; authors: { name: string; changes: string[] } };
selectedDate: string;
selectedIndex: number;
}
> {
dateChoices: string[];
constructor(props) {
super(props);
this.state = {
data: 'Loading changelog data...',
selectedDate: '',
selectedIndex: 0,
};
this.dateChoices = [];
}
setData(data) {
this.setState({ data });
}
setSelectedDate(selectedDate) {
this.setState({ selectedDate });
}
setSelectedIndex(selectedIndex) {
this.setState({ selectedIndex });
}
getData = (date, attemptNumber = 1) => {
const { act } = useBackend();
const self = this;
const maxAttempts = 6;
if (attemptNumber > maxAttempts) {
return this.setData(
'Failed to load data after ' + maxAttempts + ' attempts',
);
}
act('get_month', { date });
fetch(resolveAsset(date + '.yml')).then(async (changelogData) => {
const result = await changelogData.text();
const errorRegex = /^Cannot find/;
if (errorRegex.test(result)) {
const timeout = 50 + attemptNumber * 50;
self.setData('Loading changelog data' + '.'.repeat(attemptNumber + 3));
setTimeout(() => {
self.getData(date, attemptNumber + 1);
}, timeout);
} else {
self.setData(yaml.load(result, { schema: yaml.CORE_SCHEMA }));
}
});
};
componentDidMount() {
const {
data: { dates = [] },
} = useBackend<Data>();
if (dates) {
dates.forEach((date) =>
this.dateChoices.push(dateformat(date, 'mmmm yyyy', true)),
);
this.setSelectedDate(this.dateChoices[0]);
this.getData(dates[0]);
}
}
render() {
const { data, selectedDate, selectedIndex } = this.state;
const {
data: { dates },
} = useBackend<Data>();
const { dateChoices } = this;
const dateDropdown = dateChoices.length > 0 && (
<Stack mb={1}>
<Stack.Item>
<Button
className="Changelog__Button"
disabled={selectedIndex === 0}
icon={'chevron-left'}
onClick={() => {
const index = selectedIndex - 1;
this.setData('Loading changelog data...');
this.setSelectedIndex(index);
this.setSelectedDate(dateChoices[index]);
window.scrollTo(
0,
document.body.scrollHeight ||
document.documentElement.scrollHeight,
);
return this.getData(dates[index]);
}}
/>
</Stack.Item>
<Stack.Item>
<Dropdown
displayText={selectedDate}
options={dateChoices}
onSelected={(value) => {
const index = dateChoices.indexOf(value);
this.setData('Loading changelog data...');
this.setSelectedIndex(index);
this.setSelectedDate(value);
window.scrollTo(
0,
document.body.scrollHeight ||
document.documentElement.scrollHeight,
);
return this.getData(dates[index]);
}}
selected={selectedDate}
width={'150px'}
/>
</Stack.Item>
<Stack.Item>
<Button
className="Changelog__Button"
disabled={selectedIndex === dateChoices.length - 1}
icon={'chevron-right'}
onClick={() => {
const index = selectedIndex + 1;
this.setData('Loading changelog data...');
this.setSelectedIndex(index);
this.setSelectedDate(dateChoices[index]);
window.scrollTo(
0,
document.body.scrollHeight ||
document.documentElement.scrollHeight,
);
return this.getData(dates[index]);
}}
/>
</Stack.Item>
</Stack>
);
const header = (
<Section>
<h1>VOREStation Changelist</h1>
<p>
{'The GitHub repository can be found '}
<a href="https://github.com/VOREStation/VOREStation">here</a>
{', recent GitHub contributors can be found '}
<a href="https://github.com/VOREStation/VOREStation/pulse/monthly">
here
</a>
.
</p>
<p>
{'Visit our wiki '}
<a href="https://wiki.vore-station.net/Main_Page">here</a>
{', check out our discord server '}
<a href="https://discord.gg/Zd5WMuq">here</a>.
</p>
{dateDropdown}
</Section>
);
const footer = (
<Section>
{dateDropdown}
<h3>VOREStation License</h3>
<p>
{'All code after '}
<a
href={
'https://github.com/VOREStation/VOREStation/commit/' +
'333c566b88108de218d882840e61928a9b759d8f'
}
>
commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at
4:38 PM PST
</a>
{' is licensed under '}
<a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU AGPL v3</a>
{'. All code before that commit is licensed under '}
<a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPL v3</a>
{', including tools unless their readme specifies otherwise. See '}
<a href="https://github.com/VOREStation/VOREStation/blob/master/LICENSE">
LICENSE
</a>
{' and '}
<a href="https://github.com/VOREStation/VOREStation/blob/master/LICENSE-GPL3.txt">
GPLv3.txt
</a>
{' for more details.'}
</p>
<p>
The TGS DMAPI API is licensed as a subproject under the MIT license.
{' See the footer of '}
<a
href={
'https://github.com/VOREStation/VOREStation/blob/master' +
'/code/__DEFINES/tgs.dm'
}
>
code/__DEFINES/tgs.dm
</a>
{' and '}
<a
href={
'https://github.com/VOREStation/VOREStation/blob/master' +
'/code/modules/tgs/LICENSE'
}
>
code/modules/tgs/LICENSE
</a>
{' for the MIT license.'}
</p>
<p>
{'All assets including icons and sound are under a '}
<a href="https://creativecommons.org/licenses/by-sa/3.0/">
Creative Commons 3.0 BY-SA license
</a>
{' unless otherwise indicated.'}
</p>
</Section>
);
const changes =
typeof data === 'object' &&
Object.keys(data).length > 0 &&
Object.entries(data)
.reverse()
.map(([date, authors]) => (
<Section key={date} title={dateformat(date, 'd mmmm yyyy', true)}>
<Box ml={3}>
{Object.entries(authors).map(([name, changes]) => (
<Fragment key={name}>
<h4>{name} changed:</h4>
<Box ml={3}>
<Table>
{(changes as string[]).map((change) => {
const changeType = Object.keys(change)[0];
return (
<Table.Row key={changeType + change[changeType]}>
<Table.Cell
className={classes([
'Changelog__Cell',
'Changelog__Cell--Icon',
])}
>
<Icon
color={
icons[changeType]
? icons[changeType].color
: icons['unknown'].color
}
name={
icons[changeType]
? icons[changeType].icon
: icons['unknown'].icon
}
/>
</Table.Cell>
<Table.Cell className="Changelog__Cell">
{change[changeType]}
</Table.Cell>
</Table.Row>
);
})}
</Table>
</Box>
</Fragment>
))}
</Box>
</Section>
));
return (
<Window title="Changelog" width={675} height={650}>
<Window.Content scrollable>
{header}
{changes}
{typeof data === 'string' && <p>{data}</p>}
{footer}
</Window.Content>
</Window>
);
}
}
+1 -1
View File
@@ -89,7 +89,7 @@ fi;
part "changelog"
#Checking for a change to html/changelogs/example.yml
md5sum -c - <<< "ea467b7b75774b41ecdf35e07091d96f *html/changelogs/example.yml"
md5sum -c - <<< "0c56937110d88f750a32d9075ddaab8b *html/changelogs/example.yml"
retVal=$?
if [ $retVal -ne 0 ]; then
echo -e "${RED}Do not modify the example.yml changelog file.${NC}"
+147
View File
@@ -0,0 +1,147 @@
'''
Usage:
$ python ss13_genchangelog.py html/changelogs/
ss13_genchangelog.py - Generate changelog from YAML.
Copyright 2013 Rob "N3X15" Nelson <nexis@7chan.org>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
'''
from __future__ import print_function
import yaml, os, glob, sys, re, time, argparse
from datetime import datetime, date, timedelta
from time import time
today = date.today()
fileDateFormat = "%Y-%m"
opt = argparse.ArgumentParser()
opt.add_argument('ymlDir', help='The directory of YAML changelogs we will use.')
args = opt.parse_args()
archiveDir = os.path.join(args.ymlDir, 'archive')
all_changelog_entries = {}
# Do not change the order, add to the bottom of the array if necessary
validPrefixes = [
'bugfix',
'wip',
'qol',
'soundadd',
'sounddel',
'rscadd',
'rscdel',
'imageadd',
'imagedel',
'maptweak',
'spellcheck',
'experiment',
'balance',
'code_imp',
'refactor',
'config',
'admin',
'server',
'sound',
'image',
]
def dictToTuples(inp):
return [(k, v) for k, v in inp.items()]
old_changelog_cache = os.path.join(args.ymlDir, '.all_changelog.yml')
if os.path.isfile(old_changelog_cache):
try:
print('Reading old changelog cache...')
data = {}
with open(old_changelog_cache,encoding='utf-8') as f:
(_, all_changelog_entries) = yaml.load_all(f, Loader=yaml.SafeLoader)
# Categorize changes by year and month
for _date in all_changelog_entries.keys():
ty = type(_date).__name__
formattedDate = _date.strftime(fileDateFormat)
if not formattedDate in data:
data[formattedDate] = {}
data[formattedDate][_date] = all_changelog_entries[_date]
# Write files with changes by year and month
for month in data.keys():
print("Writing " + month + ".yml...")
if not os.path.exists(archiveDir):
os.makedirs(archiveDir)
currentFile = os.path.join(archiveDir, month + '.yml')
with open(currentFile, 'w', encoding='utf-8') as f:
yaml.dump(data[month], f, default_flow_style=False)
# Remove the old changelog cache, as we won't use it anymore
print("Removing old changelog cache...")
os.remove(old_changelog_cache)
old_changelog_html = os.path.join(args.ymlDir, '..', 'changelog.html')
if os.path.isfile(old_changelog_html):
print("Removing old changelog html...")
os.remove(old_changelog_html)
except Exception as e:
print("Failed to read old changelog cache:")
print(e, file=sys.stderr)
print('Reading changelogs...')
for fileName in glob.glob(os.path.join(args.ymlDir, "*.yml")):
name, ext = os.path.splitext(os.path.basename(fileName))
if name.startswith('.'): continue
if name == 'example': continue
fileName = os.path.abspath(fileName)
formattedDate = today.strftime(fileDateFormat)
monthFile = os.path.join(archiveDir, formattedDate + '.yml')
print(' Reading {}...'.format(fileName))
cl = {}
with open(fileName, 'r',encoding='utf-8') as f:
cl = yaml.load(f, Loader=yaml.SafeLoader)
currentEntries = {}
if os.path.exists(monthFile):
with open(monthFile,'r',encoding='utf-8') as f:
currentEntries = yaml.load(f, Loader=yaml.SafeLoader)
if today not in currentEntries:
currentEntries[today] = {}
author_entries = currentEntries[today].get(cl['author'], [])
if len(cl['changes']):
new = 0
for change in cl['changes']:
if change not in author_entries:
(change_type, _) = dictToTuples(change)[0]
if change_type not in validPrefixes:
print(' {0}: Invalid prefix {1}'.format(fileName, change_type), file=sys.stderr)
sys.exit(1)
author_entries += [change]
new += 1
currentEntries[today][cl['author']] = author_entries
if new > 0:
print(' Added {0} new changelog entries.'.format(new))
if cl.get('delete-after', False):
if os.path.isfile(fileName):
print(' Deleting {0} (delete-after set)...'.format(fileName))
os.remove(fileName)
with open(monthFile, 'w', encoding='utf-8') as f:
yaml.dump(currentEntries, f, default_flow_style=False)
+2
View File
@@ -179,6 +179,7 @@
#include "code\_global_vars\logging.dm"
#include "code\_global_vars\misc.dm"
#include "code\_global_vars\mobs.dm"
#include "code\_global_vars\tgui.dm"
#include "code\_global_vars\time_vars.dm"
#include "code\_global_vars\typecache.dm"
#include "code\_global_vars\lists\mapping.dm"
@@ -459,6 +460,7 @@
#include "code\datums\autolathe\medical_vr.dm"
#include "code\datums\autolathe\tools.dm"
#include "code\datums\autolathe\tools_vr.dm"
#include "code\datums\changelog\changelog.dm"
#include "code\datums\components\_component.dm"
#include "code\datums\components\connect_mob_behalf.dm"
#include "code\datums\components\gargoyle.dm"