HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.
Pages: 1 2 3 [4]

Author Topic: Basic SpecOracle setup  (Read 18987 times)

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #45 on: Mar 26, 16, 11:30:38 AM »

Quote
1- Open the CLIENT DoM and create a new FIELD named allowIconInfoPanel (type = boolean)
    IF it does not exist already.
2- Create a new Class named IconInfoPanelInterface (Archetype = DATA)
3- Add the FIELD allowIconInfoPanel to the new class IconInfoPanelInterface

Yep, added that. The field showed after I hit save. I am wondering if the world needs to sleep after adding it to get it working, will check next time I go in.

Will add comments to the unfound fields/classes.
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #46 on: Mar 27, 16, 03:59:21 AM »

Once you can successfully get this to work to the point of creating/editing specs via the editor, I'll then go into SpecDerived Objects.

After that I'll show how WE did Icons, as there are alot of ways you could personally handle them.

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #47 on: Mar 28, 16, 08:43:47 PM »

Ok, looks like we are back to this again Previous post (page 3)

The node 0 seems to point at a GUI which might not have been created. In *Ability*SpecEditorMainPanelClassMethods
Code: [Select]
method GetIcon() as NodeRef of Class GUIControl
  return FindGUIControlByName(me, "infopanel.icon")
.

ADD:
changed "infopanel.icon" to "infopanel.iconid" and got a diff error

the method _SetIconId was not found on any of the classes on the node [class= GUITextInputBox]

This is because the "iconid" represents the GUITextInputBox. And that method is not in the textbox script.

Add2:
Also found a GUI error - inherited='GUI9slice' should be class='GUI9slice' in xml script *Ability*IconChooser

<createControlType class='GUI9Slice' type='IconChooserGUI' description='Base Window No Resize' name='IconChooserGUI' treePath='BuildingBlocks\Windows'>
« Last Edit: Mar 28, 16, 10:23:25 PM by Thazager »
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #48 on: Mar 28, 16, 10:41:33 PM »

The control name is icon.  defined in the xml as follows:

Quote
<itemIcon name="icon">
      <position x="210" y="72"/>
      <size x="38" y="43"/>
    </itemIcon>

Did you by chance use a name other than itemIcon for the default icon prototype?
If so you'd need to change this in the abilitySpecEditorMainPanel xml as well.

Quote
Also found a GUI error - inherited='GUI9slice' should be class='GUI9slice' in xml script *Ability*IconChooser
yes you're right, that should be class, replacing the "inherited" parameter.

The following is the setup for the itemIcon, havent posted it to the wiki yet, as Im going to restructure the tutorial
on there to be easier to follow through.

InfoPanel is created via the abilitySpecEditorMainPanel xml, its just a gui9slice so im sure it should be there
(can be sure by using ctrl + T and hover over the top panels and see what exists.)
The itemIcon should be created to the far left just below the spec name/description, and to the left of the icon chooser button.
It would almost have to be the icon itself not getting created I think.
Check that and let me know.

Next Create our Specific Icon type, This will reference the ItemIcon type as that is the
Icon Type i use for all icons in our game (thus the same scripts and icon types work in all windows
for all purposes).
 
However you can create a new type for various icons if you wish.
This code provided uses ItemIcon, if you wish to use (for example) AbilityIcon
then you will need to go through the XML and the scripts and change all references of
ItemIcon.




1- In the CLIENT DoM create a new Class called ItemIcon (Archetype = GUIControl)
2- Add YourAbrev_Icon(the base icon class you created) as a parent class to ItemIcon class
3- Create Field (if non existent) named beingDeleted (Type = boolean)
4- Add FIELD beingDeleted to ItemIcon Class

Save

5- Click Open Script and then Create Empty Script
6- Copy / paste the following code to new script

Again much of this script is commented out as it deals with the icon system itself and
inventory etc, and other actions taken when icons are clicked etc.
This I will try to deal with in another tutorial.
this script in particular can be found in HJREF if you wish to look further into it.
Some has been removed, some added (and all custom content for the most part removed as it
deals with many other custom systems not involved here)

Code: [Select]
//#define debug
//#define debugswap

method GetIconGridInfo() as Class xy
  iconSize as Class xy
  iconSize.x = 50 // SIZE X
  iconSize.y = 70  // SIZE Y
  return IconSize
.
method _GetIconTextures() as List of String
  textures as List of String
  //MyIconSheet.dds refers to the Icon texture atlas you downloaded/created
  //during the IconChooserGUI tutorial.
  add back "/gui/MyIconSheet.dds" to textures // 1
 
  return textures
.

method _GetIconGridInfo() as Class xy
  iconSize as Class xy
  // **********************************
  iconSize.x = 96 // SIZE X
  iconSize.y = 128  // SIZE Y
  return IconSize
.

method DestroyMySubject()
 
  var subject = me._GetIconSubject()
  if subject == None
    destroynode(me)
    return
  .
  me.BeingDeleted = true
  oracle as NodeRef of Class SpecOracle = subject.getMySpecOracle()
  oracle.requestSpecByKey(subject.GetSpecKey(), me)
.

method ConfirmDestroy()
  println("ConfirmDestroy called by " + SYSTEM.EXEC.CALLEDBYSCRIPT + ":" + SYSTEM.EXEC.CALLEDBYFUNCTION)
  // open a confirm dialogue
  var subject = me._GetIconSubject()
  if subject == None
    destroynode(me)
    return
  .
  me.BeingDeleted = true
  oracle as NodeRef of Class SpecOracle = subject.getMySpecOracle()
  oracle.requestSpecByKey(subject.GetSpecKey(), me)
  //  println("request spec " + SYSTEM.TIME.NOW)
.
method _OnIconDropped(icon as NodeRef of Class _GUIIcon)
  println("testing icon drop")
  mysubj as NodeRef = me._iconSubject
  othersubj as NodeRef = icon._iconSubject
 
 
  //var lastCntr = icon.IconLastContainer
  //where lastCntr
   
  //  is kindof inventoryIconContainer
  //    inv as NodeRef of Class HJInventory
  //    myroot as NodeRef = me.rootParent()
  //    if myroot != None
  //      where myroot
  //        is kindof HJCharacterEquipmentWindow
  //          inv = myroot.GetMyInventory()
  //        .
  //        is kindof HJCharacterInventoryWindow
  //          inv = myroot.GetMyInventory()
  //        .
  //        is kindof MerchantWindow
  //          inv = myroot.GetMyInventory()
   //       .
   //     .
  //    .
  //    //println(char)
  //    inv.RequestSwapItems(otherSubj, mysubj)
  //  .
  //.
.
//Krun: any info needed from the items Spec can be loaded here before the icon is created in inventory
method EventRaised(obsSubject as NodeRef, data as NodeRef)
 
  //Krun: here we get any Spec info we need for the item to update fields etc
  where subject
    is kindof Ability
      // println(subject)
      //println(spec)
    .
  .
.

method _SetIconAppearanceToDefault()
  #if debug
  println("_SetIconAppearanceToDefault()")
  #endif
  me.defaultStatePresentation.color.a = 1.0
  me.size.x = 48
  me.size.y = 64
  me.isInert = false
.

method _SetIconAppearanceToGhost()
  me.defaultStatePresentation.color.a = 0.5
  me.isInert = true
.

method _SetIconAppearanceToDefaultDragged()
  me.defaultStatePresentation.color.a = .50
  me.size.x = 48
  me.size.y = 64
.
method _SetIconAppearanceToDragging()
  me.defaultStatePresentation.color.a = .75
  me.size.x = 48
  me.size.y = 64
.
method SetLocked(isUnlocked as Boolean)
  //kruntemp commented here is Lock/unlock code
  //  lock as NodeRef of Class LockedIconInsert = FindGUIControlByName(me,"locked")
  //  if lock = None
  //    lock = CreateNodeFromPrototype("LockedIconInsert")
  //    lock.build = true
  //    lock.ignoreMouseEvents = true
  //    lock.name = "locked"
  //    lock.position.x = 0
  //    lock.position.y = 0
  //    lock.scale = .8
  //    add back lock to me.children
  //  .
  //  lock.setLockState(isUnlocked)
.
method SetCurrentStackLabel(size as Integer)
  sizeText as String = size
  if size = 0 or size = 1
    sizeText = ""
  .
  //lbl as NodeRef of Class GUILabel = FindGUIControlByName(me, "stack")
  //if lbl = None
  //  lbl = CreateNodeFromPrototype("GUILabel")
  //  lbl.build = true
  //  lbl.name = "stack"
  //  lbl.dockMode = BOTTOM
  //  lbl.scale = 1.2
  //  lbl.displayfont = GAMETEXT
  //  add back lbl to me.children
  //.
  //lbl.text = "{b:#0,0,0,1}" + sizeText + "{/}"
.
method SetCurrentChargesLabel(charges as Integer)
  //sizeText as String = charges
  //lbl as NodeRef of Class GUILabel = FindGUIControlByName(me, "charges")
  //if lbl = None
  //  lbl = CreateNodeFromPrototype("GUILabel")
  //  lbl.build = true
  //  lbl.name = "charges"
  //  lbl.dockMode = BOTTOM
  //  lbl.scale = 1.2
  //  lbl.justification = TOPRIGHT
  //  lbl.displayfont = GAMETEXT
  //  add back lbl to me.children
  //.
  //lbl.text = "{b:#0,0,0,1}" + sizeText + "{/}"
.
method _SetupIcon()
  //krun: code here for checking/updating an items info from Spec
  str as String
 
  var subj = me._iconSubject
  if subj != None
    where subj is kindof Item
     
      str = str + " " +subj.displayName
      str = str + "  " + subj.DisplayDescription
    .
  .
  //println("info set")
  me.tooltip = str
  parentClass::_SetupIcon()
.
method HE_onMouseDblClick(args references Class GUIMouseEvent)
  //Krun: Im disabling this for the merchant window for now
  //at some point we can re add it, and set it to buy or whatever.
  println("double click")
  myroot as NodeRef = me.rootParent()
  //if myroot is kindof MerchantWindow
  //  println("dbl click not available in merchant window yet")
    //return
  //.
 
  if args.leftButton
    //println("activate icon")
    //-------------------------
    // Double click left button
    //-------------------------
    me.ActivateIcon(args)
  .
.
method ActivateIcon(args references Class GUIMouseEvent)
  //fancy stuff here when icon activated
 
.

function Debug(msg as String)
  #if debug
  println(SYSTEM.EXEC.CALLEDBYFUNCTION + " (" + me + ") -> " + msg)
  #endif
.
method ItemIcon_IndicateOn()
  //these prototypes would need to be created/added for the tutorial
  //left as reference
  //kruntemp commented itemiconGlowpanel
  //c as NodeRef of Class ItemIconGlowPanel
  //c = CreateNodeFromPrototype("ItemIconGlowPanel")
  //c.build = true
  //add back c to me.children
  //c.ItemIconGlowPanel_StartGlowing()
.
method ItemIcon_IndicateOff()
  //kruntemp commented itemiconglowpanel
  //c as NodeRef of Class ItemIconGlowPanel
  //c = FindGUIControlByName(me, "ItemIconGlowPanel")
  //if c <> None
  //  c.ItemIconGlowPanel_StopGlowing()
  //  destroynode(c)
  //.
.
//method ItemIcon_GetIndicator() as NodeRef of Class GUIControl
//  return FindGUIControlByName(me, "ItemIconGlowPanel")
//.
method InventoryEventRaised(eventName as String, eventObject as NodeRef, data as String)
 
  when eventName
    is "stacksizeupdated"     
     
    .
    is "itemplacedinbackpack"
     
    .
  .
.
method HJIcon_SetDragApperanceOn()
 
.
method HJIcon_SetDragApperanceOff()
 
.


Compile and Submit

Now for the XML for the ItemIcon itself

in the Script editor create a New CLIENT XML called ItemIcon

Copy / Paste the following xml to your new file:

Where you see "MyIconAtlas.dds" below, replace that with the name of the icon texture atlas you
downloaded/created during the IconChooserGUI tutorial on the wiki HERE:

http://wiki.anvilofhonor.com/wiki/index.php/IconChooserGUI_Tutorial

Code: [Select]
<createControlType class='ItemIcon' type='itemIcon' description='base icon for items' treePath='' name="itemIcon" texture="\GUI\MyIconAtlas.dds" inheritDisabledState="false" inheritSelectedState="false" inheritHoveringState="false" owner="0" skipTextureAlphaTest="true" layer="game" _isIconSticky="true" allowIconInfoPanel="true">
  <size x="48" y="64"/>
  <maximumSize x="2048" y="2048"/>
  <defaultStatePresentation>
    <position x="96" y="133"/>
    <size x="98" y="126"/>
  </defaultStatePresentation>
  <selectedHoverStatePresentation>
    <size x="0" y="0"/>
  </selectedHoverStatePresentation>
</createControlType>

compile and submit.



« Last Edit: Mar 28, 16, 10:44:26 PM by ToY-Krun »
Logged

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #49 on: Mar 29, 16, 08:20:04 PM »

Partial fix (for me anyway). I removed the lines creating the blackout in the abilitySpecEditorMainPanel xml file. Multiple lines of xml code that only made it too hard to see GUI screen.

Code: [Select]
      <defaultStatePresentation>
        <color r="0" g="0" b="0"/>
      </defaultStatePresentation>
      <disabledStatePresentation>
        <color r="0" g="0" b="0"/>
      </disabledStatePresentation>
      <hoverStatePresentation>
        <color r="0" g="0" b="0"/>
      </hoverStatePresentation>
      <selectedStatePresentation>
        <color r="0" g="0" b="0"/>
      </selectedStatePresentation>
      <selectedDisabledStatePresentation>
        <color r="0" g="0" b="0"/>
      </selectedDisabledStatePresentation>

I also changed the size that the GUI would show on screen, so that it would all show up (800x600). There are 2 separate GUIs being made, which are not connected. When I selected the background pic, it popped to front (hiding other) and had all blank screen. I then clicked the close button, it closed and other was still there on screen (not connected). Since it was not connected, I am guessing/thinking it might not be able to place the "icon" in the GUI?



I might be missing a name change in there somewhere, to make them connect?
« Last Edit: Mar 29, 16, 08:46:00 PM by Thazager »
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #50 on: Mar 29, 16, 09:34:03 PM »

"we're going to Create a custom base window CLASS (Class ONLY) using a prefix of your choice...
to be used by the BaseIconChooserGUI (which we will also create), which in turn is used by our
ItemIconChooserGUI (which we will ALSO create)..."

I see the script for BaseIconChooserGUI, but not the xml file.

BaseIconChooserGUI

Open the CLIENT DoM and select the class BaseIconChooserGUI and click Open Script

Copy and paste the following code into your new script:

BaseIconChooserGUI Script

Compile and Save


ItemIconChooser XML

ItemIconChooser XML

Compile and Submit

ItemIconChooserGUIClassMethods Script

From the Client DoM editor select ItemIconChooserGUI class and click open script. Create an empty script, and copy/paste the following code into your new script:

ItemIconChooserGUI Script

Compile and Submit

And you're done with the IconChooser. For examples on how its used, see the Spec Editor Tutorial and its scripts

<createControlType inheritFrom='BaseIconChooser' class='ItemIconChooserGUI' type='ItemIconChooser' description='' treePath='GUI' name="ItemIconChooser">
</createControlType>
« Last Edit: Mar 29, 16, 09:38:40 PM by Thazager »
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #51 on: Mar 30, 16, 08:52:28 AM »

The main panel is designed for a minimum of 1024x768 the very minimum display size we have options for.  There is code removed from it which hides all other guis on screen while ite open, however i removed it as I dont have any way of knowing what guis another might have.  also something is probably still not set right.  Likely hitting a snag and not completing the window load if its still not loading the icon ( one of the first things it should load) which would halt alot of the processing of the rest of the panel.

Yeah the window is white/gray on black as you wouldnt have the fonts/textures used , I commented on that in the wiki , but its not much that you could use other than
a starting point to redesign your own.  The only reason i include it is to demonstrate the scrollable panels etc.


There is no custom xml for BaseIconChooser, it is a parent class for other GUIs (itemIcon/AbilityIcon/MacroIcon etc)
it inherits from a default control type and so doesn't have a separate xml, inheriting from it, automatically inherits its parent
gui control class as well as the custom fields added by BaseIconChooser.  So it has an xml, but no custom one needs created.
Make sense?

There was a link to it originally in the wiki but was removed.

The windows are connected, though not physically.
The one you see in the back is listening for specific changes and handles the entire storage/retrieval of the spec an its data.
BUT it shouldnt snap to front.
it snaps to front because something errored out in the creation of the main panel likely ( the no icon found to call _setIconID)

The main panel gui didnt close when you pressed close , also the same reason, it didnt finish loading that panel and so never called back to the
collection interface telling it it was finished.


let me take it a step at a time:

I'm assuming the window never loads successfully to begin with without errors?
(or does it load and then give error when a button is pressed?)


Try the following:

replace the SetIcon() method with the following:

Code: [Select]
method SetIcon(iconID as Integer)
  var icon = me.GetIcon()
  if icon = None
    Return
  .
  icon._SetIconID(iconID)
 
  var textures = icon._GetIconTextures()
  var iconSize = icon._GetIconGridInfo()
  //sets the appropriate icon texture from the texture map
  icon._SetIconTexture(textures, iconsize, iconID)
.


if there are no further errors at least that will narrow down the problem.
That would mean that the icon control is simply not being created for whatever reason.

if thats the case, double check spelling (and case as when using FindGUIControlByName() every word is case sensitive).
Then double check that the "itemIcon" prototype exists (also case sensitive)

Try opening the AbilitySpecEditorMainPanel in the GUIEditor and see if the icon appears there.
(should be just to the right of the choose icon button.) if so double check its name.

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #52 on: Mar 30, 16, 06:54:36 PM »

Found the miss-spelling of the class needed to make the 2 windows connect.

When a class inherits from another it can use the methods/functions of the parent class.
When a GUI inherits from another class, it take the base GUI as its initial starting point for making a GUI. Without the initial value, it has no defined shape and errors out.

I found it, missed it in the name mismatching.

add:
ERROR:System:GUIXMLChomper::CreateControlType attempted to create a control type "BaseIconChooser" which inherits from "_window" but its class "BaseIconChooserGUI" does not inherit from the baseClass "_GUIBaseWindow" of the inherit from prototype.

added the parent to class.
« Last Edit: Mar 30, 16, 08:02:30 PM by Thazager »
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #53 on: Mar 30, 16, 08:06:32 PM »

Window now pops up to show GUI selector.
Next up:

SCRIPT ERROR: In function ScriptError: Abstract Method GetIconChooserIconPrototype must be overridden by inherited classes.
Call trace:
  Script ItemIconChooserGUIClassMethods line 137 me[1000013634]
  Script ItemIconChooserGUIClassMethods line 6 me[1000013634]
starting method/function ONCONTROLBUILD
starting me[id=1000013634 class=ItemIconChooserGUI]

Code: [Select]
// lines 136 - 139
method GetIconChooserIconPrototype() as String
  ScriptError("Abstract Method " + SYSTEM.EXEC.THISFUNCTION + " must be overridden by inherited classes.")
  return "null"
.

// line 5 - 6
  // Create a temporary icon node, so we can access the Texture information that the class holds
  icon as NodeRef of Class GUIControl = CreateNodeFromPrototype(me.GetIconChooserIconPrototype())
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #54 on: Mar 31, 16, 12:13:34 PM »

hrm, that block of code doesnt exist in the ItemIconChooserGUIClassMethods, or shouldn't.

The second method in the script is :

Code: [Select]
method GetIconChooserIconPrototype() as String
  return "itemIcon"
.


http://wiki.anvilofhonor.com/wiki/index.php/ItemIconChooserGUI_Script

Try pasting that into your ItemIconchooserGUIClassMethods script.

Quote
ERROR:System:GUIXMLChomper::CreateControlType attempted to create a control type "BaseIconChooser" which inherits from "_window" but its class "BaseIconChooserGUI" does not inherit from the baseClass "_GUIBaseWindow" of the inherit from prototype.


Yeah thats included in the class setup steps for the BaseIconChooserGUI http://wiki.anvilofhonor.com/wiki/index.php/IconChooserGUI_Tutorial

Its not laid out nice and neat like i want it yet, with so much content to these two systems (plus leading into icon system itself) I wanted to get the
content situated, then determine how best to walk through it.  I think i'll wind up going with a linear layout with fewer page changes.


Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #55 on: Mar 31, 16, 08:40:49 PM »

Next error shows up when the window opens. It places the Graphic (picture) in upper left of main window, but not attached.

SCRIPT ERROR: Node 0 not found to call method ADDCONTROL
Time:03/31/2016 20:13:10
Call trace:
  Script ItemIconChooserGUIClassMethods line 86 me[1000005152]
  Script ItemIconChooserGUIClassMethods line 23 me[1000005152]
starting method/function ONCONTROLBUILD
starting me[id=1000005152 class=ItemIconChooserGUI]


The "iconPanel" can be opened in the GUI editor, so it looks ok. The mouse over with tooltips on, does not show a "Clientarea" nor a "flowlayout", so I believe that is where the next problem is.
It shows "default.itemIconChooserGUI_modalLayer.itemIconChooserGUI" with classes itemIconChooserGUI and _GUIModalDialog

Code: [Select]
// line 23
  me.LoadIconChooserTexture(drp._getDropDownBoxValue())


// line 44 - 45
  // Get the Flowlayout control and begin building the icons
  var flow = GetFlowlayout()


// line 74 - 75
      iconHolder as NodeRef of Class GUIControl = CreateNodeFromPrototype("iconPanel")
      iconHolder.build = true


// line 86
      flow.AddControl(iconHolder)


// line 170 - 172
function GetFlowlayout() as NodeRef of Class GUIFlowLayoutContainer
  return FindGUIControlByname(me.GetClientarea(), "flowlayout")
.


add:
In the BaseIconChooserGUI, the GUIFlowLayoutContainer is in the code, but does not show in the editor when opened.

  <set name='scrollable.clientarea'>
    <GUIFlowLayoutContainer  name='flowLayout' dockMode='TOP' vgap='0' hgap='0' autoheight='true' ignoreMouseEvents='true'/>
  </set>

I just manually added the flowLayout, and the textures show up.
« Last Edit: Mar 31, 16, 08:54:52 PM by Thazager »
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #56 on: Mar 31, 16, 09:54:04 PM »

flow layout is a special panel/class, I was thinking it was part of clean engine but it may not be, let me check on that.

And yeah, judging by the error the flow is returning null

Thazager

  • General Accounts
  • *
  • Posts: 1160
  • Never stop learning
    • View Profile
Re: Basic SpecOracle setup
« Reply #57 on: May 11, 16, 04:44:56 PM »

Adding a few things. (not sure if you fixed this on other site)

In SpecEditorMainPanelClassMethods, method SetIcon()

After
  icon._SetIconTexture(textures, iconsize, iconID)

add
  icon.hoverStatePresentation = icon.defaultStatePresentation   // in case hover picture shows main pic


//---------------------------------------------------------

In IconChooserGUIClassMethods, method LoadIconChooserTexture()

      iconHolder.size.x = iconSize.x
      iconHolder.size.y = iconSize.y

can be shortened to: (as both are class XY)

      iconHolder.size = iconSize


same for
      iconHolder.defaultStatePresentation.size.x = iconSize.x
      iconHolder.defaultStatePresentation.size.y = iconSize.y

to
      iconHolder.defaultStatePresentation.size = iconSize
Logged
Lead scripter for EO, Repop helper.
HSL Video tutorials:
https://community.heroengine.com/forums/index.php/topic,1719.msg36858.html#msg3685

ToY-Krun

  • General Accounts
  • *
  • Posts: 677
  • Support Volunteer
    • View Profile
Re: Basic SpecOracle setup
« Reply #58 on: May 11, 16, 07:38:44 PM »

thanks thaz, yeah i havent made the final edits yet, have been swamped here.
as soon as I get a chance I'll sort out the tutorial and finalize it.
Pages: 1 2 3 [4]