Doors

Door

entity {

	entityDef interact_doors_cultist_wide_01_1 {

	inherit = "interact/doors/cultist_wide_01";

	class = "idInteractable_Obstacle";

	expandInheritance = false;

	poolCount = 0;

	poolGranularity = 2;

	networkReplicated = false;

	disableAIPooling = false;

	edit = {

		soundOffset = {

			z = 1.5;

		}

		whenToSave = "SGT_CHECKPOINT";

		flags = {

			skipRenderModelReplication = true;

		}

		dormancy = {

			distance = 100;

			playerDistance = 120;

			playerRearwardDistance = 80;

		}

		fxDecl = "gameplay/invasion/demon_door";

		interaction = {

			initalState = "interactables/door/normal/locked";

			interactionGraph = "interactables/door";

			stateData = {

				num = 1;

				item[0] = {

					stateName = "interactables/door/normal/locked";

				}

			}

			transitionData = {

				num = 12;

				item[0] = {

					transitionName = "needs_key_To_unlocked_open";

					additionalWaitMs = 1000;

					playSoundOnTransition = "play_doomhunter_widedoor_open_unlocked";

				}

				item[1] = {

					transitionName = "unlocked_To_unlocked_open";

					playSoundOnTransition = "play_doomhunter_widedoor_open";

				}

				item[2] = {

					transitionName = "unlocked_open_To_unlocked";

					playSoundOnTransition = "play_doomhunter_widedoor_close";

				}

				item[3] = {

					transitionName = "locked_To_locked_open";

					playSoundOnTransition = "play_doomhunter_widedoor_open";

				}

				item[4] = {

					transitionName = "locked_open_To_locked";

					playSoundOnTransition = "play_doomhunter_widedoor_close";

				}

				item[5] = {

					transitionName = "unlocked_open_To_locked";

					playSoundOnTransition = "play_doomhunter_widedoor_close";

				}

				item[6] = {

					transitionName = "locked_To_locked_fail";

				}

				item[7] = {

					transitionName = "needs_key_To_needs_key_failed";

				}

				item[8] = {

					transitionName = "locked_To_unlocked";

				}

				item[9] = {

					transitionName = "unlocked_To_locked";

				}

				item[10] = {

					transitionName = "start_locked_To_locked";

				}

				item[11] = {

					transitionName = "locked_To_stay_open";

				}

			}

			animWebDecl = "animweb/interact/doors/cultist_wide_01";

		}

		touchData = {

			retouchDelaySec = 0.5;

			triggerDef = "trigger/interact/cultist_wide_01_square";

		}

		stateColors = {

			num = 8;

			item[0] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_red";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_red";

					}

				}

				state = "start_locked";

			}

			item[1] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_red";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_red";

					}

				}

				state = "activate_to_unlock";

			}

			item[2] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_red";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_red";

					}

				}

				state = "locked";

			}

			item[3] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_red";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_red";

					}

				}

				state = "needs_key";

			}

			item[4] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_green";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_blue";

					}

				}

				state = "unlocked";

			}

			item[5] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_green";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_blue";

					}

				}

				state = "locked_open";

			}

			item[6] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_green";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_blue";

					}

				}

				state = "unlocked_open";

			}

			item[7] = {

				colorScale = 5;

				materialSwapList = {

					num = 2;

					item[0] = {

						from = "art/tile/glow/doorglow_a";

						to = "art/tile/glow/doorglow_green";

					}

					item[1] = {

						from = "art/tile/glow/doorglow_b";

						to = "art/tile/glow/doorglow_blue";

					}

				}

				state = "stay_open";

			}

		}

		collisionPieces = {

			num = 4;

			item[0] = {

				meshName = "collision";

				jointName = "collision_joint";

			}

			item[1] = {

				meshName = "collision1";

				jointName = "collision1_joint";

			}

			item[2] = {

				meshName = "collision2";

				jointName = "collision2_joint";

			}

			item[3] = {

				meshName = "collision3";

				jointName = "collision3_joint";

			}

		}

		blockerBoundsExpandDists = {

			x = 0.100000001;

			y = 1;

			z = 0.100000001;

		}

		stateObstacleData = {

			num = 16;

			item[0] = {

				statePath = "interactables/door/normal/activate_to_unlock";

				obstacleReachability = true;

			}

			item[1] = {

				statePath = "interactables/door/normal/locked";

				obstacleReachability = true;

			}

			item[2] = {

				statePath = "interactables/door/normal/locked_fail";

				obstacleReachability = true;

			}

			item[3] = {

				statePath = "interactables/door/normal/locked_open";

			}

			item[4] = {

				statePath = "interactables/door/normal/needs_key";

				obstacleReachability = true;

			}

			item[5] = {

				statePath = "interactables/door/normal/needs_key_failed";

				obstacleReachability = true;

			}

			item[6] = {

				statePath = "interactables/door/normal/start_locked";

				obstacleReachability = true;

			}

			item[7] = {

				statePath = "interactables/door/normal/stay_open";

			}

			item[8] = {

				statePath = "interactables/door/normal/unlocked";

			}

			item[9] = {

				statePath = "interactables/door/normal/unlocked_open";

			}

			item[10] = {

				statePath = "interactables/door/oneWay/oneWay_closed";

				obstacleReachability = true;

			}

			item[11] = {

				statePath = "interactables/door/oneWay/oneWay_lock_fail";

				obstacleReachability = true;

			}

			item[12] = {

				statePath = "interactables/door/oneWay/oneWay_locked";

				obstacleReachability = true;

			}

			item[13] = {

				statePath = "interactables/door/oneWay/oneWay_open";

			}

			item[14] = {

				statePath = "interactables/door/oneWay/oneWay_open_fail";

				obstacleReachability = true;

			}

			item[15] = {

				statePath = "interactables/door/oneWay/oneWay_opened";

			}

		}

		dissolveDistance = 20;

		renderModelInfo = {

			model = "md6def/objects/doors/cultist_wide_door_01/cultist_wide_door_01.md6";

		}

		guiData = {

			swfFile = "swf/worldgui/guientity/1_interact_lock_default.swf";

			scale = 0.0850000009;

			initialCommands = {

				num = 1;

				item[0] = {

					commandType = "SPRITE_HIDE";

				}

			}

			positionOffset = {

				x = 8;

				z = 25;

			}

		}

		umbraVisBlocking = "CAN_BLOCK";

		umbraSoundBlocking = "CAN_BLOCK";

		demonPlayerRenderModel = "art/objects/door/demon/cultist_wideDoor_01_demon.lwo";

		spawnPosition = {

			x = -11.11;

			y = -11.11;

			z = -11.11;

		}

		demonPlayersPassThrough = false;

	}

}

}

Open

entity {

	entityDef interact_doors_cultist_wide_01_1_open {

	inherit = "target/interact_action_door";

	class = "idTarget_InteractionAction";

	expandInheritance = false;

	poolCount = 0;

	poolGranularity = 2;

	networkReplicated = false;

	disableAIPooling = false;

	edit = {

		renderModelInfo = {

			materialRemap = {

				num = 1;

				item[0] = {

					to = "art/tile/common/nodraw";

				}

			}

		}

		actionFilter = "interactionAction/door";

		spawnPosition = {

			x = -11.11;

			y = -11.11;

			z = -11.11;

		}

		targets = {

			num = 1;

			item[0] = "interact_doors_cultist_wide_01_1";

		}

		action = "IA_DOOR_OPEN";

	}

}

}

Replication

entity {

	entityDef interact_doors_cultist_wide_01_1_timeline {

	inherit = "target/timeline";

	class = "idTarget_Timeline";

	expandInheritance = false;

	poolCount = 0;

	poolGranularity = 2;

	networkReplicated = true;

	disableAIPooling = false;

	edit = {

		flags = {

			noFlood = true;

		}

		networkSerializeTransforms = false;

		spawnPosition = {

			x = 1;

			y = 1;

			z = 1;

		}

		componentTimeLine = {

			entityEvents = {

				num = 2;

				item[0] = {

					entity = "interact_doors_cultist_wide_01_1_relay";

					events = {

						num = 1;

						item[0] = {

							eventTime = 250;

							eventCall = {

								eventDef = "activate";

								args = {

									num = 1;

									item[0] = {

										entity = "";

									}

								}

							}

						}

					}

				}

				item[1] = {

					entity = "interact_doors_cultist_wide_01_1_remove";

					events = {

						num = 1;

						item[0] = {

							eventTime = 2500;

							eventCall = {

								eventDef = "activate";

								args = {

									num = 1;

									item[0] = {

										entity = "";

									}

								}

							}

						}

					}

				}

			}

		}

		allowClientsToStart = true;

		renderModelInfo = {

			scale = {

				x = 1;

				y = 1;

				z = 1;

			}

		}

	}

}

}

entity {

	entityDef interact_doors_cultist_wide_01_1_relay {

	inherit = "target/relay";

	class = "idTarget_Count";

	expandInheritance = false;

	poolCount = 0;

	poolGranularity = 2;

	networkReplicated = false;

	disableAIPooling = false;

	edit = {

		flags = {

			noFlood = true;

		}

		networkSerializeTransforms = false;

		count = 1;

		spawnPosition = {

			x = 1;

			y = 1;

			z = 1;

		}

		targets = {

			num = 1;

			item[0] = "interact_doors_cultist_wide_01_1_open";

		}

		repeat = true;

	}

}

}

entity {

	entityDef interact_doors_cultist_wide_01_1_remove {

	inherit = "target/remove";

	class = "idTarget_Remove";

	expandInheritance = false;

	poolCount = 0;

	poolGranularity = 2;

	networkReplicated = false;

	disableAIPooling = false;

	edit = {

		flags = {

			noFlood = true;

		}

		networkSerializeTransforms = false;

		count = 1;

		spawnPosition = {

			x = 1;

			y = 1;

			z = 1;

		}

		targets = {

			num = 1;

			item[0] = "interact_doors_cultist_wide_01_1";

		}

		repeat = true;

	}

}

}

