Skip to content

Commit 49679d2

Browse files
committed
Initial menu implementation
Just printing to player chat for now
0 parents  commit 49679d2

29 files changed

+1456
-0
lines changed

.editorconfig

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
indent_style = tab
6+
indent_size = 4
7+
insert_final_newline = true
8+
trim_trailing_whitespace = true
9+
end_of_line = lf
10+
11+
# Visual Studio XML Project Files
12+
[*.{csproj,vbproj,vcxproj.filters,proj,projitems,shproj}]
13+
indent_size = 2
14+
indent_style = space
15+
16+
# XML Configuration Files
17+
[*.{config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct}]
18+
indent_size = 2
19+
indent_style = space
20+
21+
# XML Files
22+
[*.{xml,xsd}]
23+
indent_size = 2
24+
indent_style = space
25+
26+
# YAML Files
27+
[*.{yml,yaml}]
28+
indent_size = 2
29+
indent_style = space
30+
31+
[*.cs]
32+
#### Naming styles ####
33+
34+
# Naming rules
35+
36+
dotnet_naming_rule.interface_should_be_begins_with_i.severity = error
37+
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
38+
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
39+
40+
dotnet_naming_rule.types_should_be_pascal_case.severity = error
41+
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
42+
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
43+
44+
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = error
45+
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
46+
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
47+
48+
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with_underscore.severity = error
49+
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with_underscore.symbols = private_or_internal_static_field
50+
dotnet_naming_rule.private_or_internal_static_field_should_be_begins_with_underscore.style = begins_with_underscore
51+
52+
dotnet_naming_rule.private_or_internal_const_field_should_be_pascal_case.severity = error
53+
dotnet_naming_rule.private_or_internal_const_field_should_be_pascal_case.symbols = private_or_internal_const_field
54+
dotnet_naming_rule.private_or_internal_const_field_should_be_pascal_case.style = pascal_case
55+
56+
dotnet_naming_rule.private_or_internal_readonly_field_should_be_pascal_case.severity = error
57+
dotnet_naming_rule.private_or_internal_readonly_field_should_be_pascal_case.symbols = private_or_internal_readonly_field
58+
dotnet_naming_rule.private_or_internal_readonly_field_should_be_pascal_case.style = pascal_case
59+
60+
# Symbol specifications
61+
62+
dotnet_naming_symbols.interface.applicable_kinds = interface
63+
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
64+
dotnet_naming_symbols.interface.required_modifiers =
65+
66+
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
67+
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
68+
dotnet_naming_symbols.types.required_modifiers =
69+
70+
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
71+
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
72+
dotnet_naming_symbols.non_field_members.required_modifiers =
73+
74+
dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field
75+
dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private, private_protected
76+
dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = static
77+
78+
dotnet_naming_symbols.private_or_internal_const_field.applicable_kinds = field
79+
dotnet_naming_symbols.private_or_internal_const_field.applicable_accessibilities = internal, private, private_protected
80+
dotnet_naming_symbols.private_or_internal_const_field.required_modifiers = const
81+
82+
dotnet_naming_symbols.private_or_internal_readonly_field.applicable_kinds = field
83+
dotnet_naming_symbols.private_or_internal_readonly_field.applicable_accessibilities = internal, private, private_protected
84+
dotnet_naming_symbols.private_or_internal_readonly_field.required_modifiers = readonly
85+
86+
# Naming styles
87+
88+
dotnet_naming_style.begins_with_i.required_prefix = I
89+
dotnet_naming_style.begins_with_i.required_suffix =
90+
dotnet_naming_style.begins_with_i.word_separator =
91+
dotnet_naming_style.begins_with_i.capitalization = pascal_case
92+
93+
dotnet_naming_style.pascal_case.required_prefix =
94+
dotnet_naming_style.pascal_case.required_suffix =
95+
dotnet_naming_style.pascal_case.word_separator =
96+
dotnet_naming_style.pascal_case.capitalization = pascal_case
97+
98+
dotnet_naming_style.pascal_case.required_prefix =
99+
dotnet_naming_style.pascal_case.required_suffix =
100+
dotnet_naming_style.pascal_case.word_separator =
101+
dotnet_naming_style.pascal_case.capitalization = pascal_case
102+
103+
dotnet_naming_style.begins_with_underscore.required_prefix = _
104+
dotnet_naming_style.begins_with_underscore.required_suffix =
105+
dotnet_naming_style.begins_with_underscore.word_separator =
106+
dotnet_naming_style.begins_with_underscore.capitalization = pascal_case
107+
108+
dotnet_style_operator_placement_when_wrapping = end_of_line
109+
dotnet_style_coalesce_expression = true:suggestion
110+
dotnet_style_null_propagation = true:suggestion
111+
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
112+
dotnet_style_prefer_auto_properties = true:silent
113+
dotnet_style_object_initializer = true:suggestion
114+
dotnet_style_collection_initializer = true:suggestion
115+
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
116+
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
117+
dotnet_style_prefer_conditional_expression_over_return = true:silent
118+
dotnet_style_explicit_tuple_names = true:suggestion
119+
dotnet_style_prefer_inferred_tuple_names = true:suggestion
120+
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
121+
dotnet_style_prefer_compound_assignment = true:suggestion
122+
dotnet_style_prefer_simplified_interpolation = true:suggestion
123+
dotnet_style_namespace_match_folder = true:suggestion
124+
dotnet_style_readonly_field = true:suggestion
125+
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
126+
dotnet_style_predefined_type_for_member_access = true:silent
127+
dotnet_style_require_accessibility_modifiers = for_non_interface_members:error
128+
dotnet_style_allow_multiple_blank_lines_experimental = true:silent
129+
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
130+
dotnet_code_quality_unused_parameters = all:suggestion
131+
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
132+
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
133+
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
134+
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
135+
dotnet_style_qualification_for_field = false:silent
136+
dotnet_style_qualification_for_property = false:silent
137+
dotnet_style_qualification_for_method = false:silent
138+
dotnet_style_qualification_for_event = false:silent
139+
140+
csharp_indent_labels = one_less_than_current
141+
csharp_using_directive_placement = outside_namespace:silent
142+
csharp_prefer_simple_using_statement = true:suggestion
143+
csharp_prefer_braces = true:silent
144+
csharp_style_namespace_declarations = block_scoped:silent
145+
csharp_style_prefer_method_group_conversion = true:silent
146+
csharp_style_prefer_top_level_statements = true:silent
147+
csharp_style_expression_bodied_methods = false:silent
148+
csharp_style_expression_bodied_constructors = false:silent
149+
csharp_style_expression_bodied_operators = false:silent
150+
csharp_style_expression_bodied_properties = true:silent
151+
csharp_style_expression_bodied_indexers = true:silent
152+
csharp_style_expression_bodied_accessors = true:silent
153+
csharp_style_expression_bodied_lambdas = true:silent
154+
csharp_style_expression_bodied_local_functions = when_on_single_line:silent
155+
csharp_style_throw_expression = true:suggestion
156+
csharp_style_prefer_null_check_over_type_check = true:suggestion
157+
csharp_prefer_simple_default_expression = true:suggestion
158+
csharp_style_prefer_local_over_anonymous_function = true:suggestion
159+
csharp_style_prefer_index_operator = true:suggestion
160+
csharp_style_prefer_range_operator = true:suggestion
161+
csharp_style_prefer_tuple_swap = true:suggestion
162+
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
163+
csharp_style_inlined_variable_declaration = true:suggestion
164+
csharp_style_prefer_utf8_string_literals = true:suggestion
165+
csharp_style_deconstructed_variable_declaration = true:suggestion
166+
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
167+
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
168+
csharp_prefer_static_local_function = true:suggestion
169+
csharp_style_prefer_readonly_struct = true:suggestion
170+
csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
171+
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
172+
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
173+
csharp_style_conditional_delegate_call = true:suggestion
174+
csharp_style_prefer_switch_expression = true:suggestion
175+
csharp_style_prefer_pattern_matching = true:suggestion
176+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
177+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
178+
csharp_style_prefer_not_pattern = true:suggestion
179+
csharp_style_prefer_extended_property_pattern = true:suggestion
180+
csharp_style_var_for_built_in_types = true:silent
181+
csharp_style_var_elsewhere = true:silent
182+
csharp_style_var_when_type_is_apparent = true:suggestion
183+
csharp_space_around_binary_operators = before_and_after
184+
185+
# TODO: disable and check these every so often
186+
# IDE0079: Remove unnecessary suppression
187+
dotnet_diagnostic.IDE0079.severity = silent

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto eol=lf

.github/continuous-delivery.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: CD
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- support/*
8+
paths-ignore:
9+
- 'docs/**'
10+
- 'README.md'
11+
- '.editorconfig'
12+
- '.gitattributes'
13+
- '.gitignore'
14+
- '.github/ISSUE_TEMPLATE/**'
15+
- '.github/pull_request_template.md'
16+
17+
defaults: *default-defaults
18+
19+
jobs:
20+
build:
21+
name: 'Continuous delivery'
22+
runs-on: ubuntu-24.04
23+
permissions:
24+
packages: write
25+
steps:
26+
- *checkout
27+
- *setup-dotnet
28+
- *setup-nuget
29+
- *restore
30+
- *build
31+
- *test
32+
- *pack
33+
- *build-css-package
34+
- *upload-artifacts

.github/continuous-integration.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- support/*
8+
paths-ignore:
9+
- 'docs/**'
10+
- 'README.md'
11+
- '.editorconfig'
12+
- '.gitattributes'
13+
- '.gitignore'
14+
- '.github/ISSUE_TEMPLATE/**'
15+
- '.github/pull_request_template.md'
16+
17+
defaults: *default-defaults
18+
19+
jobs:
20+
build:
21+
name: 'Continuous integration'
22+
runs-on: ubuntu-24.04
23+
steps:
24+
- *checkout
25+
- *setup-dotnet
26+
- *setup-nuget
27+
- *restore
28+
- *build
29+
- *test
30+
- *pack
31+
- *build-css-package
32+
- *upload-artifacts

.github/dependabot.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: nuget
4+
directory: "/"
5+
schedule:
6+
interval: weekly
7+
time: "11:00"
8+
open-pull-requests-limit: 10
9+
groups:
10+
all:
11+
patterns:
12+
- "*"
13+
update-types:
14+
- "minor"
15+
- "patch"
16+
ignore:
17+
- dependency-name: "*"
18+
update-types: ["version-update:semver-major"]

.github/deploy-release.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types:
6+
- published
7+
8+
defaults: *default-defaults
9+
10+
jobs:
11+
build:
12+
name: 'Deploy release'
13+
runs-on: ubuntu-24.04
14+
permissions:
15+
contents: write
16+
steps:
17+
- *checkout
18+
- *setup-dotnet
19+
- *setup-nuget
20+
- name: Setup Verlite
21+
run: |
22+
verlite_version="$(grep '"Verlite\.MsBuild"' Directory.Build.props | LC_ALL=en_US.utf8 grep -Po 'Version="\K[^"]+')"
23+
dotnet tool install --global Verlite.CLI --version "$verlite_version"
24+
verlite . --enable-shadow-repo --auto-fetch --verbosity verbatim
25+
- name: Verify tag
26+
run: |
27+
[[ "v$(verlite .)" == "${GITHUB_REF#refs/*/}" ]] # error out if the versions don't match
28+
- *restore
29+
- *build
30+
- *test
31+
- *pack
32+
- *build-css-package
33+
- *upload-artifacts
34+
- name: 'Upload release'
35+
run: |
36+
set -x
37+
tag="${GITHUB_REF#refs/*/}"
38+
files=()
39+
40+
IFS=$'\n';
41+
for asset in $(find ./artifacts -maxdepth 1 -name "*.zip"); do
42+
files+=("$asset")
43+
done
44+
45+
IFS=$'\n';
46+
for asset in $(find ./artifacts -name "*.nupkg"); do
47+
files+=("$asset")
48+
done
49+
50+
gh release upload "$tag" "${files[@]}"
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/regenerate-actions.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
set -eou pipefail
3+
4+
yaml --version > /dev/null || {
5+
echo "yaml not installed, install with:"
6+
echo " pip install ruamel.yaml.cmd"
7+
exit 1
8+
}
9+
10+
generate () {
11+
echo "generating $1"
12+
echo "# WARNING: This file is automatically generated by ../regenerate-actions.sh" > "workflows/$1"
13+
cat shared.yml "$1" \
14+
| yaml merge-expand - - \
15+
| perl -0777 -pe 's|(#<shared>.+?#<\/shared>)||gs' \
16+
| perl -0777 -pe 's|#<\/shared>\s*||gs' \
17+
>> "workflows/$1"
18+
}
19+
20+
generate continuous-integration.yml
21+
generate continuous-delivery.yml
22+
generate deploy-release.yml
23+
echo "done"

0 commit comments

Comments
 (0)