public DungeonGeneratorConfiguration <TNode> SmartClone() { return(new DungeonGeneratorConfiguration <TNode>() { RoomsCanTouch = RoomsCanTouch, EarlyStopIfIterationsExceeded = EarlyStopIfIterationsExceeded, EarlyStopIfTimeExceeded = EarlyStopIfTimeExceeded, RepeatModeOverride = RepeatModeOverride, ThrowIfRepeatModeNotSatisfied = ThrowIfRepeatModeNotSatisfied, ChainDecompositionConfiguration = ChainDecompositionConfiguration.SmartClone(), Chains = Chains?.Select(x => new Chain <TNode>(x.Nodes.ToList(), x.Number)).ToList(), SimulatedAnnealingConfiguration = SimulatedAnnealingConfiguration.SmartClone(), SimulatedAnnealingMaxBranching = SimulatedAnnealingMaxBranching, }); }
public new GraphBasedGeneratorConfiguration <TNode> SmartClone() { return(new GraphBasedGeneratorConfiguration <TNode>() { RoomsCanTouch = RoomsCanTouch, EarlyStopIfIterationsExceeded = EarlyStopIfIterationsExceeded, EarlyStopIfTimeExceeded = EarlyStopIfTimeExceeded, RepeatModeOverride = RoomTemplateRepeatMode.NoImmediate, ThrowIfRepeatModeNotSatisfied = ThrowIfRepeatModeNotSatisfied, ChainDecompositionConfiguration = ChainDecompositionConfiguration.SmartClone(), Chains = Chains?.Select(x => new Chain <TNode>(x.Nodes.ToList(), x.Number)).ToList(), SimulatedAnnealingConfiguration = SimulatedAnnealingConfiguration.SmartClone(), SimulatedAnnealingMaxBranching = SimulatedAnnealingMaxBranching, OptimizeCorridorConstraints = OptimizeCorridorConstraints, }); }