AIProjekt/soil.py

67 lines
1.8 KiB
Python
Raw Normal View History

from datetime import datetime
class Soil:
def __init__(self, x, y, ID):
super().__init__()
self._id = ID
self._x = x
self._y = y
self._plant = -1 #nowa gleba nie ma roślinki
self._dry = 0 #procent wysuszenia gleby, tworząc nową jest nawodniona w 100%
self._starttime = datetime.now()
def __del__(self):
self.plant_remove()
def __str__(self):
return f'{self._x}, {self._y}), Plant: {self._plant}'
# współrzędne pola
def get_coordinates(self):
return self._x, self._y
# id gleby
def get_id(self):
return self._id
# zasadzenie roślinki
def add_plant(self, plant):
if not self.have_plant():
plant.add_soil(self)
self._plant = plant
# zwraca czy w ziemi znajduje się roślinka
def have_plant(self):
return self._plant is not -1
# zwraca roślinkę znajdującą się w ziemii
def get_plant(self):
return self._soil
#sprawdza w ilu procentach ziemia jest sucha
def is_dry(self):
self.__drying()
if self._dry < 30:
return 'False'
elif 30 <= self._dry < 70:
return 'Medium'
else:
return 'True'
#metoda wysuszajaca ziemie. dodaje wysuszenie do ziemi, wywolywana w momencie sprawdzania czy ziemia jest sucha
def __drying(self):
checktime = datetime.now()
delta = checktime - self._starttime
a = delta //60
self._dry += a
self._starttime = checktime
self.__is_dry()
# usuwa roślinkę z ziemi i ją zwraca
def plant_remove(self):
if self.have_plant():
a = self.get_plant()
a.leave_soil()
self._plant = -1