def on_event(id, event): global ITEM_SPACING if (event.GetType() == "ContainerInputEvent"): if (event.mContainerID == id): #audio = fge.GetAudio(id) #audio.Load("GameDeliver01.mp3", False) #audio.Play() #audio.Volume(0.1) playerHands = fge.GetCarrier(event.mPlayerID) heldItems = playerHands.GetItems() inputItems = heldItems[:event.mNumItems] dropEvent = fge.GetPlayerDropEvent() dropEvent.mPlayerID = event.mPlayerID fge.SendEvent(dropEvent, event.mPlayerID) blockContainer = fge.GetCarrier(id) for itemID in inputItems: itemBody = fge.GetBody(itemID) itemBody.mConstrainX = True itemBody.mConstrainY = True itemBody.mConstrainZ = True blockContainer.AddItem(itemID) itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = True itemTransform = fge.GetTransform(itemID) itemScale = itemTransform.GetLocalScale() itemTransform.SetLocalPosition(0.0, 0.5 + 0.5 * itemScale[1], 0.0)
def on_event(id, event): global ITEM_SPACING if (event.GetType() == "ContainerInputEvent"): if (event.mContainerID == id): audio = fge.GetAudio(id) audio.Load("GameDeliver01.mp3", False) audio.Play() audio.Volume(0.1) playerHands = fge.GetCarrier(event.mPlayerID) heldItems = playerHands.GetItems() inputItems = heldItems[:event.mNumItems] dropEvent = fge.GetPlayerDropEvent() dropEvent.mPlayerID = event.mPlayerID fge.SendEvent(dropEvent, event.mPlayerID) processorContainer = fge.GetCarrier(id) for itemID in inputItems: itemBody = fge.GetBody(itemID) itemBody.mConstrainX = True itemBody.mConstrainY = True itemBody.mConstrainZ = True containerLen = len(processorContainer.GetItems()) processorContainer.AddItem(itemID) itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = True itemTransform = fge.GetTransform(itemID) if (containerLen % 2) == 0: itemTransform.SetLocalPosition( 0, 1.25, math.ceil(containerLen / 2.0) * ITEM_SPACING) else: itemTransform.SetLocalPosition( 0, 1.25, -1 * math.ceil(containerLen / 2.0) * ITEM_SPACING)
def on_update(id, dt): processor = fge.GetProcessor(id) processorContainer = fge.GetCarrier(id) processorRecipes = processor.GetRecipes() for recipe in processorRecipes: recipeMap = recipe[1] recipeOutput = recipe[0] recipeMatch = True for resource in recipeMap: recipeMatch = recipeMatch and (len( processorContainer.GetItems(fge.DecodeResource(resource))) == recipeMap[resource]) if (recipeMatch): recipeMatchEvent = fge.GetRecipeMatchEvent() recipeMatchEvent.mProcessorID = id recipeMatchEvent.mOutput = recipeOutput fge.SendEvent(recipeMatchEvent, id) if (processor.IsWorking()): t = processor.GetCurrentProcessingTime( ) / processor.GetMaxProcessingTime() processorContainer = fge.GetCarrier(id) itemIDs = processorContainer.GetItems() for itemID in itemIDs: itemTransform = fge.GetTransform(itemID) itemPosition = itemTransform.GetLocalPosition() x = (t - 1.0) * itemPosition[0] y = (t - 1.0) * itemPosition[1] + 1.25 * t z = (t - 1.0) * itemPosition[2] itemTransform.SetLocalPosition(x, y, z)
def on_update(id, dt): ob = fge.GetObserver(id) resource = fge.DecodeResource(int(ob.GetValue("resource"))) cellContainer = fge.GetCarrier(id) cellItems = fge.GetCarrier(id).GetItems() for item in cellItems: if resource == fge.GetType(item): animator = fge.GetAnimator(item) if animator is not None: animator.ChangeState("Float")
def on_event(id, event): if (event.GetType() == "PlayerPickupEvent"): if (event.mPlayerID == id): audio = fge.GetAudio(id) audio.Load("cartoon_jump-002.wav") audio.Play() audio.Volume(0.1) itemID = event.mItemID playerHands = fge.GetCarrier(id) itemBody = fge.GetBody(itemID) if (itemBody is None): itemBody = fge.GetRuntimeBody(itemID) itemBody.mConstrainX = True itemBody.mConstrainY = True itemBody.mConstrainZ = True playerHands.AddItem(itemID) playerScale = fge.GetTransform(id).GetScale() itemCollider = fge.GetCollider(itemID) if (itemCollider is None): itemCollider = fge.GetRuntimeCollider(itemID) itemCollider.mIsTrigger = True itemTransform = fge.GetTransform(itemID) if (itemTransform is None): itemTransform = fge.GetRuntimeTransform(itemID) itemScale = itemTransform.GetScale() itemTransform.SetLocalPosition( 0.0, playerScale[1] * 0.5, 0.5 + (itemScale[2] / playerScale[2]) / 2.0)
def on_event(id, event): global opName global counter if (event.GetType() == "ContainerOutputEvent"): if (event.mContainerID == id): processorContainer = fge.GetCarrier(id) items = processorContainer.GetItems() items.reverse() outputItems = items[:event.mNumItems] for itemID in outputItems: itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = False itemBody = fge.GetBody(itemID) itemBody.mConstrainX = False itemBody.mConstrainY = False itemBody.mConstrainZ = False processorContainer.RemoveItem(itemID) pickupEvent = fge.GetPlayerPickupEvent() pickupEvent.mPlayerID = event.mPlayerID pickupEvent.mItemID = itemID fge.SendEvent(pickupEvent, event.mPlayerID) item = fge.GetType(itemID) if (item == opName and counter == 0): particleEmitter = fge.GetParticles(id) particleEmitter.SetRunning(True) counter += 1 if (event.GetType() == "RecipeMatchEvent"): if (event.mProcessorID == id): processor = fge.GetProcessor(id) opName = fge.DecodeResource(event.mOutput) counter = 0
def on_event(id, event): global GRID_ID if (event.GetType() == "SetCellEvent"): GRID_ID = event.mGridID if (event.GetType() == "ContainerOutputEvent"): if (event.mContainerID == id): cellContainer = fge.GetCarrier(id) items = cellContainer.GetItems() items.reverse() outputItems = items[:event.mNumItems] for itemID in outputItems: itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = False itemBody = fge.GetBody(itemID) itemBody.mConstrainX = False itemBody.mConstrainY = False itemBody.mConstrainZ = False animator = fge.GetAnimator(itemID) if animator is not None: animator.ChangeState("None") cellContainer.RemoveItem(itemID) pickupEvent = fge.GetPlayerPickupEvent() pickupEvent.mPlayerID = event.mPlayerID pickupEvent.mItemID = itemID fge.SendEvent(pickupEvent, event.mPlayerID) if len(cellContainer.GetItems()) == 0: cellUpdateEvent = fge.GetCellUpdateEvent() cellUpdateEvent.mMatch = False cellUpdateEvent.mCellID = id cellUpdateEvent.mPlayerID = event.mPlayerID fge.SendEvent(cellUpdateEvent, GRID_ID)
def on_event(id, event): #print(event.GetType()) if (event.GetType() == "SetCellEvent"): resource = event.mResource ob = fge.GetObserver(id) ob.SetValue("resource", resource) cellResource = fge.DecodeResource(resource) cellModel = fge.GetModel(id) if cellResource == "ProgrammingResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Programming") if cellResource == "ArtResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Art") if cellResource == "DesignResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Design") if cellResource == "PhysicsResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Physics") if cellResource == "AudioResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Audio") if cellResource == "AIResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "AI") if cellResource == "GraphicsResource": cellModel.mpMaterial = ResourceManager.GetInstance().LoadMaterial( "Graphics") if (event.GetType() == "CreateGameEvent"): cellContainer = fge.GetCarrier(id) items = cellContainer.GetItems() for itemID in items: cellContainer.RemoveItem(itemID) fge.DeleteEntity(itemID)
def on_event(id,event): global GRID_ID if(event.GetType() == "SetCellEvent"): GRID_ID = event.mGridID if(event.GetType() == "ContainerInputEvent"): if(event.mContainerID == id): playerHands = fge.GetCarrier(event.mPlayerID) heldItems = playerHands.GetItems() inputItems = heldItems[:event.mNumItems] dropEvent = fge.GetPlayerDropEvent() dropEvent.mPlayerID = event.mPlayerID fge.SendEvent(dropEvent, event.mPlayerID) cellContainer = fge.GetCarrier(id) cellTransform = fge.GetTransform(id) cellPosition = cellTransform.GetPosition() cellScale = cellTransform.GetScale() for itemID in inputItems: itemBody = fge.GetBody(itemID) itemBody.mConstrainX = True itemBody.mConstrainY = True itemBody.mConstrainZ = True containerLen = len(cellContainer.GetItems()) cellContainer.AddItem(itemID) itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = True itemTransform = fge.GetTransform(itemID) itemScale = itemTransform.GetScale() itemTransform.SetPosition(cellPosition[0], cellPosition[1] + 0.5 * itemScale[1] + 0.5 * cellScale[1], cellPosition[2]) ob = fge.GetObserver(id) resource = fge.DecodeResource(int(ob.GetValue("resource"))) if len(inputItems) > 0: if resource == fge.GetType(inputItems[0]): itemTransform = fge.GetTransform(inputItems[0]) itemScale = itemTransform.GetScale() itemTransform.SetPosition(cellPosition[0], cellPosition[1] + 0.5 * itemScale[1] + 0.5 * cellScale[1] + 1.0, cellPosition[2]) cellUpdateEvent = fge.GetCellUpdateEvent() cellUpdateEvent.mMatch = True cellUpdateEvent.mCellID = id cellUpdateEvent.mPlayerID = event.mPlayerID fge.SendEvent(cellUpdateEvent, GRID_ID) audio = fge.GetAudio(id) audio.Load("GameDeliver01.mp3", False) audio.Play() audio.Volume(0.1) EntityManager.GetInstance().ToggleEntityEnable(id, False)
def on_event(id,event): if(event.GetType() == "ContainerInputEvent"): if(event.mContainerID == id): playerHands = fge.GetCarrier(event.mPlayerID) heldItems = playerHands.GetItems() inputItems = heldItems[:event.mNumItems] dropEvent = fge.GetPlayerDropEvent() dropEvent.mPlayerID = event.mPlayerID fge.SendEvent(dropEvent, event.mPlayerID) container = fge.GetCarrier(id) for itemID in inputItems: itemBody = fge.GetBody(itemID) itemBody.mConstrainX = True itemBody.mConstrainY = True itemBody.mConstrainZ = True container.AddItem(itemID) itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = True itemTransform = fge.GetTransform(itemID) itemTransform.SetLocalPosition(0, -4, 0)
def on_update(id, dt): container = fge.GetCarrier(id) if(len(container.GetItems("FPS")) > 0): requestFilledEvent = fge.GetRequestFilledEvent() requestFilledEvent.mContainerID = id requestFilledEvent.mRequestUIID = REQUEST_UI_ID fge.BroadcastEvent(requestFilledEvent) containerOutputEvent = fge.GetContainerOutputEvent() containerOutputEvent.mContainerID = id containerOutputEvent.mPlayerID = -1 containerOutputEvent.mNumItems = 1 containerOutputEvent.mItemTypes = [ "FPS" ] fge.SendEvent(containerOutputEvent, id)
def on_update(id, dt): global RECIPE global OUTPUT processorContainer = fge.GetCarrier(id) recipeMatch = True for resource in RECIPE: recipeMatch = recipeMatch and (len( processorContainer.GetItems(resource)) == RECIPE[resource]) if (recipeMatch): recipeMatchEvent = fge.GetRecipeMatchEvent() recipeMatchEvent.mProcessorID = id tmpOutput = [] for resource in OUTPUT: tmpOutput.append((resource, OUTPUT[resource])) recipeMatchEvent.mOutputTypeQuantity = tmpOutput fge.SendEvent(recipeMatchEvent, id)
def on_event(id, event): if (event.GetType() == "PlayerDropEvent"): if (event.mPlayerID == id): playerHands = fge.GetCarrier(id) heldItems = playerHands.GetItems() for itemID in heldItems: audio = fge.GetAudio(id) audio.Load("cartoon_fall-002.wav") audio.Play() audio.Volume(0.1) itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = False itemBody = fge.GetBody(itemID) itemBody.mConstrainX = False itemBody.mConstrainY = False itemBody.mConstrainZ = False playerHands.Void()
def on_event(id, event): if (event.GetType() == "ContainerOutputEvent"): if (event.mContainerID == id): numItems = event.mNumItems itemTypes = event.mItemTypes container = fge.GetCarrier(id) for itemType in itemTypes: items = container.GetItems(itemType) outputItems = items[:numItems] numItems = numItems - len(outputItems) for item in items: fge.DeleteEntity(item) if (len(itemTypes) == 0): items = container.GetItems() outputItems = items[:numItems] for item in items: fge.DeleteEntity(item)
def on_event(id, event): if (event.GetType() == "ContainerOutputEvent"): if (event.mContainerID == id): blockContainer = fge.GetCarrier(id) items = blockContainer.GetItems() items.reverse() outputItems = items[:event.mNumItems] for itemID in outputItems: itemCollider = fge.GetCollider(itemID) itemCollider.mIsTrigger = False itemBody = fge.GetBody(itemID) itemBody.mConstrainX = False itemBody.mConstrainY = False itemBody.mConstrainZ = False blockContainer.RemoveItem(itemID) pickupEvent = fge.GetPlayerPickupEvent() pickupEvent.mPlayerID = event.mPlayerID pickupEvent.mItemID = itemID fge.SendEvent(pickupEvent, event.mPlayerID)
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)
def on_update(id, dt): ob = fge.GetObserver(id) gameInt = int(ob.GetValue("game")) container = fge.GetCarrier(id) if (len(container.GetItems("Game")) > 0): requestFilledEvent = fge.GetRequestFilledEvent() requestFilledEvent.mContainerID = id requestFilledEvent.mRequestedGame = gameInt fge.BroadcastEvent(requestFilledEvent) containerOutputEvent = fge.GetContainerOutputEvent() containerOutputEvent.mContainerID = id containerOutputEvent.mPlayerID = -1 containerOutputEvent.mNumItems = 1 containerOutputEvent.mItemTypes = ["Game"] fge.SendEvent(containerOutputEvent, id) particleEmitter = fge.GetParticles(id) particleEmitter.SetRunning(True) #containerPosition = fge.GetTransform(id).GetPosition() #particleEmitter.SetPosition(containerPosition[0], containerPosition[1], containerPosition[2]) audio = fge.GetAudio(id) audio.Load("ModuleDeliver01.mp3") audio.Play() audio.Volume(0.2)
def on_update(id, dt): con = fge.GetController(id) player = fge.GetPlayer(id) #update the player speed = 8.0 x = y = 0 rot_num = 0 rot = 0 particles = fge.GetParticles(id) if (con.IsPressed("up")): rot += 180 rot_num += 1 y -= speed elif (con.IsPressed("down")): rot += 0 rot_num += 1 y += speed if (con.IsPressed("left")): if (con.IsPressed("up")): rot += 270 else: rot += -90 rot_num += 1 x -= speed elif (con.IsPressed("right")): rot += 90 rot_num += 1 x += speed if (rot_num >= 1): player.Rotate(rot / rot_num) if (x != 0 or y != 0): playerTransform = fge.GetTransform(id) playerPos = playerTransform.GetPosition() playerScale = playerTransform.GetScale() #particles.SetPosition(playerPos[0], playerPos[1], playerPos[2]) particles.SetRunning(True) sprint = con.IsTriggered("Sprint") if (sprint): x = 2 * x y = 2 * y player.Move(x, y, sprint) else: particles.SetRunning(False) playerHands = fge.GetCarrier(id) heldItems = playerHands.GetItems() lenHeldItems = len(heldItems) pickupAreaIDs = fge.GetChildren(id, "SearchArea") for pickupAreaID in pickupAreaIDs: pickupArea = fge.GetAreaSearch(pickupAreaID) foundIDs = pickupArea.GetFound() for foundID in foundIDs: foundType = fge.GetType(foundID) if (lenHeldItems == 0): if (foundType == "Processor"): container = fge.GetCarrier(foundID) processor = fge.GetProcessor(foundID) if (len(container.GetItems()) > 0 and not processor.IsWorking()): if (con.IsTriggered("Interact")): containerOutputEvent = fge.GetContainerOutputEvent( ) containerOutputEvent.mPlayerID = id containerOutputEvent.mContainerID = foundID containerOutputEvent.mNumItems = 1 fge.SendEvent(containerOutputEvent, foundID) else: containerModel = fge.GetModel(foundID) if containerModel is not None: containerModel.Highlight() break if (foundType == "Block"): container = fge.GetCarrier(foundID) if (len(container.GetItems()) > 0): if (con.IsTriggered("Interact")): containerOutputEvent = fge.GetContainerOutputEvent( ) containerOutputEvent.mPlayerID = id containerOutputEvent.mContainerID = foundID containerOutputEvent.mNumItems = 1 fge.SendEvent(containerOutputEvent, foundID) else: containerModel = fge.GetModel(foundID) if containerModel is not None: containerModel.Highlight() break elif (foundType == "Container"): continue elif (foundType == "Generator"): inputType = "" if (con.IsTriggered("Interact")): inputType = "Interact" if (con.IsTriggered("Sprint")): inputType = "Sprint" if (con.IsTriggered("action3")): inputType = "action3" if (con.IsTriggered("action4")): inputType = "action4" if (inputType != ""): generatorInputEvent = fge.GetGeneratorInputEvent() generatorInputEvent.mGeneratorID = foundID generatorInputEvent.mPlayerID = id generatorInputEvent.mInputType = inputType fge.SendEvent(generatorInputEvent, foundID) else: highlightEvent = fge.GetHighlightEvent() fge.SendEvent(highlightEvent, foundID) itemModel = fge.GetModel(foundID) if itemModel is not None: itemModel.Highlight() break elif (foundType == "GridCell"): container = fge.GetCarrier(foundID) if (len(container.GetItems()) > 0): if (con.IsTriggered("Interact")): containerOutputEvent = fge.GetContainerOutputEvent( ) containerOutputEvent.mPlayerID = id containerOutputEvent.mContainerID = foundID containerOutputEvent.mNumItems = 1 fge.SendEvent(containerOutputEvent, foundID) else: containerModel = fge.GetModel(foundID) if containerModel is not None: containerModel.Highlight() break elif (not fge.HasParent(foundID) or fge.GetType(fge.GetParentID(foundID)) == "Platform"): if (con.IsTriggered("Interact")): pickupEvent = fge.GetPlayerPickupEvent() pickupEvent.mPlayerID = id pickupEvent.mItemID = foundID fge.SendEvent(pickupEvent, id) else: itemModel = fge.GetModel(foundID) if itemModel is not None: itemModel.Highlight() break else: if (fge.GetType(heldItems[0]) != "Game"): if (foundType == "Processor"): processor = fge.GetProcessor(foundID) processorContainter = fge.GetCarrier(foundID) if (processor.GetMaxInput() > len( processorContainter.GetItems())): if (con.IsTriggered("Interact")): containerInputEvent = fge.GetContainerInputEvent( ) containerInputEvent.mPlayerID = id containerInputEvent.mContainerID = foundID containerInputEvent.mNumItems = 1 fge.SendEvent(containerInputEvent, foundID) else: processorModel = fge.GetModel(foundID) if processorModel is not None: processorModel.Highlight() break if (foundType == "Block"): container = fge.GetCarrier(foundID) block = fge.GetBlock(foundID) if (1 > len(container.GetItems()) and block.CanInput()): if (con.IsTriggered("Interact")): containerInputEvent = fge.GetContainerInputEvent( ) containerInputEvent.mPlayerID = id containerInputEvent.mContainerID = foundID containerInputEvent.mNumItems = 1 fge.SendEvent(containerInputEvent, foundID) else: processorModel = fge.GetModel(foundID) if processorModel is not None: processorModel.Highlight() break if (foundType == "GridCell"): cellContainter = fge.GetCarrier(foundID) if (1 > len(cellContainter.GetItems())): if (con.IsTriggered("Interact")): containerInputEvent = fge.GetContainerInputEvent( ) containerInputEvent.mPlayerID = id containerInputEvent.mContainerID = foundID containerInputEvent.mNumItems = 1 fge.SendEvent(containerInputEvent, foundID) else: cellModel = fge.GetModel(foundID) if cellModel is not None: cellModel.Highlight() break else: if (foundType == "Container"): if (con.IsTriggered("Interact")): containerInputEvent = fge.GetContainerInputEvent() containerInputEvent.mPlayerID = id containerInputEvent.mContainerID = foundID containerInputEvent.mNumItems = 1 fge.SendEvent(containerInputEvent, foundID) else: processorModel = fge.GetModel(foundID) if processorModel is not None: processorModel.Highlight() break if (len(foundIDs) == 0 and lenHeldItems > 0 and fge.GetType(heldItems[0]) != "Game" and con.IsTriggered("Interact")): dropEvent = fge.GetPlayerDropEvent() dropEvent.mPlayerID = id fge.SendEvent(dropEvent, id) body = fge.GetBody(id) vel = body.GetVelocity() xV = vel[0] zV = vel[2]