local ReplaceEntitiesTrigger = {}

ReplaceEntitiesTrigger.name = "KoseiHelper/ReplaceEntitiesTrigger"
ReplaceEntitiesTrigger.nodeLimits = {0, -1}
ReplaceEntitiesTrigger.placements = {
    name = "ReplaceEntitiesTrigger",
    data = {
		onlyOnce = false,
		fromEntity = "Celeste.CrystalStaticSpinner",
		toEntity = "Celeste.Booster",
		attributes = "red,ch9_hub_booster",
		attributeValues = "true,false",
		triggerMode = "OnEnter",
		flag = ""
    }
}

ReplaceEntitiesTrigger.fieldOrder =  {
	"x",
	"y",
	"width",
	"height",
	"fromEntity",
	"toEntity",
	"attributes",
	"attributeValues",
	"triggerMode",
	"flag",
	"onlyOnce"
}

ReplaceEntitiesTrigger.fieldInformation = function (entity) return {
	attributes = {
		fieldType = "list",
		elementOptions = {
			fieldType = "string"
		}
	},
	attributeValues = {
		fieldType = "list",
		elementOptions = {
			fieldType = "string"
		}
	},
	triggerMode = {
		options = {
		"OnEnter",
		"OnLeave",
		"OnStay"
		},
		editable = false
	},
	fromEntity = {
		options = {
		"Celeste.AltMusicTrigger",
		"Celeste.AmbienceParamTrigger",
		"Celeste.AngryOshiro",
		"Celeste.BadelineBoost",
		"Celeste.BadelineDummy",
		"Celeste.BadelineOldsite",
		"Celeste.BigWaterfall",
		"Celeste.Billboard",
		"Celeste.BirdNPC",
		"Celeste.BirdPath",
		"Celeste.BirdPathTrigger",
		"Celeste.BirdTutorialGui",
		"Celeste.BlackholeStrengthTrigger",
		"Celeste.BladeRotateSpinner",
		"Celeste.BladeTrackSpinner",
		"Celeste.BlockField",
		"Celeste.BloomFadeTrigger",
		"Celeste.BloomPoint",
		"Celeste.Bonfire",
		"Celeste.Booster",
		"Celeste.BounceBlock",
		"Celeste.Bridge",
		"Celeste.BridgeFixed",
		"Celeste.BridgeTile",
		"Celeste.Bumper",
		"Celeste.CameraAdvanceTargetTrigger",
		"Celeste.CameraLocker",
		"Celeste.CameraOffsetTrigger",
		"Celeste.CameraTargetTrigger",
		"Celeste.Cassette",
		"Celeste.CassetteBlock",
		"Celeste.ChangeRespawnTrigger",
		"Celeste.ChaserBarrier",
		"Celeste.Checkpoint",
		"Celeste.CheckpointBlockerTrigger",
		"Celeste.ChimneySmokeFx",
		"Celeste.CliffFlags",
		"Celeste.CliffsideWindFlag",
		"Celeste.ClimbBlocker",
		"Celeste.Clothersline",
		"Celeste.Cloud",
		"Celeste.ClutterBock",
		"Celeste.ClutterCabinet",
		"Celeste.ClutterDoor",
		"Celeste.ClutterSwitch",
		"Celeste.Cobweb",
		"Celeste.CoreMessage",
		"Celeste.CoreModeToggle",
		"Celeste.CoverupWall",
		"Celeste.CreditsTrigger",
		"Celeste.CrumblePlatform",
		"Celeste.CrumbleWallOnRumble",
		"Celeste.CrushBlock",
		"Celeste.CrystalDebris",
		"Celeste.CrystalStaticSpinner",
		"Celeste.CutsceneEntity",
		"Celeste.CutsceneNode",
		"Celeste.DashBlock",
		"Celeste.DashSwitch",
		"Celeste.Debris",
		"Celeste.Decal",
		"Celeste.DetachStrawberryTrigger",
		"Celeste.Door",
		"Celeste.DreamBlock",
		"Celeste.DreamHeartGem",
		"Celeste.DreamMirror",
		"Celeste.Dust",
		"Celeste.DustEdges",
		"Celeste.DustRotateSpinner",
		"Celeste.DustStaticSpinner",
		"Celeste.DustTrackSpinner",
		"Celeste.EventTrigger",
		"Celeste.ExitBlock",
		"Celeste.FakeHeart",
		"Celeste.FakeWall",
		"Celeste.FallingBlock",
		"Celeste.FancyText",
		"Celeste.FinalBoss",
		"Celeste.FinalBossBeam",
		"Celeste.FinalBossMovingBlock",
		"Celeste.FinalBossShot",
		"Celeste.FireBall",
		"Celeste.FireBarrier",
		"Celeste.Flagline",
		"Celeste.FlingBird",
		"Celeste.FlingBirdIntro",
		"Celeste.FloatingDebris",
		"Celeste.FloatySpaceBlock",
		"Celeste.FlutterBird",
		"Celeste.FlyFeather",
		"Celeste.ForegroundDebris",
		"Celeste.ForssakenCitySatellite",
		"Celeste.GlassBlock",
		"Celeste.GlassBlockBg",
		"Celeste.Glider",
		"Celeste.Glitch",
		"Celeste.GoldBerryCollectTrigger",
		"Celeste.GoldenBlock",
		"Celeste.Gondola",
		"Celeste.GondolaDarkness",
		"Celeste.Hahaha",
		"Celeste.HangingLamp",
		"Celeste.HeartGem",
		"Celeste.HeartGemDoor",
		"Celeste.IceBlock",
		"Celeste.InteractTrigger",
		"Celeste.IntroCar",
		"Celeste.IntroCarBarrier",
		"Celeste.IntroCrusher",
		"Celeste.IntroPavement",
		"Celeste.InvisibleBarrier",
		"Celeste.JumpThru",
		"Celeste.JumpthruPlatform",
		"Celeste.KevinsPC",
		"Celeste.Key",
		"Celeste.Killbox",
		"Celeste.Lamp",
		"Celeste.LightBeam",
		"Celeste.LightFadeTrigger",
		"Celeste.Lightning",
		"Celeste.LightningBreakerBox",
		"Celeste.LightningStrike",
		"Celeste.LockBlock",
		"Celeste.Lookout",
		"Celeste.LookoutBlocker",
		"Celeste.Memorial",
		"Celeste.MemorialText",
		"Celeste.MiniTextboxTrigger",
		"Celeste.MirrorSurfaces",
		"Celeste.Mod.Entities.ActivateDreamBlocksTrigger",
		"Celeste.Mod.Entities.AmbienceTrigger",
		"Celeste.Mod.Entities.AmbienceVolumeTrigger",
		"Celeste.Mod.Entities.BadelineOldsiteEnd",
		"Celeste.Mod.Entities.ChangeInventoryTrigger",
		"Celeste.Mod.Entities.CompleteAreaTrigger",
		"Celeste.Mod.Entities.CoreModeTrigger",
		"Celeste.Mod.Entities.CrystalShatterTrigger",
		"Celeste.Mod.Entities.CustomBirdTutorial",
		"Celeste.Mod.Entities.CustomBirdTutorialTrigger",
		"Celeste.Mod.Entities.CustomCoreMessage",
		"Celeste.Mod.Entities.CustomHeightDisplayTrigger",
		"Celeste.Mod.Entities.CustomMemorial",
		"Celeste.Mod.Entities.CustomMemorialText",
		"Celeste.Mod.Entities.CustomNPC",
		"Celeste.Mod.Entities.DialogCutsceneTrigger",
		"Celeste.Mod.Entities.EntityTrigger",
		"Celeste.Mod.Entities.FlagTrigger",
		"Celeste.Mod.Entities.LavaBlockerTrigger",
		"Celeste.Mod.Entities.MusicLayerTrigger",
		"Celeste.Mod.Entities.SmoothCameraOffsetTrigger",
		"Celeste.Mod.Entities.StarClimbGraphicsController",
		"Celeste.Mod.Entities.TriggerSpikesOriginal",
		"Celeste.MoonCreature",
		"Celeste.MoonGlitchBackgroundTrigger",
		"Celeste.MoveBlock",
		"Celeste.MovingPlatform",
		"Celeste.MovingPlatformLine",
		"Celeste.MrOshiroDoor",
		"Celeste.MusicFadeTrigger",
		"Celeste.MusicTrigger",
		"Celeste.NegaBlock",
		"Celeste.NoRefillTrigger",
		"Celeste.NPC",
		"Celeste.OshiroLobbyBell",
		"Celeste.OshiroTrigger",
		"Celeste.Payphone",
		"Celeste.PicoConsole",
		"Celeste.Plateau",
		"Celeste.Player",
		"Celeste.PlayerSeeker",
		"Celeste.PowerSourceNumber",
		"Celeste.Puffer",
		"Celeste.Refill",
		"Celeste.ReflectionHeartStatue",
		"Celeste.ResortLantern",
		"Celeste.ResortMirror",
		"Celeste.ResortRoofEnding",
		"Celeste.RespawnTargetTrigger",
		"Celeste.RidgeGate",
		"Celeste.RisingLava",
		"Celeste.RotateSpinner",
		"Celeste.RotatingPlatform",
		"Celeste.RumbleTrigger",
		"Celeste.SandwichLava",
		"Celeste.Seeker",
		"Celeste.SeekerBarrier",
		"Celeste.SeekerStatue",
		"Celeste.Selfie",
		"Celeste.SinkingPlatform",
		"Celeste.SinkingPlatformLine",
		"Celeste.Slider",
		"Celeste.Snowball",
		"Celeste.SolidTiles",
		"Celeste.SpaceController",
		"Celeste.SpawnFacingTrigger",
		"Celeste.Spikes",
		"Celeste.Spring",
		"Celeste.StarJumpBlock",
		"Celeste.StarJumpController",
		"Celeste.StarRotateSpinner",
		"Celeste.StopBoostTrigger",
		"Celeste.Strawberry",
		"Celeste.SummitCloud",
		"Celeste.SummitGem",
		"Celeste.SummitGemManager",
		"Celeste.SwapBlock",
		"Celeste.SwitchGate",
		"Celeste.TempleBigEyeball",
		"Celeste.TempleBigEyeballShockwave",
		"Celeste.TempleCrackedBlock",
		"Celeste.TempleEye",
		"Celeste.TempleGate",
		"Celeste.TempleMirror",
		"Celeste.TempleMirrorPortal",
		"Celeste.TemplePortalTorch",
		"Celeste.TheoCrystal",
		"Celeste.TheoCrystalPedestal",
		"Celeste.TheoPhone",
		"Celeste.Torch",
		"Celeste.TouchSwitch",
		"Celeste.TrackSpinner",
		"Celeste.Trapdoor",
		"Celeste.TriggerSpikes",
		"Celeste.WallBooster",
		"Celeste.Water",
		"Celeste.WaterFall",
		"Celeste.WaveDashTutorialMachine",
		"Celeste.WhiteBlock",
		"Celeste.WindAttackTrigger",
		"Celeste.WindTrigger",
		"Celeste.Wire",
		"Celeste.ZipMover"
		},
		editable = true
	},
	toEntity = {
		options = {
		"Celeste.AltMusicTrigger",
		"Celeste.AmbienceParamTrigger",
		"Celeste.AngryOshiro",
		"Celeste.BadelineBoost",
		"Celeste.BadelineDummy",
		"Celeste.BadelineOldsite",
		"Celeste.BigWaterfall",
		"Celeste.Billboard",
		"Celeste.BirdNPC",
		"Celeste.BirdPath",
		"Celeste.BirdPathTrigger",
		"Celeste.BirdTutorialGui",
		"Celeste.BlackholeStrengthTrigger",
		"Celeste.BladeRotateSpinner",
		"Celeste.BladeTrackSpinner",
		"Celeste.BlockField",
		"Celeste.BloomFadeTrigger",
		"Celeste.BloomPoint",
		"Celeste.Bonfire",
		"Celeste.Booster",
		"Celeste.BounceBlock",
		"Celeste.Bridge",
		"Celeste.BridgeFixed",
		"Celeste.BridgeTile",
		"Celeste.Bumper",
		"Celeste.CameraAdvanceTargetTrigger",
		"Celeste.CameraLocker",
		"Celeste.CameraOffsetTrigger",
		"Celeste.CameraTargetTrigger",
		"Celeste.Cassette",
		"Celeste.CassetteBlock",
		"Celeste.ChangeRespawnTrigger",
		"Celeste.ChaserBarrier",
		"Celeste.Checkpoint",
		"Celeste.CheckpointBlockerTrigger",
		"Celeste.ChimneySmokeFx",
		"Celeste.CliffFlags",
		"Celeste.CliffsideWindFlag",
		"Celeste.ClimbBlocker",
		"Celeste.Clothersline",
		"Celeste.Cloud",
		"Celeste.ClutterBock",
		"Celeste.ClutterCabinet",
		"Celeste.ClutterDoor",
		"Celeste.ClutterSwitch",
		"Celeste.Cobweb",
		"Celeste.CoreMessage",
		"Celeste.CoreModeToggle",
		"Celeste.CoverupWall",
		"Celeste.CreditsTrigger",
		"Celeste.CrumblePlatform",
		"Celeste.CrumbleWallOnRumble",
		"Celeste.CrushBlock",
		"Celeste.CrystalDebris",
		"Celeste.CrystalStaticSpinner",
		"Celeste.CutsceneEntity",
		"Celeste.CutsceneNode",
		"Celeste.DashBlock",
		"Celeste.DashSwitch",
		"Celeste.Debris",
		"Celeste.Decal",
		"Celeste.DetachStrawberryTrigger",
		"Celeste.Door",
		"Celeste.DreamBlock",
		"Celeste.DreamHeartGem",
		"Celeste.DreamMirror",
		"Celeste.Dust",
		"Celeste.DustEdges",
		"Celeste.DustRotateSpinner",
		"Celeste.DustStaticSpinner",
		"Celeste.DustTrackSpinner",
		"Celeste.EventTrigger",
		"Celeste.ExitBlock",
		"Celeste.FakeHeart",
		"Celeste.FakeWall",
		"Celeste.FallingBlock",
		"Celeste.FancyText",
		"Celeste.FinalBoss",
		"Celeste.FinalBossBeam",
		"Celeste.FinalBossMovingBlock",
		"Celeste.FinalBossShot",
		"Celeste.FireBall",
		"Celeste.FireBarrier",
		"Celeste.Flagline",
		"Celeste.FlingBird",
		"Celeste.FlingBirdIntro",
		"Celeste.FloatingDebris",
		"Celeste.FloatySpaceBlock",
		"Celeste.FlutterBird",
		"Celeste.FlyFeather",
		"Celeste.ForegroundDebris",
		"Celeste.ForssakenCitySatellite",
		"Celeste.GlassBlock",
		"Celeste.GlassBlockBg",
		"Celeste.Glider",
		"Celeste.Glitch",
		"Celeste.GoldBerryCollectTrigger",
		"Celeste.GoldenBlock",
		"Celeste.Gondola",
		"Celeste.GondolaDarkness",
		"Celeste.Hahaha",
		"Celeste.HangingLamp",
		"Celeste.HeartGem",
		"Celeste.HeartGemDoor",
		"Celeste.IceBlock",
		"Celeste.InteractTrigger",
		"Celeste.IntroCar",
		"Celeste.IntroCarBarrier",
		"Celeste.IntroCrusher",
		"Celeste.IntroPavement",
		"Celeste.InvisibleBarrier",
		"Celeste.JumpThru",
		"Celeste.JumpthruPlatform",
		"Celeste.KevinsPC",
		"Celeste.Key",
		"Celeste.Killbox",
		"Celeste.Lamp",
		"Celeste.LightBeam",
		"Celeste.LightFadeTrigger",
		"Celeste.Lightning",
		"Celeste.LightningBreakerBox",
		"Celeste.LightningStrike",
		"Celeste.LockBlock",
		"Celeste.Lookout",
		"Celeste.LookoutBlocker",
		"Celeste.Memorial",
		"Celeste.MemorialText",
		"Celeste.MiniTextboxTrigger",
		"Celeste.MirrorSurfaces",
		"Celeste.Mod.Entities.ActivateDreamBlocksTrigger",
		"Celeste.Mod.Entities.AmbienceTrigger",
		"Celeste.Mod.Entities.AmbienceVolumeTrigger",
		"Celeste.Mod.Entities.BadelineOldsiteEnd",
		"Celeste.Mod.Entities.ChangeInventoryTrigger",
		"Celeste.Mod.Entities.CompleteAreaTrigger",
		"Celeste.Mod.Entities.CoreModeTrigger",
		"Celeste.Mod.Entities.CrystalShatterTrigger",
		"Celeste.Mod.Entities.CustomBirdTutorial",
		"Celeste.Mod.Entities.CustomBirdTutorialTrigger",
		"Celeste.Mod.Entities.CustomCoreMessage",
		"Celeste.Mod.Entities.CustomHeightDisplayTrigger",
		"Celeste.Mod.Entities.CustomMemorial",
		"Celeste.Mod.Entities.CustomMemorialText",
		"Celeste.Mod.Entities.CustomNPC",
		"Celeste.Mod.Entities.DialogCutsceneTrigger",
		"Celeste.Mod.Entities.EntityTrigger",
		"Celeste.Mod.Entities.FlagTrigger",
		"Celeste.Mod.Entities.LavaBlockerTrigger",
		"Celeste.Mod.Entities.MusicLayerTrigger",
		"Celeste.Mod.Entities.SmoothCameraOffsetTrigger",
		"Celeste.Mod.Entities.StarClimbGraphicsController",
		"Celeste.Mod.Entities.TriggerSpikesOriginal",
		"Celeste.MoonCreature",
		"Celeste.MoonGlitchBackgroundTrigger",
		"Celeste.MoveBlock",
		"Celeste.MovingPlatform",
		"Celeste.MovingPlatformLine",
		"Celeste.MrOshiroDoor",
		"Celeste.MusicFadeTrigger",
		"Celeste.MusicTrigger",
		"Celeste.NegaBlock",
		"Celeste.NoRefillTrigger",
		"Celeste.NPC",
		"Celeste.OshiroLobbyBell",
		"Celeste.OshiroTrigger",
		"Celeste.Payphone",
		"Celeste.PicoConsole",
		"Celeste.Plateau",
		"Celeste.Player",
		"Celeste.PlayerSeeker",
		"Celeste.PowerSourceNumber",
		"Celeste.Puffer",
		"Celeste.Refill",
		"Celeste.ReflectionHeartStatue",
		"Celeste.ResortLantern",
		"Celeste.ResortMirror",
		"Celeste.ResortRoofEnding",
		"Celeste.RespawnTargetTrigger",
		"Celeste.RidgeGate",
		"Celeste.RisingLava",
		"Celeste.RotateSpinner",
		"Celeste.RotatingPlatform",
		"Celeste.RumbleTrigger",
		"Celeste.SandwichLava",
		"Celeste.Seeker",
		"Celeste.SeekerBarrier",
		"Celeste.SeekerStatue",
		"Celeste.Selfie",
		"Celeste.SinkingPlatform",
		"Celeste.SinkingPlatformLine",
		"Celeste.Slider",
		"Celeste.Snowball",
		"Celeste.SolidTiles",
		"Celeste.SpaceController",
		"Celeste.SpawnFacingTrigger",
		"Celeste.Spikes",
		"Celeste.Spring",
		"Celeste.StarJumpBlock",
		"Celeste.StarJumpController",
		"Celeste.StarRotateSpinner",
		"Celeste.StopBoostTrigger",
		"Celeste.Strawberry",
		"Celeste.SummitCloud",
		"Celeste.SummitGem",
		"Celeste.SummitGemManager",
		"Celeste.SwapBlock",
		"Celeste.SwitchGate",
		"Celeste.TempleBigEyeball",
		"Celeste.TempleBigEyeballShockwave",
		"Celeste.TempleCrackedBlock",
		"Celeste.TempleEye",
		"Celeste.TempleGate",
		"Celeste.TempleMirror",
		"Celeste.TempleMirrorPortal",
		"Celeste.TemplePortalTorch",
		"Celeste.TheoCrystal",
		"Celeste.TheoCrystalPedestal",
		"Celeste.TheoPhone",
		"Celeste.Torch",
		"Celeste.TouchSwitch",
		"Celeste.TrackSpinner",
		"Celeste.Trapdoor",
		"Celeste.TriggerSpikes",
		"Celeste.WallBooster",
		"Celeste.Water",
		"Celeste.WaterFall",
		"Celeste.WaveDashTutorialMachine",
		"Celeste.WhiteBlock",
		"Celeste.WindAttackTrigger",
		"Celeste.WindTrigger",
		"Celeste.Wire",
		"Celeste.ZipMover"
		},
		editable = true
	}
}
end

return ReplaceEntitiesTrigger