Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # Lune Item Grid - Size Upgrade Addon Script by Black Mage
- # For: RPG Maker VX Ace
- # (Commissioned by LucaBicono)
- #
- # This script is an addon for Lune Item Grid script by Raizen, which can be
- # found on the link below:
- # https://forums.rpgmakerweb.com/index.php?threads/lune-item-grid.37399/
- #
- # This script add a function to increase the size of the grid inventory after
- # the game is started. Do note that if you tried to decrease the grid size
- # instead, an error will occured because I have no plan to implement that.
- #
- # Use the following script call to change the grid size:
- # $game_party.party_grid_upgrade(x,y)
- #
- # License: CC-BY 3.0
- # Feel free to use this addon for any kind of project you might have as long as
- # you abide by the terms of the original Lune Item Grid script.
- #
- # Find more of my works at:
- # https://burningwizard.wordpress.com/
- #==============================================================================
- #==============================================================================
- # Changelog
- #==============================================================================
- # Version 1.0
- # - Initial version.
- #==============================================================================
- #------------------------------------------------------------------------------
- # * Beyond this is the sacred land of code. You need programming qualification
- # to delve deeper, or it'll cause many unnecessary problems. Proceed at your
- # own risk.
- #------------------------------------------------------------------------------
- #==============================================================================
- # Make the grid become upgradable
- #==============================================================================
- class Game_System
- attr_accessor :lune_grid_size
- alias b_grid_addon_init initialize
- def initialize
- b_grid_addon_init; @lune_grid_size = Lune_Item_Grid::Grid_Size
- end
- end
- class Game_Party < Game_Unit
- def party_grid_upgrade(x,y)
- old_size = $game_system.lune_grid_size
- old_party_grid = @party_grid.dup
- $game_system.lune_grid_size = [x,y]
- @party_grid = Array.new(x - 1)
- for n in 0..@party_grid.size
- @party_grid[n] = Array.new(y, 0)
- end
- old_party_grid.each_with_index do |obj1, i|
- obj1.each_with_index do |obj2, j|
- @party_grid[i][j] = obj2
- end
- end
- end
- end
- #==============================================================================
- #==============================================================================
- # Adjusting the script to follow new upgraded size.
- #==============================================================================
- class Game_Party < Game_Unit
- def remove_item(item)
- return false if item == nil
- if item.is_a?(RPG::Item)
- @item_type = 1
- elsif item.is_a?(RPG::Weapon)
- @item_type = 2
- else
- @item_type = 3
- end
- item_size = get_item_size(item)
- if @item_grid_x == -1
- max_x = $game_system.lune_grid_size[0] - 1
- max_y = $game_system.lune_grid_size[1] - 1
- item_found = false
- item_remove_x = -1
- item_remove_y = -1
- for y in 0..max_y
- for x in 0..max_x
- next unless @party_grid.is_a?(Array)
- if @party_grid[x][y][0] == @item_type && @party_grid[x][y][1] == item.id
- item_found = true
- item_remove_x = x
- item_remove_y = y
- end
- break if item_found
- end
- break if item_found
- end
- return unless item_found
- else
- item_remove_x = @item_grid_x
- item_remove_y = @item_grid_y
- end
- for x in item_remove_x..(item_size[0] + item_remove_x - 1)
- for y in item_remove_y..(item_size[1] + item_remove_y - 1)
- @party_grid[x][y] = 0
- end
- end
- end
- def check_grid_available(item, add = true)
- return false if item == nil
- max_x = $game_system.lune_grid_size[0] - 1
- max_y = $game_system.lune_grid_size[1] - 1
- item_size = get_item_size(item)
- space_for_item = false
- for y in 0..max_y
- for x in 0..max_x
- space_for_item = check_for_item_space(x, y, item_size[0], item_size[1])
- break if space_for_item
- end
- break if space_for_item
- end
- return false unless space_for_item
- return true unless add
- if item.is_a?(RPG::Item)
- @item_type = 1
- elsif item.is_a?(RPG::Weapon)
- @item_type = 2
- else
- @item_type = 3
- end
- for x3 in x..(item_size[0] + x - 1)
- for y3 in y..(item_size[1] + y - 1)
- @party_grid[x3][y3] = [@item_type, item.id, x, y, item_size[0], item_size[1]]
- end
- end
- return true
- end
- end
- class Scene_Item < Scene_ItemBase
- def cursor_left?
- @item_window.index % $game_system.lune_grid_size[0] < $game_system.lune_grid_size[0]/2
- end
- end
- class Window_Grid_ItemList < Window_ItemList
- def select_last
- inndex = @data.index($game_party.last_item.object) || 0
- if $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][2] + $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][3] * $game_system.lune_grid_size[0]
- select(inndex)
- return
- end
- select(@data.index($game_party.last_item.object) || 0)
- end
- def col_max
- if @size_item_move
- return $game_system.lune_grid_size[0] + 1 - (@size_item_move[0] / Item_Size[0])
- end
- return $game_system.lune_grid_size[0]
- end
- def item_width
- return @size_item_move[0] if @size_item_move != nil
- if $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]].is_a?(Array)
- $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][4] * Item_Size[0]
- else
- Item_Size[0]
- end
- end
- def item_height
- return @size_item_move[1] if @size_item_move != nil
- if $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]].is_a?(Array)
- $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][5] * Item_Size[1]
- else
- Item_Size[1]
- end
- end
- def item_max
- if @size_item_move
- return ($game_system.lune_grid_size[0] + 1 - (@size_item_move[0] / Item_Size[0]))*($game_system.lune_grid_size[1] + 1 - (@size_item_move[1] / Item_Size[1]))
- end
- $game_system.lune_grid_size[0]*$game_system.lune_grid_size[1]
- end
- def make_item_list
- for n in 0..$game_system.lune_grid_size[1] - 1
- for i in 0..$game_system.lune_grid_size[0] - 1
- if $game_party.party_grid[i][n] == 0 || $game_party.party_grid[i][n][2] != i || $game_party.party_grid[i][n][3] != n
- @data << nil
- else
- case $game_party.party_grid[i][n][0]
- when 1
- @data << $data_items[$game_party.party_grid[i][n][1]]
- when 2
- @data << $data_weapons[$game_party.party_grid[i][n][1]]
- when 3
- @data << $data_armors[$game_party.party_grid[i][n][1]]
- end
- end
- end
- end
- end
- def cursor_down(wrap = false)
- if @size_item_move
- super(true)
- return
- end
- correction = 1
- correction = $game_party.party_grid[index % $game_system.lune_grid_size[0]][index / $game_system.lune_grid_size[0]][5] if $game_party.party_grid[index % $game_system.lune_grid_size[0]][index / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = (index + col_max * correction) % item_max
- if $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][2] + $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][3] * $game_system.lune_grid_size[0]
- select(inndex)
- return
- end
- select((index + col_max * correction) % item_max)
- end
- def cursor_up(wrap = false)
- if @size_item_move
- super(true)
- return
- end
- inndex = (index - col_max + item_max) % item_max
- if $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][2] + $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][3] * $game_system.lune_grid_size[0]
- select(inndex)
- return
- end
- select((index - col_max) % item_max)
- end
- def cursor_right(wrap = false)
- if @size_item_move
- super(true)
- return
- end
- correction = 1
- correction = $game_party.party_grid[index % $game_system.lune_grid_size[0]][index / $game_system.lune_grid_size[0]][4] if $game_party.party_grid[index % $game_system.lune_grid_size[0]][index / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = (index + correction) % item_max
- if $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][2] + $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][3] * $game_system.lune_grid_size[0]
- select(inndex)
- return
- end
- select((index + correction) % item_max)
- end
- def cursor_left(wrap = false)
- if @size_item_move
- super(true)
- return
- end
- inndex = (index - 1 + item_max) % item_max
- if $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]].is_a?(Array)
- inndex = $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][2] + $game_party.party_grid[inndex % $game_system.lune_grid_size[0]][inndex / $game_system.lune_grid_size[0]][3] * $game_system.lune_grid_size[0]
- select(inndex)
- return
- end
- select((index - 1 + item_max) % item_max)
- end
- def selected_item
- return false unless $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]].is_a?(Array)
- case $game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][0]
- when 1
- return $data_items[$game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][1]]
- when 2
- return $data_weapons[$game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][1]]
- when 3
- return $data_armors[$game_party.party_grid[@index % $game_system.lune_grid_size[0]][@index / $game_system.lune_grid_size[0]][1]]
- end
- end
- end
- #==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement