147 lines
9.7 KiB
HTML
147 lines
9.7 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<link rel="stylesheet" href="../../../../coverage.css"/> <title> cc/journeyman/the_great_game/holdings/holding.clj </title>
|
|
</head>
|
|
<body>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
001 (ns cc.journeyman.the-great-game.holdings.holding
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
002 (:require [cc.journeyman.the-great-game.agent.agent :refer [ProtoAgent]]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
003 [cc.journeyman.the-great-game.objects.container :refer [ProtoContainer]]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
004 [cc.journeyman.the-great-game.objects.game-object :refer [ProtoObject]]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
005 ;; [cc.journeyman.the-great-game.location.location :refer [OrientedLocation]]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
006 [cc.journeyman.the-great-game.world.routes :refer []]))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
007
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
008 ;;; A holding is a polygonal area of the map which does not
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
009 ;;; intersect with any other holding, or with any road or water feature. For
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
010 ;;; the time being we'll make the
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
011 ;;; simplifying assumption that every holding is a rectangular strip, and that
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
012 ;;; 'urban' holdings are of a reasonably standard width (see Viking-period
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
013 ;;; York) and length. Rural holdings (farms, ?wood lots) may be much larger.
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
014
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
015 (defprotocol ProtoHolding
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
016 (frontage
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
017 [holding]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
018 "Returns a sequence of two locations representing the edge of the polygon
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
019 which defines this holding which is considered to be the front.")
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
020 (building-origin
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
021 [holding]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
022 "Returns an oriented location - normally the right hand end of the
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
023 frontage, for an urban holding - from which buildings on the holding
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
024 should be built."))
|
|
</span><br/>
|
|
<span class="blank" title="0 out of 0 forms covered">
|
|
025
|
|
</span><br/>
|
|
<span class="covered" title="1 out of 1 forms covered">
|
|
026 (defrecord Holding [perimeter holder]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
027 ;; Perimeter should be a list of locations in exactly the same sense as a
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
028 ;; route in `cc.journeyman.the-great-game.world.routes`. Some sanity checking
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
029 ;; is needed to ensure this!
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
030 ProtoContainer
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
031 ProtoHolding
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 1 forms covered">
|
|
032 (frontage
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
033 [holding]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
034 "TODO: this is WRONG, but will work for now. The frontage should
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
035 be the side of the perimeter nearest to the nearest existing
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
036 route."
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 11 forms covered">
|
|
037 [(first (perimeter holding)) (nth (perimeter holding) 1)])
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 1 forms covered">
|
|
038 (building-origin
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
039 [holding]
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
040 "TODO: again this is WRONG. The default building origin for rectangular
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
041 buildings should be the right hand end of the frontage when viewed
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
042 from outside the holding. But that's not general; celtic-style circular
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
043 buildings should normally be in the centre of their holdings. So probably
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
044 building-origin becomes a method of building-family rather than of holding."
|
|
</span><br/>
|
|
<span class="not-covered" title="0 out of 5 forms covered">
|
|
045 (first (frontage holding)))
|
|
</span><br/>
|
|
<span class="not-tracked" title="0 out of 0 forms covered">
|
|
046 ProtoObject)
|
|
</span><br/>
|
|
</body>
|
|
</html>
|