[Asset Final] Mine Tile Set by: Phitt
- Eleven Warrior
- Posts: 744
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
[Asset Final] Mine Tile Set by: Phitt
Hi guys this is the finished version I hope. Four days lack of sleep and many hours have gone by. Add the pack to your Mod(s) if you wish, I have redone the demo of the editor version and all you have to do is delete everything and start fresh. I am really sorry about this, but the drawing tile is still named old_mine_wall etc... All you have to do is delete the whole level, save the mod and rename the drawing tiles as ph_mine_wall etc... I completely forgot about the drawing tiles.
Please let me know of any issues and ill fix em ASAP.
Dropt Box: https://www.dropbox.com/sh/tx8r8dwlz9ibfj8/ppISEmYxel
File Name: Mine_Set_Updated.zip
1 - Have added occluders to most objects: Walls, Floors, Ceilings etc....
2 - Have added the minimal save state to most objects, I think that's correct.
3 - I have not put any of the weapons in from the original Set, if you want them you can add them.
4 - Tile sets are as are and can be changed, I am still experimenting on these things.
5 - All Sounds are added.
6 - Some animations are not added eg: Ballista etc.. I am missing the models I think.
7 - Set has additional objects as well, if you don't want them, you or myself can delete them.
Anyway I hope you enjoy this Set as much as I do .
PS: I am going to add more to this set as it look quite nice ahy . Also all the other Sets that are in my Drop Box will be deleted in 1 day from now, I am going to redo them. SO DONT DOWNLOAD THEM PLEASE.....
Please let me know of any issues and ill fix em ASAP.
Dropt Box: https://www.dropbox.com/sh/tx8r8dwlz9ibfj8/ppISEmYxel
File Name: Mine_Set_Updated.zip
1 - Have added occluders to most objects: Walls, Floors, Ceilings etc....
2 - Have added the minimal save state to most objects, I think that's correct.
3 - I have not put any of the weapons in from the original Set, if you want them you can add them.
4 - Tile sets are as are and can be changed, I am still experimenting on these things.
5 - All Sounds are added.
6 - Some animations are not added eg: Ballista etc.. I am missing the models I think.
7 - Set has additional objects as well, if you don't want them, you or myself can delete them.
Anyway I hope you enjoy this Set as much as I do .
PS: I am going to add more to this set as it look quite nice ahy . Also all the other Sets that are in my Drop Box will be deleted in 1 day from now, I am going to redo them. SO DONT DOWNLOAD THEM PLEASE.....
Re: [Asset Final] Mine Tile Set by: Phitt
You asked me to review this. I don't have time to thoroughly test it but here are the problems I noticed:
- ph_mine_door_portcullis, ph_mine_door_portcullis_rails, and ph_mine_wall_Grating should be defined as sparse, they currently are not.
- ph_mine_sidewall_rocks clips with the regular floor, you need to move the model up by some tiny amount
- when you stretched the pillars etc. you did not stretch the UV map, so the stretched objects have the texture stretched out, and therefore look terrible. You need, at a minimum, to scale the UV vertices accordingly when you scale the mesh.
- the hives crash when attacked because you didn't change the name of the spawnOnDeath object
- ph_mine_floor_basic should use dungeon_floor_01_occluder, not dungeon_pit_occluder
- ph_mine_floor_drain should use dungeon_pit_occluder (currently it has no occluder)
- ph_mine_ceiling_shaft, ph_mine_ceiling_light_shaft, ph_mine_cavein, ph_mine_cavein_wide, ph_mine_secret_button_large, and ph_mine_secret_button_small are missing occluders
- you are using dungeon_pit_occluder for the multi-tile pit corners, this will not work; dungeon_pit_occluder covers all 4 sides and the corners do not, so you will occlude some models you shouldn't. You need to make an occluder for each model that only covers the same walls as the model. Except for ph_mine_pit_empty of course, which should have no occluder at all because its model is completely empty!
- ph_mine_wall_deco01, ph_mine_wall_deco02, ph_mine_wall_deco03, ph_mine_wall_deco04, ph_mine_wall_deco05, and ph_mine_wall_deco06 should not have occluders
- ph_mine_ceiling_light_shaft doesn't have a light in it
- you left in a block that redefines all dungeon ceiling shafts and removes their occluders, I assume this was not intended
- the following objects should have minimalSaveState (and currently do not): ph_mine_floor_basic, ph_mine_floor_rocks01, ph_mine_floor_drain, ph_mine_wood_pillar, ph_mine_rock_pillar_1, ph_mine_rock_pillar_high_1, ph_mine_rock_pillar_higher_2, ph_mine_ceiling_basic, ph_mine_wall_basic, ph_mine_ceiling_shaft, ph_mine_ceiling_light_shaft, ph_mine_wall_rocky, ph_mine_wall_edge_1, ph_mine_wall_edge_floor_levels, ph_mine_wall_edge_floor_levelsa, ph_mine_wall_deco01, ph_mine_wall_deco02, ph_mine_rock_blockage01, ph_mine_rock_blockage02, ph_mine_rock_blockage03, ph_mine_rockwaste01, ph_mine_rockwaste02, ph_mine_cart_rail01 (but NOT the altar version), ph_mine_cart_rail02, ph_mine_cart01, ph_mine_cart02, ph_mine_rail_2way01, ph_mine_rail_2way02, ph_mine_rail_2way03, ph_mine_rail_corner01, ph_mine_rail_3way01, ph_mine_rail_endcap01,
- the following objects should NOT have minimalSaveState (and currently do): ph_mine_table_1 (consider what would happen if a player saves with items on it)
- the volcanoes should have "floor" placement instead of "wall", the low range on their light makes it basically invisible, and the shadow casting optimization is completely inappropriate because they are not being placed against a wall like torch holders are.
I am still not sure you understand occlusion culling or minimalSaveState. Models that are completely obscured by the model in an OccluderComponent are not rendered. That's all they do. So you want occluders on your solid walls, floors, and ceilings because CPU/GPU time won't be wasted drawing things that are behind them. It makes no sense to have an occluder model that covers more space than the object's model, like you have on the mine_wall_deco objects: a model could be covered by the occluder model but still otherwise visible to the player.
minimalSaveState makes it so that instead of saving the entire state of an object in save games (all components, all properties, world position, etc), only their name and game position (not world position) are saved. You want this on objects like walls, pillars, decorations, and other static props that will be used hundreds or thousands of times in a mod. You don't want it on objects that will change state such as buttons, doors, etc.
While I'm glad that you're willing to put in the work to convert this tileset I definitely would not call this "final" or even suitable to be used in mods since many of the decorations and almost all the elevation-related objects do not work.
The textures seem to be fine though.
- ph_mine_door_portcullis, ph_mine_door_portcullis_rails, and ph_mine_wall_Grating should be defined as sparse, they currently are not.
- ph_mine_sidewall_rocks clips with the regular floor, you need to move the model up by some tiny amount
- when you stretched the pillars etc. you did not stretch the UV map, so the stretched objects have the texture stretched out, and therefore look terrible. You need, at a minimum, to scale the UV vertices accordingly when you scale the mesh.
- the hives crash when attacked because you didn't change the name of the spawnOnDeath object
- ph_mine_floor_basic should use dungeon_floor_01_occluder, not dungeon_pit_occluder
- ph_mine_floor_drain should use dungeon_pit_occluder (currently it has no occluder)
- ph_mine_ceiling_shaft, ph_mine_ceiling_light_shaft, ph_mine_cavein, ph_mine_cavein_wide, ph_mine_secret_button_large, and ph_mine_secret_button_small are missing occluders
- you are using dungeon_pit_occluder for the multi-tile pit corners, this will not work; dungeon_pit_occluder covers all 4 sides and the corners do not, so you will occlude some models you shouldn't. You need to make an occluder for each model that only covers the same walls as the model. Except for ph_mine_pit_empty of course, which should have no occluder at all because its model is completely empty!
- ph_mine_wall_deco01, ph_mine_wall_deco02, ph_mine_wall_deco03, ph_mine_wall_deco04, ph_mine_wall_deco05, and ph_mine_wall_deco06 should not have occluders
- ph_mine_ceiling_light_shaft doesn't have a light in it
- you left in a block that redefines all dungeon ceiling shafts and removes their occluders, I assume this was not intended
- the following objects should have minimalSaveState (and currently do not): ph_mine_floor_basic, ph_mine_floor_rocks01, ph_mine_floor_drain, ph_mine_wood_pillar, ph_mine_rock_pillar_1, ph_mine_rock_pillar_high_1, ph_mine_rock_pillar_higher_2, ph_mine_ceiling_basic, ph_mine_wall_basic, ph_mine_ceiling_shaft, ph_mine_ceiling_light_shaft, ph_mine_wall_rocky, ph_mine_wall_edge_1, ph_mine_wall_edge_floor_levels, ph_mine_wall_edge_floor_levelsa, ph_mine_wall_deco01, ph_mine_wall_deco02, ph_mine_rock_blockage01, ph_mine_rock_blockage02, ph_mine_rock_blockage03, ph_mine_rockwaste01, ph_mine_rockwaste02, ph_mine_cart_rail01 (but NOT the altar version), ph_mine_cart_rail02, ph_mine_cart01, ph_mine_cart02, ph_mine_rail_2way01, ph_mine_rail_2way02, ph_mine_rail_2way03, ph_mine_rail_corner01, ph_mine_rail_3way01, ph_mine_rail_endcap01,
- the following objects should NOT have minimalSaveState (and currently do): ph_mine_table_1 (consider what would happen if a player saves with items on it)
- the volcanoes should have "floor" placement instead of "wall", the low range on their light makes it basically invisible, and the shadow casting optimization is completely inappropriate because they are not being placed against a wall like torch holders are.
I am still not sure you understand occlusion culling or minimalSaveState. Models that are completely obscured by the model in an OccluderComponent are not rendered. That's all they do. So you want occluders on your solid walls, floors, and ceilings because CPU/GPU time won't be wasted drawing things that are behind them. It makes no sense to have an occluder model that covers more space than the object's model, like you have on the mine_wall_deco objects: a model could be covered by the occluder model but still otherwise visible to the player.
minimalSaveState makes it so that instead of saving the entire state of an object in save games (all components, all properties, world position, etc), only their name and game position (not world position) are saved. You want this on objects like walls, pillars, decorations, and other static props that will be used hundreds or thousands of times in a mod. You don't want it on objects that will change state such as buttons, doors, etc.
While I'm glad that you're willing to put in the work to convert this tileset I definitely would not call this "final" or even suitable to be used in mods since many of the decorations and almost all the elevation-related objects do not work.
The textures seem to be fine though.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
- Eleven Warrior
- Posts: 744
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
Re: [Asset Final] Mine Tile Set by: Phitt
Well back to work again. Thxs for all that advice now I am starting to understand things a lot better. Yep final was bad, so ill redo it all and hope this time it's better. This is a awesome learning process and I am all ways willing to learn, now that I see this in a different light. So thank you again Minmay catch you in a week, this time I am going to study everything down to a tee.
EDIT: How do I do that thing with the UV maps in GMT? That's how I stretched the Model.
- when you stretched the pillars etc. you did not stretch the UV map, so the stretched objects have the texture stretched out, and therefore look terrible. You need, at a minimum, to scale the UV vertices accordingly when you scale the mesh.
EDIT: How do I do that thing with the UV maps in GMT? That's how I stretched the Model.
- when you stretched the pillars etc. you did not stretch the UV map, so the stretched objects have the texture stretched out, and therefore look terrible. You need, at a minimum, to scale the UV vertices accordingly when you scale the mesh.
Re: [Asset Final] Mine Tile Set by: Phitt
thanks for that!
Re: [Asset Final] Mine Tile Set by: Phitt
I don't use GMT, but looking at it for a few minutes, I don't see any facilities to modify UV maps. I can only tell you that in Blender all transformations have a box called "Edit Texture Space" that you can check to apply the transformations to the UV vertices as well.Eleven Warrior wrote:EDIT: How do I do that thing with the UV maps in GMT? That's how I stretched the Model.
Also, this may not give good enough results for the models in this set anyway, it relies on the texture being seamless (I haven't checked if it is) and the map still being aligned correctly to wrap afterwards (it wouldn't work if you made the pillar wider or thinner for instance).
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
- Eleven Warrior
- Posts: 744
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
Re: [Asset Final] Mine Tile Set by: Phitt
I am not posting the Set yet until it's completly fixed, the chasm's well i dont know how to create indiviual occluder(s) for them sorry. If someone could help me or do it would be appreciated. I have just put the (mine_objects.lua) file here for Minmay to look at at see where i need to fix things thxs for your help. I have exported the Set for a real game and it works, well for me though. I saved and loaded a game without problems. I am using the highest graphic settings though. I used the low graphics and the set looks well so,so, but the water can not be seen. On mid grapichs it's much better
Most of the Objects have been moddfied again eg: Occluders and minimalSaveState, Altars fixed, mine_hive fixed. I am am still not sure about the Draw Tile Tool am still working on this.
To Minmay: Please have alook at the lua file below and tell me have I got it right or where to fix things thank you.
I cannot find the Occluders for the following Objects:
--- Cavein's ---
ph_mine_cavein,
ph_mine_cavein_wide,
--- Volcano's problem ---
I have a round Light that surrounds the torch particle which i dont want and dont know how to get rid of it i just want the Torch Flame. Do i define a new torch fire particle?? Or maybe someone could fix the flame that comes out of the Volcano and Smokers.
--- Chasms Occluders ---
Minmay suggests:
you are using dungeon_pit_occluder for the multi-tile pit corners, this will not work; dungeon_pit_occluder covers all 4 sides and the corners do not, so you will occlude some models you shouldn't. You need to make an occluder for each model that only covers the same walls as the model. Except for ph_mine_pit_empty of course, which should have no occluder at all because its model is completely empty!
I would not have a clue how to make Occluders for each each of the Chasm's so i just used the Occluder:
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
I know this is wrong, but dont know how to fix it???? The chasm's will need the Occluders incase they are used alot.
--- Extra Props etc.. ---
These Props will be stripped out of the Set:
ph_mine_rock_pillar_1
ph_mine_rock_pillar_high_1
ph_mine_rock_pillar_higher_2
Mine Objects Lua File:
Most of the Objects have been moddfied again eg: Occluders and minimalSaveState, Altars fixed, mine_hive fixed. I am am still not sure about the Draw Tile Tool am still working on this.
To Minmay: Please have alook at the lua file below and tell me have I got it right or where to fix things thank you.
I cannot find the Occluders for the following Objects:
--- Cavein's ---
ph_mine_cavein,
ph_mine_cavein_wide,
--- Volcano's problem ---
I have a round Light that surrounds the torch particle which i dont want and dont know how to get rid of it i just want the Torch Flame. Do i define a new torch fire particle?? Or maybe someone could fix the flame that comes out of the Volcano and Smokers.
--- Chasms Occluders ---
Minmay suggests:
you are using dungeon_pit_occluder for the multi-tile pit corners, this will not work; dungeon_pit_occluder covers all 4 sides and the corners do not, so you will occlude some models you shouldn't. You need to make an occluder for each model that only covers the same walls as the model. Except for ph_mine_pit_empty of course, which should have no occluder at all because its model is completely empty!
I would not have a clue how to make Occluders for each each of the Chasm's so i just used the Occluder:
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
I know this is wrong, but dont know how to fix it???? The chasm's will need the Occluders incase they are used alot.
--- Extra Props etc.. ---
These Props will be stripped out of the Set:
ph_mine_rock_pillar_1
ph_mine_rock_pillar_high_1
ph_mine_rock_pillar_higher_2
Mine Objects Lua File:
Code: Select all
---------------------
--- Floor Objects ---
---------------------
--- Fixed Occluder name---
--- Added minimal save state ---
defineObject{
name = "ph_mine_floor_basic",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineFloor04.fbx",
},
{
class = "Occluder",
model = "assets/models/env/dungeon_floor_01_occluder.fbx",
},
},
replacesFloor = true,
placement = "floor",
editorIcon = 136,
minimalSaveState = true,
}
--- Decoration only ---
--- Added minimal save state ---
defineObject{
name = "ph_mine_floor_rocks01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineFloorRocks01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 136,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_floor_drain",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineFloorGrate01.fbx",
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
replacesFloor = true,
placement = "floor",
editorIcon = 136,
minimalSaveState = true,
}
--------------------
--- Mine Pillars ---
--------------------
--- Added minimal save state ---
defineObject{
name = "ph_mine_wood_pillar",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePillar01.fbx",
},
},
placement = "pillar",
editorIcon = 108,
minimalSaveState = true,
}
--------------------
--- Rocky Pillar ---
--------------------
--- Addition ---
--- Added minimal save state ---
--- Will be deleted from Set ---
---Reach to First Ceiling Level---
defineObject{
name = "ph_mine_rock_pillar_1",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockPillar_1a.fbx",
},
},
placement = "pillar",
editorIcon = 108,
minimalSaveState = true,
}
---Reach to Second Ceiling Level---
defineObject{
name = "ph_mine_rock_pillar_high_1",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockPillar_High_1a.fbx",
},
},
placement = "pillar",
editorIcon = 108,
minimalSaveState = true,
}
---Reach to Third Ceiling Level---
defineObject{
name = "ph_mine_rock_pillar_higher_2",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockPillar_High_1b.fbx",
},
},
placement = "pillar",
editorIcon = 108,
minimalSaveState = true,
}
---------------------
--- Mine Ceilings ---
---------------------
--- Added minimal save state ---
defineObject{
name = "ph_mine_ceiling_basic",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCeiling01.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/catacomb_ceiling_occluder.fbx",
},
},
replacesCeiling = true,
placement = "ceiling",
editorIcon = 100,
minimalSaveState = true,
}
--- Addition for TileSet---
--- Added minimal save state ---
defineObject{
name = "ph_mine_ceiling_rock",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCeiling.fbx",
},
{
class = "Occluder",
model = "assets/models/env/catacomb_ceiling_occluder.fbx",
},
},
replacesCeiling = true,
placement = "ceiling",
editorIcon = 100,
minimalSaveState = true,
}
--- Fixed Shafts with Occluders---
--- Added minimal save state ---
defineObject{
name = "ph_mine_ceiling_shaft",
baseObject = "base_ceiling_shaft",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCeilingShaft01.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/catacomb_ceiling_occluder.fbx",
},
},
minimalSaveState = true,
}
--- Still has no light so I just put another light in and adjust the height ---
defineObject{
name = "ph_mine_ceiling_light_shaft",
baseObject = "base_ceiling_shaft",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCeilingLightShaft.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/catacomb_ceiling_occluder.fbx",
},
},
minimalSaveState = true,
}
--- ceiling edge variations ---
do
for i=1,16 do
local postfix = bit.tobinary(i, 4)
defineObject{
name = "dungeon_ceiling_shaft_"..postfix,
baseObject = "base_ceiling_shaft",
components = {
{
class = "Model",
model = string.format("assets/models/env/dungeon_ceiling_shaft_%s.fbx", postfix),
staticShadow = true,
}
},
minimalSaveState = true,
}
end
end
------------------
--- Mine Walls ---
------------------
--- Added minimal save state ---
defineObject{
name = "ph_mine_wall_basic",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWall01.fbx",
},
{
class = "Occluder",
model = "assets/models/env/dungeon_wall_01_occluder.fbx",
},
},
replacesWall = true,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
--- Addition for TileSet---
--- Added minimal save state ---
defineObject{
name = "ph_mine_wall_rocky",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockyWall.fbx",
},
{
class = "Occluder",
model = "assets/models/env/dungeon_wall_01_occluder.fbx",
},
},
replacesWall = true,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
-------------------
--- Secret Wall ---
-------------------
defineObject{
name = "ph_mine_secret_door",
baseObject = "base_secret_door",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineSecretWall.fbx",
staticShadow = true,
},
},
}
--------------------------
--- Mine Wall Top Edge ---
--------------------------
--- Addition for TileSet.---
--- Added minimal save state ---
defineObject{
name = "ph_mine_wall_edge_1",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWall01_edge.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_edge_floor_levels",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWall01_edge_floor_level.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_edge_floor_levelsa",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWall01_edge_floor_levela.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
------------------------
--- Mine Walls Decor ---
------------------------
--- Added minimal save state ---
defineObject{
name = "ph_mine_wall_deco01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco01.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_deco02",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco02.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_deco03",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco03.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_deco04",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco04.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_deco05",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco05.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_deco06",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallDeco06.fbx",
},
},
replacesWall = false,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
------------------------
--- Mine Work Places ---
------------------------
--- Removed the Occluders from these objects ---
--- Added minimal save state ---
defineObject{
name = "ph_mine_wall_workplace01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWorkplace01.fbx",
},
},
replacesWall = true,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_workplace02",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWorkplace02.fbx",
},
},
replacesWall = true,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_wall_workplace03",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWorkplace03.fbx",
},
},
replacesWall = true,
placement = "wall",
editorIcon = 92,
minimalSaveState = true,
}
-----------------
--- Mine hive ---
-----------------
--- Changed the Spawn monster and added poison cloud ---
--- Fixed the object for spawnOnDeath ---
defineObject{
name = "ph_mine_hive",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineHive.fbx",
},
{
class = "Obstacle",
hitSound = "spider_eggs_hit",
hitEffect = "hit_goo",
},
{
class = "Health",
health = 15,
immunities = { "poison" },
spawnOnDeath = "ph_mine_hive_broken",
onDie = function(self)
spawn("poison_cloud_large", self.level, self.x, self.y,0,0)
spawn("mosquito_swarm", self.level, self.x, self.y,0,0)
end
},
},
placement = "floor",
editorIcon = 4,
}
--- Added minimal save state. Just a object now ---
defineObject{
name = "ph_mine_hive_broken",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineHiveBroken.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 81,
minimalSaveState = true,
}
------------------------
--- Alcove and Altar ---
------------------------
defineObject{
name = "ph_mine_alcove",
baseObject = "base_alcove",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineAlcove01.fbx",
staticShadow = true,
},
}
}
defineObject{
name = "ph_mine_alcove_wood",
baseObject = "base_alcove",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineAlcove_wood.fbx",
staticShadow = true,
},
}
}
------------------
--- Mine Props ---
------------------
--- Removed minimalSaveState. Because it's Altar ---
defineObject{
name = "ph_mine_table_1",
baseObject = "altar",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineTable01.fbx",
},
{
class = "Obstacle",
hitSound = "barrel_hit",
},
},
placement = "floor",
editorIcon = 52,
}
defineObject{
name = "ph_mine_warning_sign",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWarning.fbx",
},
{
class = "Obstacle",
hitSound = "barrel_hit",
hitEffect = "hit_wood",
},
{
class = "Health",
health = 65,
immunities = { "poison" },
spawnOnDeath = "MineWarningBroken_1",
},
},
placement = "floor",
editorIcon = 120,
}
defineObject{
name = "MineWarningBroken_1",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWarningBroken.fbx",
},
},
placement = "floor",
editorIcon = 120,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_beds_01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineBeds01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_beds_02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineBeds02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
--- Addition ---
--- Added minimalSaveState ---
defineObject{
name = "ph_mine_sidewall_rocks",
components = {
{
class = "Model",
model = "mod_assets/models/mine/wall_sidefloor_rocks.fbx",
},
},
placement = "floor",
editorIcon = 92,
minimalSaveState = true,
}
-------------------
--- Mine Crates ---
-------------------
defineObject{
name = "ph_mine_crates_blockage01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCrates.fbx",
},
{
class = "Health",
health = 50,
spawnOnDeath = "ph_MineCratesBroken",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 260,
}
defineObject{
name = "ph_mine_crates_blockage02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCrates2.fbx",
},
{
class = "Health",
health = 50,
spawnOnDeath = "ph_MineCratesBroken2",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 260,
}
-------------------------------
--- Broken Crate(s) Objects ---
-------------------------------
defineObject{
name = "ph_MineCratesBroken",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCratesBroken.fbx",
},
},
placement = "floor",
editorIcon = 81,
minimalSaveState = true,
}
defineObject{
name = "ph_MineCratesBroken2",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCratesBroken2.fbx",
},
},
placement = "floor",
editorIcon = 81,
minimalSaveState = true,
}
--- Addition ---
defineObject {
name = "ph_mine_crates_exploding",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCrates_bomb.fbx",
},
{
class = "Health",
health = 30,
spawnOnDeath = "barrel_crate_block_broken",
onDie = function(c)
local i, j;
for i = -1, 1 do
for j = -1, 1 do
if i ~= 0 or j ~= 0 then
spawn("fireburst", c.go.level, c.go.x + i, c.go.y + j, 0, c.go.elevation)
end
end
end
end
}
}
}
---------------------
--- Rock Blocages ---
----------------------
defineObject{
name = "ph_mine_rock_blockage01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockFormation01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rock_blockage02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockFormation02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rock_blockage03",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRockFormation03.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rockwaste01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWaste01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rockwaste02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWaste02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
minimalSaveState = true,
}
------------------
--- Rail Carts ---
-------------------
defineObject{
name = "ph_mine_cart_rail01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCart01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
--- NO minimalSaveState It's a Altar ---
defineObject{
name = "ph_mine_cart_rail01_altar",
baseObject = "altar",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCart01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 52,
}
defineObject{
name = "ph_mine_cart_rail02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCart02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_cart01",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCart03.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_cart02",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCart04.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 236,
minimalSaveState = true,
}
----------------------
--- Railway Tracks ---
----------------------
defineObject{
name = "ph_mine_rail_2way01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRail2way02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rail_2way02",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRail2way02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rail_2way03",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRail2way03.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rail_corner01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRailCorner01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rail_3way01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRail3way01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_rail_endcap01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineRailEndCap01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 184,
minimalSaveState = true,
}
------------
--- Pits ---
------------
defineObject{
name = "ph_mine_pit_trapdoor",
baseObject = "base_pit_trapdoor",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit01.fbx",
staticShadow = true,
},
{
class = "Model",
name = "trapDoorModel",
model = "assets/models/env/dungeon_pit_trapdoor.fbx",
materialOverrides = { dungeon_stone_slabs_01 = "MineRock"}, ---tex,override ---
boundBox = { size = vec(3, 2.5, 3) },
},
{
class = "Animation",
model = "trapDoorModel",
animations = {
open = "assets/animations/env/dungeon_pit_trapdoor_open.fbx",
close = "assets/animations/env/dungeon_pit_trapdoor_close.fbx",
},
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
-----------------
--- Cave in's ---
-----------------
--- These are good for ceiling lev = 1 ---
defineObject{
name = "ph_mine_ceiling_cavein",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCeilingCaveIn.fbx",
},
{
class = "Occluder",
model = "assets/models/env/catacomb_ceiling_occluder.fbx",
},
},
replacesCeiling = true,
placement = "ceiling",
editorIcon = 100,
minimalSaveState = true,
}
defineObject{
name = "ph_mine_cavein",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCaveIn.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 144,
minimalSaveState = true,
}
--- Addition ---
--- Allows 2 caveins side by side ---
defineObject{
name = "ph_mine_cavein_wide",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineCaveIn_wide.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 144,
minimalSaveState = true,
}
------------------
--- Wall Texts ---
------------------
defineObject{
name = "ph_mine_wall_text",
baseObject = "base_wall_text",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallText.fbx",
staticShadow = true,
},
},
replacesWall = true,
}
defineObject{
name = "ph_mine_wall_text_long",
baseObject = "base_wall_text",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWallTextLarge.fbx",
staticShadow = true,
},
},
replacesWall = true,
}
-------------------------
--- Pressure Plate(s) ---
-------------------------
--- Used AH's Animations ---
defineObject{
name = "ph_mine_pressure_plate",
baseObject = "base_pressure_plate",
components = {
{
class = "Model",
model = "assets/models/env/dungeon_pressure_plate.fbx",
materialOverrides = { dungeon_floor_01 = "MineGround"},
staticShadow = true,
},
{
class = "Animation",
animations = {
activate = "assets/animations/env/dungeon_pressure_plate_down.fbx",
deactivate = "assets/animations/env/dungeon_pressure_plate_up.fbx",
},
},
{
class = "Occluder",
model = "assets/models/env/dungeon_floor_01_occluder.fbx",
}
},
}
-----------------
--- Chasms ---
-----------------
--- Dont know to make single Occluders for each one ---
defineObject{
name = "ph_mine_pit_corner_SE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitSE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_corner_SW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitSW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_corner_NW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitNW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_corner_NE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitNE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
----------------
--- Corneout ---
----------------
defineObject{
name = "ph_mine_pit_cornerout_NE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitCNE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_cornerout_NW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitCNW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_cornerout_SE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitCSE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_cornerout_SW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitCSW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
-----------------
--- Mine Pits ---
-----------------
defineObject{
name = "ph_mine_pit_N",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitN.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_S",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitS.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_E",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_W",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
--------------------
--- Mine pit End ---
--------------------
defineObject{
name = "ph_mine_pit_end_W",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit3W.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_end_E",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit3E.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_end_N",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit3N.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_pit_end_S",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit3S.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
---------------------
--- Empty Pits ---
---------------------
--- Occluders removed ---
defineObject{
name = "ph_mine_pit_empty",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitFake.fbx",
staticShadow = true,
},
},
}
defineObject{
name = "ph_mine_shaft_empty",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePitFake.fbx",
staticShadow = true,
},
},
}
-------------------------
--- Extra Mine Shafts ---
-------------------------
defineObject{
name = "ph_mine_shaft_N",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftN.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_S",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftS.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_W",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_E",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
---------------------------
--- Mine Shafts Corners ---
---------------------------
defineObject{
name = "ph_mine_shaft_corner_NE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftNE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_corner_SW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftSW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_corner_SE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftSE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_corner_NW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftNW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
----------------------
--- Shaft End Caps ---
----------------------
defineObject{
name = "ph_mine_shaft_endcap_N",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaft3N.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_endcap_S",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaft3S.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_endcap_W",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaft3W.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_endcap_E",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaft3E.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
-----------------------
--- Shaft Cornerout ---
-----------------------
defineObject{
name = "ph_mine_shaft_cornerout_NE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftCNE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_cornerout_NW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftCNW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_cornerout_SE",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftCSE.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
defineObject{
name = "ph_mine_shaft_cornerout_SW",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftCSW.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
----------------------
--- Secret Buttons ---
----------------------
--- Used AH button animation from LOG 1 ---
--- Added the Button Occluders ---
defineObject{
name = "ph_mine_secret_button_large",
baseObject = "wall_button",
components = {
{
class = "Clickable",
size = vec(0.2,0.12,0.2),
offset = vec (0.4, 1.72,0),
--debugDraw = true,
},
{
class = "Model",
model = "mod_assets/models/mine/MineSButtonLarge.fbx",
},
{
class = "Occluder",
model = "assets/models/env/dungeon_secret_button_small_occluder.fbx",
},
{
class = "Animation",
animations = {
press = "mod_assets/animations/mine/temple_secret_button_large_press.fbx"
},
},
},
replacesWall = true,
placement = "wall",
editorIcon = 12,
}
defineObject{
name = "ph_mine_secret_button_small",
baseObject = "wall_button",
components = {
{
class = "Clickable",
size = vec(0.12,0.12,0.2),
offset = vec (-0.2, 1.95,0), --- -0.08,1.95,0 ---
--debugDraw = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_secret_button_small_occluder.fbx",
},
{
class = "Model",
model = "mod_assets/models/mine/MineSButtonSmall.fbx",
},
{
class = "Animation",
animations = {
press = "mod_assets/animations/mine/temple_secret_button_small_press.fbx"
},
},
},
replacesWall = true,
placement = "wall",
editorIcon = 12,
}
------------------
--- Mine Doors ---
------------------
--- Have added baseObject = "base_door_sparse", ---
defineObject{
name = "ph_mine_door_portcullis",
baseObject = "base_door_sparse",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePortcullis.fbx",
},
{
class = "Model",
name = "frame",
model = "mod_assets/models/mine/MineDoorframe.fbx",
},
{
class = "Door",
openSound = "gate_open",
closeSound = "gate_close",
lockSound = "gate_lock",
killPillars = true,
openVelocity = 1.3,
closeVelocity = 0,
closeAcceleration = -10,
},
},
}
defineObject{
name = "ph_mine_door_portcullis_rail",
baseObject = "base_door_sparse",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePortcullisRail.fbx",
},
{
class = "Model",
name = "frame",
model = "mod_assets/models/mine/MineDoorframe.fbx",
},
{
class = "Door",
openSound = "gate_open",
closeSound = "gate_close",
lockSound = "gate_lock",
killPillars = true,
openVelocity = 1.3,
closeVelocity = 0,
closeAcceleration = -10,
},
},
}
defineObject{
name = "ph_mine_door_wooden",
baseObject = "base_door_sparse",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineWoodDoor.fbx",
},
{
class = "Model",
name = "frame",
model = "mod_assets/models/mine/MineDoorframe.fbx",
},
{
class = "Door",
openSound = "gate_open",
closeSound = "gate_close",
lockSound = "gate_lock",
killPillars = true,
openVelocity = 1.3,
closeVelocity = 0,
closeAcceleration = -10,
},
},
}
defineObject{
name = "ph_mine_door_iron",
baseObject = "base_door_sparse",
components = {
{
class = "Model",
model = "assets/models/env/dungeon_door_iron.fbx",
},
{
class = "Model",
name = "frame",
model = "mod_assets/models/mine/MineDoorframe.fbx",
},
{
class = "Door",
openSound = "gate_open",
closeSound = "gate_close",
lockSound = "gate_lock",
killPillars = true,
openVelocity = 1.3,
closeVelocity = 0,
closeAcceleration = -10,
},
},
}
defineObject{
name = "ph_mine_wall_Grating",
baseObject = "base_door_sparse",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineGrating.fbx",
},
{
class = "Model",
name = "frame",
model = "mod_assets/models/mine/MineDoorframe.fbx",
},
{
class = "Door",
openSound = "gate_open",
closeSound = "gate_close",
lockSound = "gate_lock",
killPillars = true,
openVelocity = 1.3,
closeVelocity = 0,
closeAcceleration = -10,
},
},
}
-----------------
--- Volcano's ---
-----------------
--- Still having problems with the Torch light. ---
--- There is a big round glow which i dont want ---
--- just want the flame particles ---
defineObject{
name = "ph_mine_volcano01_a",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
}
defineObject{
name = "ph_mine_volcano01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
offset = vec(0, -0.5 + 0, 0, 0.2),
staticShadow = false,
},
{
class = "Particle",
particleSystem = "torch", --l/r u/d b/f
offset = vec(-0.42, 0.73, 0.39), ---- -0.4, 0.73, -1.55
},
},
placement = "floor",
editorIcon = 88,
}
defineObject{
name = "ph_mine_volcano02_a",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
}
defineObject{
name = "ph_mine_volcano02",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
offset = vec(0, -0.5 + 0, 0, 0.2),
--staticShadow = false,
},
{
class = "Particle",
particleSystem = "torch", --l/r u/d b/f
offset = vec(0.1, 0.8, -0.1), ----0.1, 0.7, -1.6
},
},
placement = "floor", --was wall--
editorIcon = 88,
}
----------------
--- Smoker's ---
----------------
defineObject{
name = "ph_mine_smoker01_a",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineSmoker01.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
}
defineObject{
name = "ph_mine_smoker01",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
offset = vec(0, -0.5 + 0, 0, 0.2),
staticShadow = true,
},
{
class = "Light",
offset = vec(0, 1.55, -0.12),
range = 10,
color = vec(0.25, 0.6, 0.5),
brightness = 10,
castShadow = true,
staticShadows = true,
onInit = function(self)
-- optimization: disable casting light behind the wall
local face
if self.go.facing == 2 then
-- disable -Z
face = 5
elseif self.go.facing == 3 then
-- disable -X
face = 1
elseif self.go.facing == 0 then
-- disable +Z
face = 4
elseif self.go.facing == 1 then
-- disable +X
face = 0
end
self:setClipDistance(face, 0)
end,
},
{
class = "Particle",
particleSystem = "ph_mine_smoke_1", --l/r u/d b/f
offset = vec(-0.6, 1.5, -1.9), --- 0.6, 0.7, -0.75
},
},
placement = "wall",
editorIcon = 88,
}
defineObject{
name = "ph_mine_smoker01a",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
offset = vec(0, -0.5 + 0, 0, 0.2),
staticShadow = true,
},
{
class = "Light",
offset = vec(0, 1.55, -0.12),
range = 10,
color = vec(0.25, 0.6, 0.5),
brightness = 10,
castShadow = true,
staticShadows = true,
onInit = function(self)
-- optimization: disable casting light behind the wall
local face
if self.go.facing == 2 then
-- disable -Z
face = 5
elseif self.go.facing == 3 then
-- disable -X
face = 1
elseif self.go.facing == 0 then
-- disable +Z
face = 4
elseif self.go.facing == 1 then
-- disable +X
face = 0
end
self:setClipDistance(face, 0)
end,
},
{
class = "Particle",
particleSystem = "ph_mine_smoke_1", --l/r u/d b/f
offset = vec(0.5, 1.5, -0.6), ----0.6, 0.7, -0.75
},
},
placement = "wall",
editorIcon = 88,
}
defineParticleSystem{
name = "ph_mine_smoke_1",
emitters = {
-- smoke
{
emissionRate = 10, --5
emissionTime = 0,
maxParticles = 50,
boxMin = {-0.03, 0.1, -0.03},
boxMax = { 0.03, 0.1, 0.03},
sprayAngle = {0,30},
velocity = {0.1,0.5},
texture = "assets/textures/particles/smoke_01.tga",
lifetime = {1,1.75},
color0 = {0.15, 0.15, 0.15},
opacity = 1,
fadeIn = 0.5,
fadeOut = 0.5,
size = {0.3, 0.6},
gravity = {1,0,0}, --- 0 0 0
airResistance = 0.1,
rotationSpeed = 0.6,
blendMode = "Translucent",
}
}
}
defineObject{
name = "ph_mine_smoker02_a",
baseObject = "base_obstacle",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineSmoker02.fbx",
},
},
replacesFloor = false,
placement = "floor",
editorIcon = 261,
}
defineObject{
name = "ph_mine_smoker02",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineVolcano01.fbx",
offset = vec(0, -0.5 + 0, 0, 0.2),
staticShadow = true,
},
{
class = "Light",
offset = vec(0, 1.55, -0.12),
range = 10,
color = vec(0.25, 0.6, 0.5),
brightness = 10,
castShadow = true,
staticShadows = true,
onInit = function(self)
-- optimization: disable casting light behind the wall
local face
if self.go.facing == 2 then
-- disable -Z
face = 5
elseif self.go.facing == 3 then
-- disable -X
face = 1
elseif self.go.facing == 0 then
-- disable +Z
face = 4
elseif self.go.facing == 1 then
-- disable +X
face = 0
end
self:setClipDistance(face, 0)
end,
},
{
class = "Particle",
particleSystem = "ph_mine_smoke_1", --l/r u/d b/f
offset = vec(0.17, 1.5, -1.3), ----0.6, 0.7, -0.75
},
},
placement = "wall",
editorIcon = 88,
}
--------------------------
--- Additional Objects ---
--------------------------
--- This may be deleted ---
defineObject{
name = "user_water_surface",
base_object = "water_surface",
components = {
{
class = "WaterSurface",
fogColor = vec(0.021,0.045,0.13,0),
fogDensity = 0.2,
-- There you'll have to modify by -1.4 or 1.4, as you wish
planeY = -0.1, -- was -0.4
reflectionColor = vec(0.693,0.81,0.9,0),
refractionColor = vec(1,1,1,0),
},
{
class = "WaterSurfaceMesh",
material = "water_surface_calm",
underwaterMaterial = "water_surface_underwater",
},
},
placement = "floor",
editorIcon = 264,
}
defineObject{
name = "ph_pick",
baseObject = "base_item",
components = {
{
class = "Model",
model = "mod_assets/models/mine/Pickaxe.fbx",
},
{
class = "Item",
uiName = "Shovel",
description = "This simple but reliable tool is favored by masons, farmers and treasure hunters alike.",
gfxAtlas = "mod_assets/textures/mine/MineItems.tga",
gfxIndex = 15,
impactSound = "impact_blade",
weight = 3,
primaryAction = "dig",
traits = { "usable" },
},
{
class = "DiggingTool",
name = "dig",
uiName = "Dig",
cooldown = 4.5,
},
},
}
defineMaterial{
name = "Pickaxe",
diffuseMap = "mod_assets/textures/mine/Pickaxe_dif.tga",
specularMap = "mod_assets/textures/mine/Pickaxe_spec.tga",
doubleSided = false,
lighting = true,
alphaTest = false,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 30,
depthBias = 0,
}
Re: [Asset Final] Mine Tile Set by: Phitt
I'm trying to understand the occluders so I've made them for the mine pits, here's what I did:
1. Import MinePitNE & MinePitSW to make a 4 sided chasm pit. Import dungeon_pit_occluder as well. You see that the chasm models are passing through the occluder:
2. I translated the occluder's faces away from the chasm model until the model disappeared. I closed those gaps by selecting the edges of the faces and copying positions...x-axis -> x-axis, z-axis -> z-axis (occluder's faces were not attached to begin with):
3. The pit mesh is too deep for the occluder so I had to extend it down to cover:
4. The finished 4-sided occluder that fits the chasm pits. There is no 4-sided chasm pit but this makes making the needed occluders simple:
5. I import one of the chasm pits, import the new 4-sided occluder & then delete the faces I don't need. Finally, the chasm pit is deleted & I'm left with the new occluder (pic is before chasm model deletion):
I was unable to import the 3-sided pits (MinePit3E, MinePit3N, etc.) because they have some sort of 3DS Max node conflict with the importer. I used the GMT to coordinate them with the other models so I was able to remove the correct side. I made 12 occluders, should cover all the chasm pits, dl link:
Phitt's Mineset Occluders
11, I didn't test at all, so you could hook these up with their respective models & test. The only way I can think to test them is to fill a level with pits (use all 12), then go in the corner and stare at the edge of the map & check your FPS for any reduction (wall-off yourself in a 2x2?). Maybe minmay knows a way to test. It'd be nice if you could "see" the occluders in action but I don't know if that's possible.
Also, I don't understand why the main game doesn't have occluders for ceiling shafts yet has them for pits.
1. Import MinePitNE & MinePitSW to make a 4 sided chasm pit. Import dungeon_pit_occluder as well. You see that the chasm models are passing through the occluder:
SpoilerShow
SpoilerShow
SpoilerShow
SpoilerShow
SpoilerShow
Phitt's Mineset Occluders
11, I didn't test at all, so you could hook these up with their respective models & test. The only way I can think to test them is to fill a level with pits (use all 12), then go in the corner and stare at the edge of the map & check your FPS for any reduction (wall-off yourself in a 2x2?). Maybe minmay knows a way to test. It'd be nice if you could "see" the occluders in action but I don't know if that's possible.
Also, I don't understand why the main game doesn't have occluders for ceiling shafts yet has them for pits.
Re: [Asset Final] Mine Tile Set by: Phitt
You can always add a ModelComponent with the occluder model and give it a material. Or if you meant you wanted to see what gets occluded, disable the object's regular model or give it a transparent material.Batty wrote:It'd be nice if you could "see" the occluders in action but I don't know if that's possible.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
- Eleven Warrior
- Posts: 744
- Joined: Thu Apr 18, 2013 2:32 pm
- Location: Australia
Re: [Asset Final] Mine Tile Set by: Phitt
Hi Batty. Holy crap!! What you did is awesome thxs for time spent making the Occluders much appreciate Man how you did it would have taken me ages to do, I checked out how you did from your post and I have to say for me I need to relearn the alphabet man lol. Ok then to work I go on putting these Occluders in.
1 - Still not find Cave in Occluders, I don't think there are any cavein Occluders with the original Assets Script by AH.
2 - Does the rest of the .lua script look good to you ??
3 - I have to change the Smoker Particle to floor object not wall
4 - When I draw a floor using any of the Tile's eg old_mine_floor and make the floor=0 and ceiling=1 the ceiling is on the floor. If I change it to floor=0 and ceiling=2 then the room is 1 tile high or floor I don't know what's wrong with tile draw so ill post the tiles.lua here, I need to get this working properly.
5 - Yes strange there are no Occluders for the ceiling shafts.
Thank you for your time on this Minmay and Batty:)
Tiles:
EDIT: Batty I do believe the Occluders are doing their job thxs for that. I was wondering if I adjusted the height of the ( MinePit3N_occluder.fbx ) up 1 and rotated to fit the model below, would that work you think?? Just a guess don't know if it will work.
Ok I know now that this is no good right? So now I have to delete the Occluder out of this yeah?
1 - Still not find Cave in Occluders, I don't think there are any cavein Occluders with the original Assets Script by AH.
2 - Does the rest of the .lua script look good to you ??
3 - I have to change the Smoker Particle to floor object not wall
4 - When I draw a floor using any of the Tile's eg old_mine_floor and make the floor=0 and ceiling=1 the ceiling is on the floor. If I change it to floor=0 and ceiling=2 then the room is 1 tile high or floor I don't know what's wrong with tile draw so ill post the tiles.lua here, I need to get this working properly.
5 - Yes strange there are no Occluders for the ceiling shafts.
Thank you for your time on this Minmay and Batty:)
Tiles:
Code: Select all
----------------------
--- Basci Wall Set ---
----------------------
defineTile{
name = "old_mine_floor",
editorIcon = 112,
color = {110,130,110,255},
randomFloorFacing = false,
solid = false,
builder = "dungeon",
floor = {
"ph_mine_floor_basic", 1,
},
wall = {
"ph_mine_wall_basic", 10,
},
pillar = {
"mine_support_pillar_01", 1,
},
ceiling = {
"ph_mine_ceiling_basic", 1,
},
--ph_mine_ceiling_shaft",
automapTile = "ground",
}
defineTile{
name = "old_mine_wall",
editorIcon = 196,
color = {110,130,110,255},
solid = true,
builder = "dungeon",
wall = {
"ph_mine_wall_basic", 10,
},
pillar = {
"mine_support_pillar_01", 1,
},
ceiling = {
"ph_mine_ceiling_basic", 1,
},
automapTile = "wall",
}
------------------------------
---- Basic Mine Water Tile ---
------------------------------
defineTile{
name = "old_mine_water",
editorIcon = 112,
color = {45,95,140,255},
builder = "dungeon",
floor = {
"ph_mine_floor_basic", 1,
},
ceiling = {
"ph_mine_ceiling_basic", 1,
},
wall = {
"ph_mine_wall_basic", 1,
},
pillar = {
"mine_support_pillar_01", 1,
},
underwater = true,
--ceilingEdgeVariations = true, ---Not working??---
ceilingShaft = "ph_mine_ceiling_shaft",
automapTile = "water",
}
------------------------------------
---- Chasms Water Tile No Pillars---
------------------------------------
defineTile{
name = "old_mine_chasm_water",
editorIcon = 112,
color = {45,95,140,255},
builder = "dungeon",
floor = {
"ph_mine_floor_basic", 1,
},
ceiling = {
"ph_mine_ceiling_rock", 1,
},
wall = {
"ph_mine_wall_rocky", 1,
},
underwater = true,
--ceilingEdgeVariations = true,
ceilingShaft = "ph_mine_ceiling_shaft",
automapTile = "water",
}
--------------------
--- Rock Ceiling ---
--------------------
defineTile{
name = "old_mine_floor_rock_ceiling",
editorIcon = 112,
color = {110,130,110,255},
randomFloorFacing = false,
solid = false,
builder = "dungeon",
floor = {
"ph_mine_floor_basic", 1,
},
wall = {
"ph_mine_wall_basic", 10,
},
pillar = {
"mine_support_pillar_01", 1,
},
ceiling = {
"ph_mine_ceiling_rock", 1,
},
--ceilingShaft = "ph_mine_ceiling_shaft",
automapTile = "ground",
}
defineTile{
name = "old_mine_wall_rock_ceiling",
editorIcon = 196,
color = {110,130,110,255},
solid = true,
builder = "dungeon",
wall = {
"ph_mine_wall_basic", 10,
},
pillar = {
"mine_support_pillar_01", 1,
},
ceiling = {
"ph_mine_ceiling_rock", 1,
},
automapTile = "wall",
}
----------------------------
--- Rock Ceiling and Wall---
----------------------------
defineTile{
name = "old_mine_floor_rock_ceiling_wall",
editorIcon = 112,
color = {110,130,110,255},
randomFloorFacing = false,
solid = false,
builder = "dungeon",
floor = {
"ph_mine_floor_basic", 1,
},
wall = {
"ph_mine_wall_rocky", 10,
},
ceiling = {
"ph_mine_ceiling_rock", 1,
},
automapTile = "ground",
}
defineTile{
name = "old_mine_wall_rock_ceiling_wall",
editorIcon = 196,
color = {110,130,110,255},
solid = true,
builder = "dungeon",
wall = {
"ph_mine_wall_basic", 10,
},
ceiling = {
"ph_mine_wall_rocky", 1,
},
automapTile = "wall",
}
Ok I know now that this is no good right? So now I have to delete the Occluder out of this yeah?
Code: Select all
defineObject{
name = "ph_mine_shaft_N",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MineShaftN.fbx",
staticShadow = true,
},
{
class = "Occluder",
model = "assets/models/env/dungeon_pit_occluder.fbx",
},
},
}
Re: [Asset Final] Mine Tile Set by: Phitt
Good idea, to be sure, I think you'd have to take the MinePit3N model and move it up so that it occupied the same space as the shaft, no more, no less. Then you'd know that MinePit3N's occluder would work on the shaft (and then move MinePit3N's occluder the same amount). Or you can make a temporary object with MinePit3N's occluder as the model, then you can see it and position it exactly around MineShaftN:Eleven Warrior wrote:EDIT: Batty I do believe the Occluders are doing their job thxs for that. I was wondering if I adjusted the height of the ( MinePit3N_occluder.fbx ) up 1 and rotated to fit the model below, would that work you think?? Just a guess don't know if it will work.
Code: Select all
defineObject{
name = "temp_01",
baseObject = "base_pit",
components = {
{
class = "Model",
model = "mod_assets/models/mine/MinePit3N_occluder.fbx",
staticShadow = true,
}
}
}