<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="../global_types.xsd"/>
<xs:element name="housing_objects">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="jukebox" type="HousingJukeBox"/>
<xs:element name="moviejukebox" type="HousingMovieJukeBox"/>
<xs:element name="picture" type="HousingPicture"/>
<xs:element name="postbox" type="HousingPostbox"/>
<xs:element name="chair" type="HousingChair"/>
<xs:element name="storage" type="HousingStorage"/>
<xs:element name="npc" type="HousingNpc"/>
<xs:element name="move_item" type="HousingMoveableItem"/>
<xs:element name="use_item" type="HousingUseableItem"/>
<xs:element name="passive" type="HousingPassiveItem"/>
<xs:element name="emblem" type="HousingEmblem"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:simpleType name="PlaceArea">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="INTERIOR"/>
<xs:enumeration value="EXTERIOR"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PlaceLocation">
<xs:restriction base="xs:string">
<xs:enumeration value="FLOOR"/>
<xs:enumeration value="STACK"/>
<xs:enumeration value="WALL"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LimitType">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="COOKING"/>
<xs:enumeration value="POT"/>
<xs:enumeration value="OWNER_POT"/>
<xs:enumeration value="VISITOR_POT"/>
<xs:enumeration value="JUKEBOX"/>
<xs:enumeration value="STORAGE"/>
<xs:enumeration value="PICTURE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HousingCategory">
<xs:restriction base="xs:string">
<xs:enumeration value="BED"/>
<xs:enumeration value="BOOK"/>
<xs:enumeration value="CARPET"/>
<xs:enumeration value="CHAIR"/>
<xs:enumeration value="CURTAIN"/>
<xs:enumeration value="DECORATION"/>
<xs:enumeration value="LIGHT"/>
<xs:enumeration value="NPC"/>
<xs:enumeration value="OUTLIGHT"/>
<xs:enumeration value="TABLE"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AbstractHouseObject" abstract="true">
<xs:attribute name="can_dye" type="xs:boolean" default="false" />
<xs:attribute name="talking_distance" type="xs:float" use="required"/>
<xs:attribute name="quality" type="itemQuality" use="required"/>
<xs:attribute name="category" type="HousingCategory" use="required"/>
<xs:attribute name="name_id" type="xs:int" use="required"/>
<xs:attribute name="id" type="xs:int" use="required"/>
</xs:complexType>
<xs:complexType name="PlaceableHouseObject" abstract="true">
<xs:complexContent>
<xs:extension base="AbstractHouseObject">
<xs:attribute default="0" name="use_days" type="xs:int" use="optional"/>
<xs:attribute default="NONE" name="limit" type="LimitType" use="optional"/>
<xs:attribute name="location" type="PlaceLocation"/>
<xs:attribute name="area" type="PlaceArea"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingNpc">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject">
<xs:attribute name="npc_id" type="xs:int" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingJukeBox">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingMovieJukeBox">
<xs:complexContent>
<xs:extension base="HousingJukeBox"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingPicture">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingPostbox">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingChair">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingMoveableItem">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingStorage">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject">
<xs:attribute name="warehouse_id" type="xs:int" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingUseableItem">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="action" type="UseItemAction"/>
</xs:sequence>
<xs:attribute name="owner" type="xs:boolean" use="required"/>
<xs:attribute name="cd" type="xs:int"/>
<xs:attribute name="delay" type="xs:int" use="required"/>
<xs:attribute default="0" name="use_count" type="xs:int" use="optional"/>
<xs:attribute name="required_item" type="xs:int" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingPassiveItem">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HousingEmblem">
<xs:complexContent>
<xs:extension base="PlaceableHouseObject">
<xs:attribute name="level" type="xs:int" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UseItemAction">
<xs:attribute name="final_reward_id" type="xs:int"/>
<xs:attribute name="reward_id" type="xs:int"/>
<xs:attribute name="remove_count" type="xs:int"/>
<xs:attribute name="check_type" type="xs:int"/>
</xs:complexType>
</xs:schema>