def on_init(id): ob = fge.GetObserver(id) transform = fge.GetTransform(id) position = transform.GetPosition() ob.SetValue("resetX", position[0]) ob.SetValue("resetY", position[1]) ob.SetValue("resetZ", position[2])
def on_update(id, dt): global CHANGE_TIME global TOGGLE_TIME global OPEN_ROTATION global CLOSED_ROTATION ob = fge.GetObserver(id) changeTime = ob.GetValue("changeTime") changeTime = changeTime - dt * .001 isOpen = int(ob.GetValue("isOpen")) == 1 toggleTime = ob.GetValue("toggleTime") if (changeTime < 0.0): isOpen = not isOpen collider = fge.GetCollider(id) if (isOpen): collider.mIsTrigger = False else: collider.mIsTrigger = True ob.SetValue("isOpen", isOpen) toggleTime = 0.0 changeTime = CHANGE_TIME if (toggleTime >= 0.0): toggleTime = toggleTime + (1.0 / TOGGLE_TIME) * dt * .001 if (toggleTime > 1.0): toggleTime = 1.0 transform = fge.GetTransform(id) newRot = [] if (isOpen): newRot = fge.lerp3(CLOSED_ROTATION, OPEN_ROTATION, toggleTime) else: newRot = fge.lerp3(OPEN_ROTATION, CLOSED_ROTATION, toggleTime) transform.SetRotation(newRot[0], newRot[1], newRot[2]) if (toggleTime >= 1.0): toggleTime = -1.0 ob.SetValue("changeTime", changeTime) ob.SetValue("toggleTime", toggleTime)
def on_update(id, dt): global CURRENT_WAYPOINT global NEXT_WAYPOINT ob = fge.GetObserver(id) time = ob.GetValue("time") time = time - dt * .001 if ((time < 10.0) and (CURRENT_WAYPOINT != NEXT_WAYPOINT)): toggle_particles(True) if (time < 0.0): if (CURRENT_WAYPOINT != NEXT_WAYPOINT): toggle_particles(False) teleport(id) CURRENT_WAYPOINT = NEXT_WAYPOINT NEXT_WAYPOINT = get_next() waypoint = fge.GetGridWaypoint(CURRENT_WAYPOINT) if (waypoint is not None): time = RNG.GetInstance().GenerateInteger(waypoint.GetMinDuration(), waypoint.GetMaxDuration()) else: time = 0.0 ob.SetValue("time", time)
def on_init(id): global WAYPOINT_WEIGHTS global CURRENT_WAYPOINT global NEXT_WAYPOINT global WAYPOINT_IDS ob = fge.GetObserver(id) ob.SetValue("time", 0.0) WAYPOINT_IDS = fge.GetEntities("GridWaypoint", True) numWaypoints = len(WAYPOINT_IDS) WAYPOINT_WEIGHTS.clear() for i in range(numWaypoints): WAYPOINT_WEIGHTS.append(1.0) if (numWaypoints > 0): CURRENT_WAYPOINT = -1 CURRENT_WAYPOINT = get_next() NEXT_WAYPOINT = get_next() entityTransform = fge.GetTransform(id) currentPos = fge.GetTransform(CURRENT_WAYPOINT).GetPosition() entityTransform.SetPosition(currentPos[0], currentPos[1] + 0.01, currentPos[2]) waypoint = fge.GetGridWaypoint(CURRENT_WAYPOINT) if (waypoint is not None): ob.SetValue( "time", RNG.GetInstance().GenerateInteger(waypoint.GetMinDuration(), waypoint.GetMaxDuration()))
def on_init(id): global CHANGE_TIME ob = fge.GetObserver(id) ob.SetValue("changeTime", CHANGE_TIME) ob.SetValue("toggleTime", -1.0) transform = fge.GetTransform(id) collider = fge.GetCollider(id) collider.mIsTrigger = False ob.SetValue("isOpen", 1.0) if (transform.GetRotation()[0] < 0.0): ob.SetValue("isOpen", 0.0) collider.mIsTrigger = True
def on_update(id, dt): transform = fge.GetTransform(id) position = transform.GetPosition() if (position[1] < -10.0): carrier = fge.GetCarrier(id) if (carrier is not None): items = carrier.GetItems() carrier.Void() for item in items: if (fge.GetType(item) == "Game"): resetGridEvent = fge.GetResetGridEvent() fge.BroadcastEvent(resetGridEvent) fge.DeleteEntity(item) ob = fge.GetObserver(id) transform.SetPosition(ob.GetValue("resetX"), ob.GetValue("resetY"), ob.GetValue("resetZ")) transform.SetRotation(0.0, 0.0, 0.0) player = fge.GetPlayer(id) player.Rotate(0.0) body = fge.GetBody(id) if (body is not None): body.SetVelocity(0.0, 0.0, 0.0)