static Color getGoodsColor(String good) {
        good = good.toLowerCase();
        
        Color ret = goodsColorCache.get(good);
        
        if (ret == null) {
            for (GenericObject def : goods.children) {
                if (def.name.equalsIgnoreCase(good)) {
                    // found it
                    GenericList color = def.getList("color");
                    if (color == null) {
                        System.err.println("color for " + good + " is null");
                        return COLOR_NO_GOOD_DEF;
                    }
                    ret = new Color(
                            Float.parseFloat(color.get(0)),
                            Float.parseFloat(color.get(1)),
                            Float.parseFloat(color.get(2))
                            );
                    goodsColorCache.put(good, ret);
                    return ret;
                }
            }
            return COLOR_NO_GOOD_DEF;
        }
        return ret;
    }