white-thirst/www/js/plugins/CP_Star_Passability_Fix.js
2025-01-07 13:09:58 -06:00

88 lines
2.9 KiB
JavaScript

/*:
* @plugindesc Allows ☆ tiles to use the "Passage (4 dir)" setting in the tilesets tab of the database.
* @author Neon Black - Version 1.0
*
* @help ☆ Passability Fix v1.0
*
* V1.0 - 8.13.2015
*
* This plugin allows the user to define passage settings on ☆ passability
* tiles, similar to how normal O passability is defined. This plugin works on
* its own without any need for settings. It overwrites a single function but
* should not interfere with any other plugins. Nonetheless it should be placed
* high in the plugin list.
*
* This work by Neon Black is licensed under a Creative Commons Attribution 4.0
* International License. To view a copy of this license, visit
* http://creativecommons.org/licenses/by/4.0/. Permissions beyond the scope of
* this license may be available at neonblack.moe/terms.
*/
/*:ja
* @plugindesc ★タイルに対して、4方向の通行指定が可能になります。
* @author Neon Black - Version 1.0
*
* @help ☆ Passability Fix v1.0
*
* V1.0 - 8.13.2015
*
* このプラグインは、★タイルに対しても、
* ○タイル同様の4方向の通行指定ができるようになるプラグインです。
* このプラグインは設定不要で、独立して動作します。
* 1つのファンクションを上書きしますが、他のプラグインには干渉しません。
* プラグインリストの中では上位に置いておく必要があります。
*
* ■ライセンスポリシー
* This work by Neon Black is licensed under a Creative Commons Attribution 4.0
* International License. To view a copy of this license, visit
* http://creativecommons.org/licenses/by/4.0/. Permissions beyond the scope of
* this license may be available at neonblack.moe/terms.
*/
//------
// The following lines are the actual core code of the plugin. While you are
// certainly invited to look, modifying it may result in undesirable results.
// Modify at your own risk!
//------
//------
// Imported and namespace
//------
var Imported = Imported || {};
Imported.CP_StarPassabilityFix = 1.0;
//------
// Alias functions
//------
//------
// Destructive functions list
/*
Game_Map.prototype.checkPassage()
*/
// The only modified function....
Game_Map.prototype.checkPassage = function (x, y, bit) {
var flags = this.tilesetFlags();
var tiles = this.allTiles(x, y);
for (var i = 0; i < tiles.length; i++) {
var flag = flags[tiles[i]];
if ((flag & 0x10) !== 0) {
// [*] No effect on passage
if ((flag & bit) === 0) continue;
if ((flag & bit) === bit) return false;
} else {
if ((flag & bit) === 0)
// [o] Passable
return true;
if ((flag & bit) === bit)
// [x] Impassable
return false;
}
}
return false;
};
//------
// End of plugin
//------