Inheritance: MonoBehaviour
Beispiel #1
0
    public static GenericDisplayedBioBrick Create(
        Transform parentTransform
        , Vector3 localPosition
        , string spriteName
        , BioBrick biobrick
        , Object externalPrefab = null
        )
    {
        string usedSpriteName = ((spriteName != null) && (spriteName != ""))?spriteName:getSpriteName(biobrick);
        string nullSpriteName = ((spriteName != null) && (spriteName != ""))?"":"(null)=>" + usedSpriteName;

        if (genericPrefab == null)
        {
            genericPrefab = Resources.Load(prefabURI);
        }
        Object prefabToUse = (externalPrefab == null)?genericPrefab:externalPrefab;

        Logger.Log("GenericDisplayedBioBrick::Create(parentTransform=" + parentTransform
                   + ", localPosition=" + localPosition
                   + ", spriteName=" + spriteName + nullSpriteName
                   + ", biobrick=" + biobrick
                   , Logger.Level.TRACE
                   );

        GenericDisplayedBioBrick result = (GenericDisplayedBioBrick)DisplayedElement.Create(
            parentTransform
            , localPosition
            , usedSpriteName
            , prefabToUse
            );

        Initialize(result, biobrick);

        return(result);
    }
        /// <inheritdoc />
        protected override Size MeasureOverride(Size constraint)
        {
            DisplayedElement.Measure(constraint);
            var desired = DisplayedElement.DesiredSize;

            Debug.WriteLine($"{"Measure".PadLeft(10, ' ')}: width:{desired.Width} height:{desired.Height}");
            return(desired);
        }
Beispiel #3
0
    public static DisplayedDevice Create(
        Transform parentTransform
        , Vector3 localPosition
        , string spriteName
        , Device device
        , DevicesDisplayer devicesDisplayer
        , DevicesDisplayer.DeviceType deviceType
        )
    {
        if (device == null)
        {
            Logger.Log("DisplayedDevice::Create device==null", Logger.Level.WARN);
        }

        string nullSpriteName = (spriteName != null)?"":"(null)";
        Object prefab;

        if (deviceType == DevicesDisplayer.DeviceType.Equiped)
        {
            Logger.Log("DisplayedDevice: will create Equiped " + equipedPrefabURI, Logger.Level.DEBUG);
            prefab = Resources.Load(equipedPrefabURI);
        }
        else if (deviceType == DevicesDisplayer.DeviceType.Inventoried)
        {
            Logger.Log("DisplayedDevice: will create Inventoried " + inventoriedPrefabURI, Logger.Level.DEBUG);
            prefab = Resources.Load(inventoriedPrefabURI);
        }
        else if (deviceType == DevicesDisplayer.DeviceType.Listed)
        {
            Logger.Log("DisplayedDevice: will create Listed " + listedPrefabURI, Logger.Level.DEBUG);
            prefab = Resources.Load(listedPrefabURI);
        }
        else
        {
            Logger.Log("DisplayedDevice::Create : unmanaged device type " + deviceType, Logger.Level.WARN);
            return(null);
        }

        Logger.Log("DisplayedDevice::Create(type=" + deviceType
                   + ", parentTransform=" + parentTransform
                   + ", localPosition=" + localPosition
                   + ", device=" + device
                   + ", devicesDisplayer=" + devicesDisplayer
                   + ", spriteName=" + spriteName + nullSpriteName
                   , Logger.Level.DEBUG
                   );

        DisplayedDevice result = (DisplayedDevice)DisplayedElement.Create(
            parentTransform
            , localPosition
            , getTextureName(device)
            , prefab
            );

        Initialize(result, device, devicesDisplayer, deviceType);

        return(result);
    }
Beispiel #4
0
    public static DisplayedElement Create(
        Transform parentTransform
        , Vector3 localPosition
        , string spriteName
        , Object prefab
        )
    {
        string nullSpriteName = (spriteName != null)?"":"(null)";

        Logger.Log("DisplayedElement::Create("
                   + "parentTransform=" + parentTransform
                   + ", localPosition=" + localPosition
                   + ", spriteName=" + spriteName + nullSpriteName
                   + ", prefab=" + prefab
                   + ")"
                   , Logger.Level.INFO
                   );

        GameObject newElement = Instantiate(prefab, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity) as GameObject;

        Logger.Log("DisplayedElement::Create instantiated", Logger.Level.TRACE);

        newElement.transform.parent        = parentTransform;
        newElement.transform.localPosition = localPosition;
        newElement.transform.localScale    = new Vector3(1f, 1f, 0);
        Logger.Log("DisplayedElement::Create GetComponent<DisplayedElement>()", Logger.Level.TRACE);
        DisplayedElement script = newElement.GetComponent <DisplayedElement>();

        if (null == script)
        {
            //TODO remove hack
            Logger.Log("DisplayedElement::Create (null == script) 1 with name=" + newElement.name, Logger.Level.DEBUG);
            InventoryDevice inventoryDevice = newElement.GetComponent <InventoryDevice>();
            if (inventoryDevice != null)
            {
                Logger.Log("DisplayedElement::Create found inventory device", Logger.Level.DEBUG);
                script = inventoryDevice.inventoriedDisplayedDevice;
                if (script != null)
                {
                    Logger.Log("DisplayedElement::Create found inventory device script", Logger.Level.DEBUG);
                }
                else
                {
                    Logger.Log("DisplayedElement::Create failed to find inventory device script", Logger.Level.WARN);
                }
            }
        }

        script._id = ++_idCounter;
        Logger.Log("DisplayedElement::Create script._id = " + script._id, Logger.Level.TRACE);
        script._currentSpriteName = spriteName;
        script.setSprite(script._currentSpriteName);
        Logger.Log("DisplayedElement::Create script._currentSpriteName = " + script._currentSpriteName, Logger.Level.TRACE);
        Logger.Log("DisplayedDevice::Create ends", Logger.Level.TRACE);

        return(script);
    }
        /// <inheritdoc />
        protected override Size ArrangeOverride(Size measured)
        {
            var calculateSize     = CalculateSize(measured);
            var calculatePosition = CalculatePosition(measured);

            Debug.WriteLine($"{"Arrange".PadLeft(10, ' ')} ({Position.ToString().PadLeft(8, ' ')}): position:{calculatePosition.X:0}x{calculatePosition.Y:0} size:{calculateSize.Width:0}x{calculateSize.Height:0}");
            DisplayedElement.Arrange(new Rect(calculatePosition, calculateSize));
            return(measured);
        }