mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-23 09:52:23 +00:00
- NioTSO client isn't needed because we're using RayLib - Added FreeSO's API server to handle most backend operations
47 lines
No EOL
2.3 KiB
SQL
Executable file
47 lines
No EOL
2.3 KiB
SQL
Executable file
CREATE TABLE IF NOT EXISTS `fso_outfits` (
|
|
`outfit_id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`avatar_owner` int(10) unsigned DEFAULT NULL,
|
|
`object_owner` int(11) unsigned DEFAULT NULL,
|
|
`asset_id` bigint(20) unsigned DEFAULT NULL,
|
|
`sale_price` int(11) NOT NULL,
|
|
`purchase_price` int(11) NOT NULL,
|
|
`outfit_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'See VMPersonSuits',
|
|
`outfit_source` enum('cas','rack') NOT NULL DEFAULT 'cas',
|
|
PRIMARY KEY (`outfit_id`),
|
|
KEY `FK_fso_outfits_fso_avatars` (`avatar_owner`),
|
|
KEY `FK_fso_outfits_fso_objects` (`object_owner`),
|
|
CONSTRAINT `FK_fso_outfits_fso_avatars` FOREIGN KEY (`avatar_owner`) REFERENCES `fso_avatars` (`avatar_id`) ON DELETE CASCADE,
|
|
CONSTRAINT `FK_fso_outfits_fso_objects` FOREIGN KEY (`object_owner`) REFERENCES `fso_objects` (`object_id`) ON DELETE CASCADE
|
|
)
|
|
COLLATE='utf8_general_ci'
|
|
ENGINE=InnoDB;
|
|
|
|
CREATE TRIGGER `fso_outfits_before_insert` BEFORE INSERT ON `fso_outfits` FOR EACH ROW BEGIN
|
|
IF NEW.object_owner IS NOT NULL THEN
|
|
IF (SELECT COUNT(*) FROM fso_outfits o WHERE NEW.object_owner = o.object_owner) >= 20 THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'Cannot have more than 20 outfits in a rack.';
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
|
|
CREATE TRIGGER `fso_outfits_before_update` BEFORE UPDATE ON `fso_outfits` FOR EACH ROW BEGIN
|
|
IF NEW.avatar_owner IS NOT NULL THEN
|
|
IF (SELECT COUNT(*) FROM fso_outfits o WHERE NEW.avatar_owner = o.avatar_owner AND o.outfit_type = NEW.outfit_type) >= 5 THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'Cannot have more than 5 outfits per category in backpack.';
|
|
END IF;
|
|
END IF;
|
|
END;
|
|
|
|
-- Migrate existing daywear --
|
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|
SELECT avatar_id, body, 0, 0, 0, 'cas' FROM fso_avatars;
|
|
|
|
-- Give everyone default sleepswear --
|
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|
SELECT avatar_id, if(gender = 'male', CAST(0x5440000000D as UNSIGNED), CAST(0x5150000000D as UNSIGNED)), 0, 0, 5, 'cas' FROM fso_avatars;
|
|
|
|
-- Give everyone default swimwear --
|
|
INSERT INTO fso_outfits (avatar_owner, asset_id, sale_price, purchase_price, outfit_type, outfit_source)
|
|
SELECT avatar_id, if(gender = 'male', CAST(0x5470000000D as UNSIGNED), CAST(0x620000000D as UNSIGNED)), 0, 0, 2, 'cas' FROM fso_avatars; |