import net.sf.freecol.server.model.ServerPlayer; //导入方法依赖的package包/类
/**
* Visits a native settlement, possibly scouting it full if it is
* as a result of a scout actually asking to speak to the chief,
* or for other settlement-contacting events such as missionary
* actions, demanding tribute, learning skills and trading if the
* settlementActionsContactChief game option is enabled. It is
* still unclear what Col1 did here.
*
* @param serverPlayer The {@code ServerPlayer} that is contacting
* the settlement.
* @param is The {@code IndianSettlement} to contact.
* @param scout Positive if this contact is due to a scout asking to
* speak to the chief, zero if it is another unit, negative if
* this is from the greeting dialog generation.
* @param cs A {@code ChangeSet} to update.
*/
private void csVisit(ServerPlayer serverPlayer, IndianSettlement is,
int scout, ChangeSet cs) {
final ServerPlayer owner = (ServerPlayer)is.getOwner();
if (serverPlayer.csContact(owner, cs)) {
serverPlayer.csNativeFirstContact(owner, null, cs);
}
is.setVisited(serverPlayer);
if (scout > 0 || (scout == 0 && getGame().getSpecification()
.getBoolean(GameOptions.SETTLEMENT_ACTIONS_CONTACT_CHIEF))) {
is.setScouted(serverPlayer);
}
// Force the settlement tile to become uncached. Should not
// be necessary but this might mitigate BR#3128.
is.getTile().seeTile(serverPlayer);
}