public override void Bind(Entity entity, Main main, bool creating = false) { Transform transform = entity.GetOrCreate <Transform>("Transform"); PlayerTrigger trigger = entity.GetOrCreate <PlayerTrigger>("PlayerTrigger"); trigger.Serialize = false; VoxelAttachable attachable = VoxelAttachable.MakeAttachable(entity, main); Collectible collectible = entity.GetOrCreate <Collectible>("Collectible"); trigger.Radius.Value = 3; trigger.Add(new Binding <Vector3>(trigger.Position, transform.Position)); trigger.Add(new Binding <bool>(trigger.Enabled, x => !x, collectible.PickedUp)); collectible.Add(new CommandBinding(trigger.PlayerEntered, collectible.PlayerTouched)); Sound.AttachTracker(entity, trigger.Position); PointLight light = entity.Create <PointLight>(); light.Serialize = false; light.Attenuation.Value = 10.0f; light.Color.Value = new Vector3(1.25f, 1.75f, 2.0f); light.Add(new Binding <Vector3>(light.Position, transform.Position)); light.Add(new Binding <bool>(light.Enabled, x => !x, collectible.PickedUp)); ParticleEmitter distortionEmitter = entity.GetOrCreate <ParticleEmitter>("DistortionEmitter"); distortionEmitter.Serialize = false; distortionEmitter.Add(new Binding <Vector3>(distortionEmitter.Position, trigger.Position)); distortionEmitter.ParticleType.Value = "Distortion"; distortionEmitter.ParticlesPerSecond.Value = 4; distortionEmitter.Jitter.Value = new Vector3(0.5f); distortionEmitter.Add(new Binding <bool>(distortionEmitter.Enabled, x => !x, collectible.PickedUp)); Model model = entity.GetOrCreate <Model>("Model"); model.Filename.Value = "Models\\sphere"; model.Serialize = false; model.Scale.Value = new Vector3(0.5f); model.Add(new Binding <Matrix>(model.Transform, transform.Matrix)); model.Add(new Binding <bool>(model.Enabled, x => !x, collectible.PickedUp)); this.SetMain(entity, main); attachable.EditorProperties(); entity.Add("Collected", collectible.PlayerTouched); }