aboutsummaryrefslogtreecommitdiffstats
path: root/client/quake/option.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/quake/option.go')
-rw-r--r--client/quake/option.go87
1 files changed, 87 insertions, 0 deletions
diff --git a/client/quake/option.go b/client/quake/option.go
new file mode 100644
index 0000000..9c94fde
--- /dev/null
+++ b/client/quake/option.go
@@ -0,0 +1,87 @@
+package quake
+
+import "log"
+
+type Option func(*Client)
+
+func WithName(name string) Option {
+ return func(c *Client) {
+ c.name = name
+ }
+}
+
+func WithTeam(team string) Option {
+ return func(c *Client) {
+ c.team = team
+ }
+}
+
+func WithSpectator(isSpectator bool) Option {
+ return func(c *Client) {
+ c.isSpectator = isSpectator
+ }
+}
+
+func WithClientVersion(clientVersion string) Option {
+ return func(c *Client) {
+ c.clientVersion = clientVersion
+ }
+}
+
+func WithServerAddr(addrPort string) Option {
+ return func(c *Client) {
+ c.addrPort = addrPort
+ }
+}
+
+func WithPing(ping int16) Option {
+ return func(c *Client) {
+ c.ping = ping
+ }
+}
+
+func WithBottomColor(color byte) Option {
+ return func(c *Client) {
+ c.bottomColor = color
+ }
+}
+
+func WithTopColor(color byte) Option {
+ return func(c *Client) {
+ c.topColor = color
+ }
+}
+
+func WithFTEExtensions(extensions uint32) Option {
+ return func(c *Client) {
+ c.fteEnabled = true
+ c.fteExtensions = extensions
+ }
+}
+
+func WithFTE2Extensions(extensions uint32) Option {
+ return func(c *Client) {
+ c.fte2Enabled = true
+ c.fte2Extensions = extensions
+ }
+}
+
+func WithMVDExtensions(extensions uint32) Option {
+ return func(c *Client) {
+ c.mvdEnabled = true
+ c.mvdExtensions = extensions
+ }
+}
+
+func WithZQuakeExtensions(extensions uint32) Option {
+ return func(c *Client) {
+ c.zQuakeEnabled = true
+ c.zQuakeExtensions = extensions
+ }
+}
+
+func WithLogger(logger *log.Logger) Option {
+ return func(c *Client) {
+ c.logger = logger
+ }
+}