Exemple #1
0
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])
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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()))
Exemple #5
0
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
Exemple #6
0
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)