def __init__(self, parent, control="RANDOM"): self.parent = parent if (control == "LUNA"): self.initluna() return if (control == "PHOBOS"): self.initphobos() return if (control == "DEIMOS"): self.initdeimos() return if (control == "IO"): self.initio() return if (control == "EUROPA"): self.initeuropa() return if (control == "GANYMEDE"): self.initganymede() return if (control == "CALLISTO"): self.initcallisto() return if (control == "TITAN"): self.inittitan() return if (control == "TRITON"): self.inittriton() return if (control == "CHARON"): self.initcharon() return self.index = random.randint( 0, 2147483647 ) #I want these to be indicies but here I can assure they're unique which is a start self.resources = [ random.randint(0, 255), random.randint(0, 255), random.randint(0, 255) ] self.size = random.lognormvariate(math.log(1.5), 0.3) self.culture = OnlineMarkov() for i in range(-1, int(self.size * 2 / 2)): cultureString = self.culture.randomString(int(self.size * 2 / 2)) #print(cultureString) self.culture.contribute(cultureString) self.radius = random.lognormvariate(math.log(parent.size * 2), 0.125) #print(self.radius) self.inclination = random.normalvariate(0, 15) self.longitudeAscendingNode = random.uniform(0, 360) self.trueAnomaly = random.uniform(0, 360) self.period = Planet.getPeriodFromRadius(self.radius, self.parent.size) self.rotationMatrix = Planet.eulerAngles2Matrix( self.inclination, self.longitudeAscendingNode) self.position = self.getPosition()
def initphobos(self): self.size = 2 self.radius = 10 self.resources = [64.0, 64.0, 64.0] self.culture = OnlineMarkov() for i in range(-1, int(self.size * 2 / 2)): cultureString = self.culture.randomString(int(self.size * 2 / 2)) #print(cultureString) self.culture.contribute(cultureString) self.trueAnomaly = 151 self.period = Planet.getPeriodFromRadius(self.radius, self.parent.size) self.inclination = 5 self.longitudeAscendingNode = 110 self.rotationMatrix = Planet.eulerAngles2Matrix( self.inclination, self.longitudeAscendingNode) self.position = self.getPosition()
def initcallisto(self): self.resources = [ random.randint(0, 255), random.randint(0, 255), random.randint(0, 255) ] self.size = 4 self.culture = OnlineMarkov() for i in range(-1, int(self.size * 2 / 2)): cultureString = self.culture.randomString(int(self.size * 2 / 2)) #print(cultureString) self.culture.contribute(cultureString) self.radius = 81 #print(self.radius) self.inclination = random.normalvariate(0, 15) self.longitudeAscendingNode = random.uniform(0, 360) self.trueAnomaly = random.uniform(0, 360) self.period = Planet.getPeriodFromRadius(self.radius, self.parent.size) self.rotationMatrix = Planet.eulerAngles2Matrix( self.inclination, self.longitudeAscendingNode) self.position = self.getPosition()