mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
import tkinter as tk
|
|
from tkinter import ttk
|
|
|
|
bitflags = {
|
|
"R_BUILDMODE": 1<<0,
|
|
"R_ADMIN": 1<<1,
|
|
"R_BAN": 1<<2,
|
|
"R_FUN": 1<<3,
|
|
"R_SERVER": 1<<4,
|
|
"R_DEBUG": 1<<5,
|
|
"R_POSSESS": 1<<6,
|
|
"R_PERMISSIONS": 1<<7,
|
|
"R_STEALTH": 1<<8,
|
|
"R_REJUVINATE": 1<<9,
|
|
"R_VAREDIT": 1<<10,
|
|
"R_SOUNDS": 1<<11,
|
|
"R_SPAWN": 1<<12,
|
|
"R_MOD": 1<<13,
|
|
"R_EVENT": 1<<14,
|
|
"R_HOST": 1<<15,
|
|
"R_MENTOR": 1<<16,
|
|
"-------------": 0,
|
|
"EVERYTHING": (1<<17)-1
|
|
}
|
|
|
|
class BitflagCalculator:
|
|
def __init__(self, master):
|
|
self.master = master
|
|
master.title("Bitflag Calculator")
|
|
master.geometry("300x625")
|
|
|
|
self.checkboxes = {}
|
|
self.vars = {}
|
|
|
|
for i, (flag, value) in enumerate(bitflags.items()):
|
|
var = tk.IntVar()
|
|
cb = ttk.Checkbutton(master, text=flag, variable=var, command=self.update_result)
|
|
cb.grid(row=i, column=0, sticky="w", padx=10, pady=2)
|
|
self.checkboxes[flag] = cb
|
|
self.vars[flag] = var
|
|
|
|
self.result_label = ttk.Label(master, text="Result: 0")
|
|
self.result_label.grid(row=len(bitflags), column=0, pady=10)
|
|
|
|
self.copy_button = ttk.Button(master, text="Copy Result", command=self.copy_result)
|
|
self.copy_button.grid(row=len(bitflags)+1, column=0, pady=5)
|
|
|
|
self.clear_button = ttk.Button(master, text="Clear All", command=self.clear_all)
|
|
self.clear_button.grid(row=len(bitflags)+2, column=0, pady=5)
|
|
|
|
def update_result(self):
|
|
result = sum(value for flag, value in bitflags.items() if self.vars[flag].get())
|
|
self.result_label.config(text=f"Result: {result}")
|
|
|
|
def copy_result(self):
|
|
result = sum(value for flag, value in bitflags.items() if self.vars[flag].get())
|
|
self.master.clipboard_clear()
|
|
self.master.clipboard_append(str(result))
|
|
|
|
def clear_all(self):
|
|
for var in self.vars.values():
|
|
var.set(0)
|
|
self.update_result()
|
|
|
|
root = tk.Tk()
|
|
calculator = BitflagCalculator(root)
|
|
root.mainloop()
|