117 lines
4.4 KiB
Plaintext
Executable File
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()
|
|
|
|
|
|
) |