On 5/4/06, <b class="gmail_sendername">Jean-Paul Calderone</b> &lt;<a href="mailto:exarkun@divmod.com">exarkun@divmod.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thu, 4 May 2006 10:47:45 -0400, Christopher Armstrong &lt;<a href="mailto:radix@twistedmatrix.com">radix@twistedmatrix.com</a>&gt; wrote:<br>&gt;On 5/4/06, Mike Pelletier &lt;<a href="mailto:mike@mkp.ca">mike@mkp.ca</a>
&gt; wrote:<br>&gt;&gt;On Thursday 04 May 2006 10:09, Christopher Armstrong wrote:<br>&gt;&gt; &gt; We did it. Rooms can now be dark (a LocationLighting powerup on a<br>&gt;&gt; &gt; room, with candelas set to 0), and they'll make everything inside of
<br>&gt;&gt; &gt; them invisible[1]. It does this by powering up the room for<br>&gt;&gt; &gt; ILocationProxy, which will get a chance to proxy all of its contents<br>&gt;&gt; &gt; found during a findProviders traversal (as opposed to an IProxy, which
<br>&gt;&gt; &gt; gets a chance to proxy all objects found *through* it, like the<br>&gt;&gt; &gt; objects on the other side of a red glass window).<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Then we implemented a torch. The torch is a Thing with a LightSource
<br>&gt;&gt; &gt; powerup; the LightSource powers up its thing for ILightSource, and<br>&gt;&gt; &gt; provides a candelas attribute. The LightingLocation proxy searches for<br>&gt;&gt; &gt; (calls findProviders with) ILightSource, accumulates all the light
<br>&gt;&gt; &gt; sources, and adds it to the ambient light of the room, to decide<br>&gt;&gt; &gt; whether it is bright enough to see anything.<br>&gt;&gt;<br>&gt;&gt;Does an ILocationProxy get to know who's asking?&nbsp;&nbsp;Seems as though
<br>&gt;&gt;properties<br>&gt;&gt;of the actor would be important to deciding whether it's bright enough/too<br>&gt;&gt;bright.<br>&gt;<br>&gt;Not yet, but it's a good possibility. We've been careful to not do too<br>&gt;much that doesn't directly solve use cases we want to implement, so as
<br>&gt;to avoid the abstraction-insanity that Imagination had. Getting<br>&gt;information about the observer doing the requesting sounds like<br>&gt;something that would really be necessary for a bunch of use cases,<br>&gt;though.
<br><br><br>I don't think IProxy.proxy needs to know who's asking.&nbsp;&nbsp;The point<br>is that the proxy objects it returns have logic in them.&nbsp;&nbsp;Currently<br>the illumination game system is extremely stupid: if a location is<br>
lit, everyone can see things in it; otherwise no one can.&nbsp;&nbsp;A more<br>advanced illumination game system would wrap objects and then provide<br>an alternate IConcept implementation.&nbsp;&nbsp;If the light level is low but<br>non-zero, it can replace the thing's description with text like &quot;a
<br>dark oblong blob&quot;; since conceptualization does take the observer<br>into account already, if it is dark but the observer has infravision,<br>a custom description that takes both of these facts into account can<br>
be given to just that observer.<br><br>Jean-Paul</blockquote><div><br>As things progress and more combinations of conditions, objects, and actors exist,<br>how will you manage all these descriptions of the objects in so many environments
<br>or what kind of automation will come to describing them under the different conditions<br>and to differently abled actors? That is, will you need to define that for some range of<br>light in a normally-visioned person that &quot;a dark oblong blob&quot; is the description, or is
<br>that somehow deducable by the system?<br></div><br></div>