Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # ■ 「SIMPLE STUPID」 Item Filter ver.0.60
- # by HBK61
- # Requires: N/A
- # Rewrites method:
- # Window_ItemList#make_item_list
- # Aliases method:
- # Window_ItemList#initialize
- # Scene_Item#start
- # Scene_Item#create_category_window
- # Scene_Item#create_item_window
- #
- #==============================================================================
- # CHANGELOG
- # - ver0.60 2013.07.1 Started the script & finished
- #==============================================================================
- # INTRODUCTION
- # - Simply stupidly add filtering function in Scene Item.
- #==============================================================================
- # INSTRUCTION
- # - Simply write "<category(space)=(space)my_category>" (without quotes)
- # in item's/weapon's/armor's note.
- # example:
- # <category = loot_items>
- #==============================================================================
- module HBK
- module ITEM_TAB
- #enable/disable
- ENABLED = true
- # use "_" for space & no upcase!
- CATEGORY =[
- :alchemy,
- :tradeable,
- :loots,
- :crap,
- ]
- HELP_TEXT = "←→:Category select\nA: Filter B:Back C:Decision"
- end #ITEM_TAB
- end #HBK
- if HBK::ITEM_TAB::ENABLED
- #==============================================================================
- # ■ Window_ItemCategory
- #==============================================================================
- class Window_ItemCategory < Window_HorzCommand
- def process_handling
- super
- return process_extend if handle?(:extend) && Input.trigger?(:A) && active
- end
- def process_extend
- Sound.play_ok
- Input.update
- deactivate
- call_handler(:extend)
- end
- def update_help
- @help_window.set_text(HBK::ITEM_TAB::HELP_TEXT)
- end
- end #Window_ItemCategory
- #==============================================================================
- # ■ Window_ItemList
- #==============================================================================
- class Window_ItemList < Window_Selectable
- alias hbk_ssit_initialize initialize
- def initialize(x, y, width, height)
- hbk_ssit_initialize(x, y, width, height)
- @filter = :none
- end
- def process_handling
- super
- return process_extend if handle?(:extend) && Input.trigger?(:A) && active
- end
- def process_extend
- Sound.play_ok
- Input.update
- deactivate
- call_handler(:extend)
- end
- def filter=(filter)
- return if @filter == filter
- @filter = filter
- refresh
- self.oy = 0
- end
- def filter?(item)
- return false if item.nil?
- if HBK::ITEM_TAB::CATEGORY.include?(@filter)
- item.note.include?("<category = " + @filter.to_s + ">")
- elsif @filter == :no_filter
- true
- else
- false
- end
- end
- #--------------------------------------------------------------------------
- # ● rewrite
- #--------------------------------------------------------------------------
- def make_item_list
- @data = $game_party.all_items.select {|item|
- ( include?(item) && filter?(item) )
- }
- @data.push(nil) if include?(nil)
- end
- end #Window_ItemList
- #==============================================================================
- # ■ Window_ItemOrganizer
- #==============================================================================
- class Window_ItemOrganizer < Window_Command
- def window_width
- return 180
- end
- def make_command_list
- add_command("Clear Filter", :no_filter)
- HBK::ITEM_TAB::CATEGORY.size.times{|i|
- sym = HBK::ITEM_TAB::CATEGORY[i]
- next if sym.nil?
- txt = sym.to_s.capitalize
- txt.gsub!(/_/) {" "}
- txt.gsub!(/(\s\w)/) {$&.upcase}
- add_command(txt, sym)
- }
- end
- end #Window_ItemOrganizer
- #==============================================================================
- # ■ Scene_Item
- #==============================================================================
- class Scene_Item
- alias hbk_ssit_start start
- def start
- hbk_ssit_start
- create_item_organizer_window
- end
- alias hbk_ssit_create_category_window create_category_window
- def create_category_window
- hbk_ssit_create_category_window
- @category_window.set_handler(:extend, method(:start_organizer))
- end
- alias hbk_ssit_create_item_window create_item_window
- def create_item_window
- hbk_ssit_create_item_window
- @item_window.set_handler(:extend, method(:start_organizer))
- @item_window.filter = :no_filter
- end
- def create_item_organizer_window
- @organizer_window = Window_ItemOrganizer.new(0,0)
- @organizer_window.hide
- @organizer_window.close
- @organizer_window.x = Graphics.width - @organizer_window.width
- @organizer_window.y = @help_window.height
- @organizer_window.z = @viewport.z + 1
- @organizer_window.set_handler(:ok, method(:on_organizer_ok))
- @organizer_window.set_handler(:cancel, method(:return_prev_window))
- end
- def start_organizer
- @item_window.unselect
- @category_window.deactivate
- @organizer_window.show
- @organizer_window.open
- @organizer_window.activate
- end
- def on_organizer_ok
- @item_window.filter = @organizer_window.current_symbol
- @organizer_window.close
- @organizer_window.deactivate
- @category_window.activate
- end
- def return_prev_window
- @organizer_window.close
- @organizer_window.deactivate
- @category_window.activate
- end
- end #Scene_Item
- end #if HBK::ITEM_TAB::ENABLED
Advertisement
Add Comment
Please, Sign In to add comment