-- adds options to the right click menu for growing body hair; only for testing purposes and active when playing in debug mode
--
--
-- by razab



-- WARNING: NOT FUNCTIONAL IN THE CURRENT MOD VERSION ANYMORE


local manageBody = require("ManageBody/RasBodyModManageBodyIG")
local changePenis = require("ManageBody/RasBodyModManageMovement")


-- changing the equipped penis model:
local function onChangeModel(worldobjects, player)

     local modData = player:getModData()
     local data = modData.RasBodyMod

     data.PlayerMode = "CrouchWall"
     changePenis.testStuff(player)

    print("Equip New pressed")

end

local function onDefaultModel(worldobjects, player)

     local modData = player:getModData()
     local data = modData.RasBodyMod

     data.PlayerMode = "Default"
     changePenis.testStuff(player)

     print("Equip Default pressed")
end



-- when body hair has been changed:
local function onGrowArmpits(worldobjects, player)

     local modData = player:getModData()
     local data = modData.RasBodyMod

     if data.RasArmpitHair < 2 then
           data.RasArmpitHair = data.RasArmpitHair + 1

           manageBody.EquipSkin(player, true)
           triggerEvent("OnClothingUpdated", player)
     end
end


local function onGrowChest(worldobjects, player)

     local modData = player:getModData()
     local data = modData.RasBodyMod

     if data.RasChestHair  < 2 then
          data.RasChestHair = data.RasChestHair + 1

          manageBody.EquipSkin(player, true)
          triggerEvent("OnClothingUpdated", player)
     end
end



local function onGrowPubic(worldobjects, player)

        local modData = player:getModData()
        local data = modData.RasBodyMod

        if player:isFemale() then
              if data.RasPubicHair < 5 then
                   if data.RasPubicHair == 0 then -- if no pubic hair
                         data.RasPubicHair = 1
                   elseif data.RasPubicHair == 1 or data.RasPubicHair == 2 then -- if pubic hair is on intermediate state
                         data.RasPubicHair = 5
                   elseif data.RasPubicHair == 3 or data.RasPubicHair == 4 then -- if strip or trimmed
                         data.RasPubicHair = 2
                   end 

                   manageBody.EquipSkin(player, true)
                   triggerEvent("OnClothingUpdated", player)
              end
        else
             if data.RasPubicHair < 4 then
                   hasChanged = true
                   if data.RasPubicHair == 0 then -- if no pubic hair
                        data.RasPubicHair = 1
                   elseif data.RasPubicHair == 1 or data.RasPubicHair == 2 then -- if pubic hair is on intermediate state
                        data.RasPubicHair = 4
                   elseif data.RasPubicHair == 3 then -- if strip 
                        data.RasPubicHair = 2
                   end  

                   manageBody.EquipSkin(player, true)
                   triggerEvent("OnClothingUpdated", player)        
             end
        end
end


local function onGrowLegs(worldobjects, player)

      local modData = player:getModData()
      local data = modData.RasBodyMod

      if data.RasLegHair < 2 then
             data.RasLegHair = data.RasLegHair + 1

             manageBody.EquipSkin(player, true)
             triggerEvent("OnClothingUpdated", player)
      end
end




-- add new options to the right click menu
local vanilla_ISWorldObjectContextMenu_createMenu = ISWorldObjectContextMenu.createMenu
function ISWorldObjectContextMenu.createMenu(player, worldobjects, x, y, test, ...)

      local context = vanilla_ISWorldObjectContextMenu_createMenu(player, worldobjects, x, y, test, ...) -- execute vanilla code
      if test == true then return true; end

      if isDebugEnabled() then
           
          local playerObj = getSpecificPlayer(player)

          if not playerObj:isFemale() then
             context:addOption("RasBodyMod_EquipNewPenis", worldobjects, onChangeModel, playerObj)
             context:addOption("RasBodyMod_EquipOldPenis", worldobjects, onDefaultModel, playerObj)
          end


          context:addOption("RasBodyMod_GrowArmpits", worldobjects, onGrowArmpits, playerObj)
          if not playerObj:isFemale() then
             context:addOption("RasBodyMod_GrowChest", worldobjects, onGrowChest, playerObj)
          end
          context:addOption("RasBodyMod_GrowPubic", worldobjects, onGrowPubic, playerObj)
          context:addOption("RasBodyMod_GrowLegs", worldobjects, onGrowLegs, playerObj)
      end

      return context
end





