plantilla base para movimiento básico
This commit is contained in:
Robii Aragon
2026-02-05 05:07:55 -08:00
parent ed7b223c04
commit fd87a6ffd5
14441 changed files with 13711084 additions and 20 deletions

View File

@@ -0,0 +1,188 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class getObjectFromInventorySystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public string inventoryObjectName;
public bool useInfiniteObjects;
public bool checkInventoryManager = true;
[Space]
[Header ("Debug")]
[Space]
public bool showDebugPrint;
public int extraInventoryObjectAmount;
[Space]
[Header ("Events Settings")]
[Space]
public UnityEvent eventOnObjectFoundOnInventory;
public UnityEvent eventOnObjectNotFoundOnInventory;
public UnityEvent eventOnAmountAvailable;
public UnityEvent eventOnAmountNotAvailable;
public inventoryManager mainInventoryManager;
public void addExtraInventoryObjectAmount (int extraAmount)
{
extraInventoryObjectAmount += extraAmount;
if (extraInventoryObjectAmount < 0) {
extraInventoryObjectAmount = 0;
}
}
public void checkIfObjectFoundOnInventory ()
{
if (mainInventoryManager == null && checkInventoryManager) {
return;
}
int remainAmount = 0;
if (checkInventoryManager) {
remainAmount = mainInventoryManager.getInventoryObjectAmountByName (inventoryObjectName);
}
if (remainAmount < 0) {
remainAmount = 0;
}
if (useInfiniteObjects) {
remainAmount = 1;
}
remainAmount += extraInventoryObjectAmount;
if (remainAmount > 0) {
eventOnObjectFoundOnInventory.Invoke ();
if (showDebugPrint) {
print ("using event on object found");
}
} else {
eventOnObjectNotFoundOnInventory.Invoke ();
if (showDebugPrint) {
print ("using event on object not found");
}
}
}
public void useInventoryObject (int amountToUse)
{
if (mainInventoryManager == null && checkInventoryManager) {
return;
}
int remainAmount = 0;
if (checkInventoryManager) {
remainAmount = mainInventoryManager.getInventoryObjectAmountByName (inventoryObjectName);
}
if (remainAmount < 0) {
remainAmount = 0;
}
if (useInfiniteObjects) {
remainAmount = 1;
}
remainAmount += extraInventoryObjectAmount;
if (remainAmount >= amountToUse) {
if (checkInventoryManager) {
if (extraInventoryObjectAmount == 0) {
mainInventoryManager.removeObjectAmountFromInventoryByName (inventoryObjectName, amountToUse);
}
}
eventOnAmountAvailable.Invoke ();
if (showDebugPrint) {
print ("using event on amount available");
}
} else {
eventOnAmountNotAvailable.Invoke ();
if (showDebugPrint) {
print ("using event on amount not available");
}
}
}
public bool useInventoryObjectAndGetResult (int amountToUse)
{
if (mainInventoryManager == null && checkInventoryManager) {
return false;
}
int remainAmount = 0;
if (checkInventoryManager) {
remainAmount = mainInventoryManager.getInventoryObjectAmountByName (inventoryObjectName);
}
if (remainAmount < 0) {
remainAmount = 0;
}
if (useInfiniteObjects) {
remainAmount = 1;
}
remainAmount += extraInventoryObjectAmount;
if (remainAmount >= amountToUse) {
if (checkInventoryManager) {
if (extraInventoryObjectAmount == 0) {
mainInventoryManager.removeObjectAmountFromInventoryByName (inventoryObjectName, amountToUse);
}
}
eventOnAmountAvailable.Invoke ();
if (showDebugPrint) {
print ("using event on amount available");
}
return true;
} else {
eventOnAmountNotAvailable.Invoke ();
if (showDebugPrint) {
print ("using event on amount not available");
}
return false;
}
}
public void setCurrentPlayer (GameObject newPlayer)
{
if (newPlayer != null) {
playerComponentsManager currentPlayerComponentsManager = newPlayer.GetComponent<playerComponentsManager> ();
if (currentPlayerComponentsManager != null) {
mainInventoryManager = currentPlayerComponentsManager.getInventoryManager ();
}
}
}
public void setNewInventoryObjectName (string newName)
{
inventoryObjectName = newName;
}
}