img



img

Furniture Display Framework


By: Erinthe
Addon | img 168




Description

___________________________________________________________________________________________________________________________

This mod is a framework that lets you designate specific furniture pieces as having "slots" in which you can place ordinary items for display purposes.

To place items on display furniture, click on a slot using left mouse button while holding the item to be placed.

To take an item off display furniture, click on a slot with an item using right mouse button.

You can change these buttons in the config file.

If a slot already has a different item (or the same item with a different quality) as the item being placed, they will be switched.

If a slot already has the same item of the same quality as the item being placed, it will be added up to the max stack for that item.

At the moment, only ordinary vanilla items (anything in ObjectInformation.json) can be placed on display (this should improve once the new SDV item framework comes out).


Mods that use this framework:

 

  • Table Settings
  • Wooden Shelves



Creating Display Furniture

To designate a furniture piece as having slots, use Content Patcher, e.g.:

{

    "Format": "1.23.0",

    "Changes": [

        {

            "Action": "EditData",

            "Target": "Mods/aedenthorn.FurnitureDisplayFramework/dictionary",

            "Entries": {

                "Luxury Table": {

                    "slots": [

                        {

                            "slotRect": {

                                "X": 1,

                                "Y": 6,

                                "Width": 9,

                                "Height": 9

                            },

                            "itemRect": {

                                "X": 2,

                                "Y": 6,

                                "Width": 9,

                                "Height": 9

                            }

                        },

                        {

                            "slotRect": {

                                "X": 11,

                                "Y": -4,

                                "Width": 10,

                                "Height": 10

                            },

                            "itemRect": {

                                "X": 11,

                                "Y": -3,

                                "Width": 9,

                                "Height": 9

                            }

                        },

                        {

                            "slotRect": {

                                "X": 11,

                                "Y": 15,

                                "Width": 10,

                                "Height": 10

                            },

                            "itemRect": {

                                "X": 11,

                                "Y": 14,

                                "Width": 9,

                                "Height": 9

                            }

                        },

                        {

                            "slotRect": {

                                "X": 21,

                                "Y": 6,

                                "Width": 9,

                                "Height": 9

                            },

                            "itemRect": {

                                "X": 20,

                                "Y": 6,

                                "Width": 9,

                                "Height": 9

                            }

                        }

                    ]

                }

            }

        }

    ]

}

 


This adds four slots to the Luxury Table.


Keys

The key must be the full name of the furniture if it has no rotations. If the furniture has multiple rotations, you must make configurations for each rotation using the following syntax:

:

E.g. for Winter Dining Table, you need entries for:

Winter Dining Table:0 and Winter Dining Table:2

Multiple tables or rotations can share the same configuration by including multiple names separated by commas, e.g.:

"Winter Dining Table:0,Festive Dining Table:0"


Values

Each slot has two rectangles:

 

  • slotRect: this designates the part of the furniture that is clickable
  • itemRect: this designates the part of the furniture to display the item on.


The rectangle sizes are based on the actual furniture texture size before scaling.

Rectangle positions are relative to the top left corner of the bounding box (the tiles taken up by the furniture), NOT the texture itself. So the luxury table bounding box is 32x32 (2 tiles by 2 tiles, each tile is 16x16 before scaling). That's why I used negative Y values in the example above for the top slot.




About Project

Created: September 6th 2023

Updated: September 6th 2023

Project ID: 70814

License: All Rights Reserved

__________________________________________

Game Versions:

1.01.03

1.01.03

1.01.03

1.01.03

1.01.03

__________________________________________

Flavors:

WoW Retail

__________________________________________

Categories

Companions

Battle

__________________________________________

Main File

Erinthe_Furniture Display Framework.zip
  • Release
  • September 6th 2023

    __________________________________________

    Recent File

    Erinthe_Furniture Display Framework.zip
  • Release
  • September 6th 2023

    __________________________________________

    Members

    img
    Erinthe
    Owner

    __________________________________________

    Report