Source code for miniworldmaker.tokens.token_plugins.text_token.number_token
import miniworldmaker.tokens.token_plugins.text_token.text_token as text_token
from miniworldmaker.appearances import costume as costume_mod
[docs]
class Number(text_token.TextToken):
"""
A number token shows a Number.
You have to set the size of the token with self.size() manually so that
the complete text can be seen.
Args:
position: Top-Left position of Number.
number: The initial number
font-size: The size of the font (default: 80)
Examples:
Sets a new NumberToken to display the score.::
self.score = NumberToken(position = (0, 0) number=0)
Gets the number stored in the NumberToken::
number = self.score.get_number()
Sets the number stored in the NumberToken::
self.score.set_number(3)
"""
def __init__(self, position=(0, 0), number=0):
if type(position) == int or type(position) == float:
raise TypeError(f"Error on creating NumberToken. Position is int - Should be a position")
if type(number) not in [int, float]:
raise TypeError(f"Error on creating NumberToken. Number should be int or float")
self.number = 0
super().__init__(position)
self.set_number(number)
self.is_static = True
self.set_number(self.number)
[docs]
def set_value(self, number):
"""Sets the number
Args:
number: The number which should be displayed
Examples:
Sets the number stored in the NumberToken::
self.number_token.set_number(3)
"""
self.number = number
self.update_text()
set_number = set_value
[docs]
def get_value(self) -> int:
"""
Returns:
The current number
Examples:
Gets the number stored in the NumberToken::
number = self.number_token.get_number()
"""
return int(self.costume.text)
get_number = get_value
[docs]
def inc(self):
"""Increases the number by one
"""
self.number += 1
self.update_text()
[docs]
def update_text(self):
self.set_text(str(self.number))
self.costume.set_dirty("write_text", costume_mod.Costume.LOAD_NEW_IMAGE)
[docs]
def sub(self, value):
self.number -= value
self.update_text()
[docs]
def add(self, value):
self.number += value
self.update_text()
class NumberToken(Number):
"""Alias for legacy code"""
pass