Files
gtav-src/tools_ng/wildwest/script/3dsMax/Maps/rsta_ExtractTerrainFromContainers.ms
2025-09-29 00:52:08 +02:00

117 lines
4.4 KiB
Plaintext
Executable File

Filein "pipeline/helpers/terrain/terrain_funcs.ms"
containerList = #(
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_ne_placement.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_nw_placement.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_se_placement.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_sw_placement.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_airstrip_props.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_beach_props.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_dock_props.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_placement.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_island_props.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_mansion_props.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_01.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_02.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_03.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_04.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_05.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_props_06.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_01.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_02.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_03.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_04.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_05.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Terrain\mph4_Terrain_06.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_airstrip.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_beach.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_dock.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_Island.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_mansion.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_mansion_B.maxc",
@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_wtowers.maxc")
-- containerList = #(@"X:\gta5_dlc\mpPacks\mpHeist4\Art\ng\Models\mph4_Island\mph4_dock.maxc")
gRsPerforce.Sync containerList
with undo off
(
local containerNodes = #()
setwaitcursor()
local counter = 1.0
progressStart "Processing..."
for item in containerList while (progressUpdate (100 * (counter / containerList.count))) do
(
replaceprompt ("Extracting from " + item)
try
(
local cn = containers.CreateInheritedContainer item
append containerNodes cn
local sucess = false
try
(
success = cn.MergeSource()
)
catch
(
format "Couldnt merge % \n" item.name
)
--detach all objets from container
cn.GetContentNodes false &nodes
for node in nodes do
(
cn.RemoveNodeFromContent node true
)
ClearSelection()
unhide objects
max hide inv
local terrainMeshes = for obj in Geometry where (GetAttrClass obj == "Gta Object") and (not IsRsref obj) and (not RsIsLOD obj) and (RsIsTerrainMesh obj) collect obj
local ipProps = for obj in Geometry where (GetAttrClass obj == "Gta Object") and (IsRsref obj) collect obj
--filter out only
local vegMatches = #("*_bush_*", "*_palm_*", "*_plant_*", "*_tree_*", "*_weed_*")
local vegProps = #()
for item in ipProps do
(
local gotMatch = false
for match in vegMatches do
(
if(matchPattern item.name pattern:match) do
(
gotMatch = true
append vegProps item
)
)
)
--convert rsrefs to meshes
for item in vegProps do
(
convertToMesh item
)
local allNodes = join terrainMeshes vegProps
for item in allNodes do item.isHidden = false
saveNodes allNodes ("X:/gta5_dlc/mpPacks/mpHeist4/Art/working/" + cn.name + "_TerrainMeshes.max")
)
catch
(
format "problem inheriting % \n" item
)
resetMaxFile #noPrompt
)
progressEnd()
setarrowcursor()
)