News:

Welcome to World of Banished!

Main Menu

New 30 Trees.(IdleMOD)

Started by Idle Work Team, October 03, 2015, 07:20:18 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Idle Work Team

(50~250 face)
We look at the effect.


Idle Work Team

The new trees will not drop your FPS(Tested)

LadyMarmalade

I am not a Gamer because I don't have a life but because I choose to have many.

RedKetchup

> > > Support Mods Creation developments with Donations by Paypal  < < <
Click here to Donate by PayPal .

estherhb


RedKetchup

question @Idle Work Team


are the animated ? will they change with seasons ?

if not, planning to do it ?
> > > Support Mods Creation developments with Donations by Paypal  < < <
Click here to Donate by PayPal .

Idle Work Team

Quote from: RedKetchup on October 04, 2015, 01:51:26 AM
question @Idle Work Team


are the animated ? will they change with seasons ?

if not, planning to do it ?
animated, but not leaves.

Turis

Are you going to have them separated by climate?

Idle Work Team

@RedKetchup
Hi there. I was building a new construction like this .

But it wouldn't work because the land ground within this game has restricts me

And it looks like this now ,So I used Miners code
QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\Buildings\Quarry\QuarryFloor.rsc";
   float _maxDepth = -7.0;
   float _initialDepth = -7;
}

So I had to build a ground floor for this construction, it turns out wasn't like what I expected but collapsed at it edges .

QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\build\Shandimofang\floor1.rsc";
   float _maxDepth = -5.0;
   float _initialDepth = -4;
}



So how could I build the ground for buildings like miner? Is there any special code or requirements for these buildings?
What I really want to do is delete those default ground layers under buildings , I saw your canal achieve this functionality.

Sorry for bothering you for the problem.

RedKetchup

#9
the quarry floor level is very tricky and work very bad, you are better to go with 1'x1'x0,1' pieces well centered on the game tiles.
but you can still have bad corners. you need walls in your mesh to cover those imperfections, you need to anticipate all those events by covering much more than expected.



in you .fbx you will have a mesh called [ floor ] and a mesh called [ floor1 ]
floor = your quarry floor
floor1 = your citizen floor

   Description _descriptions
   [
      "ui",

      "quarry",
      "floor",
      ......

QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
   float _maxDepth = -4.0;
   float _initialDepth = -4.0;
}
FloorDescription floor
{
   PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}






there is a copy of my Template/MedievalClayPit.rsc


// layout of the entity
ComponentDescription resource
{
// how often to update
UpdatePriority _updatePriority = Fourth;

// declare types that will be used
Description _descriptions
[
"ui",

"map",
"zone",
"toolbar",
"createplaced",
"decal",
"model",
"picking",
"highlight",
"interact",
"storage",
"quarry",
"floor",
"work",
"statusicon",
"tracker",

"statemachine",
"cleararea",
"build",
"workplace",
"destroy",
"consumeproduce",
]
}

// layout of the entity
ComponentDescription destroyed
{
// how often to update
UpdatePriority _updatePriority = None;

// declare types that will be used
Description _descriptions
[
"map",
"zone",
"decal",
"modeldestroyed",
]
}

TrackerDescription tracker { }
ClearAreaDescription cleararea
{
//bool _flattenGround = false;
bool _flattenGround = true;
}

StateMachineDescription statemachine
{
}

ZoneDescription zone
{
}

FloorDescription floor
{
PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}

DestroyDescription destroy
{
int _damagedSkin = 1;
int _damagedDecal = 1;
}

ZoneDescription zone
{
}

StatusIconDescription statusicon
{
SpriteSheet _spriteSheet = "StatusIcons\BuildingIconSpriteSheet.rsc";
bool _fixedSize = true;
float _size = 0.04;
float _zoffset = 1.33;
}

QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
float _maxDepth = -4.0;
float _initialDepth = -4.0;
}

ToolbarDescription toolbar
{
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";

StringTable _stringTable = "UI/NMTownStringTable.rsc";
String _stringName = "NewMedievalClayPit";
String _stringNameLwr = "NewMedievalClayPitLwr";
String _toolTip = "NewMedievalClayPitTip";

String _statusStrings
[
"CreateOk",
"CreateBlocked",
]

int _group = 2;
}

CreatePlacedDescription createplaced
{
PathBits _placeBits = Normal | Obstacle | Unusable | Walkable | Water | Occasional;

int _width = 9;
int _height = 9;
int _footprintRotation = 0;

PathBits _placeBitArray
[
Normal | Obstacle | Unusable | Walkable | Water | Occasional,
Normal | Obstacle | Fast | Faster,
]
String _placeBitmap =
"000111000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000";

ComponentDescription _allowAndRemove = "Template/Clear.rsc";
}

MapDescription map
{
PathType _pathType = Immovable;
String _pathBitmap =
"###...###
#_______#
#_##__#_#
#_#___#_#
#_#___#_#
#_#___#_#
#_#######
#____####
#########";

bool _addToOverhead = true;
Color _mapColor = 0xFF545454;
}

DecalDescription decal
{
MaterialInstance _materials
[
"Models\NewMedievalClayPitFootprintMaterial.rsc"
"Models\NewMedievalClayPitFootprintDamageMaterial.rsc"
]
bool _tiled = false;
float _initialAlpha = 0.5;

float _mapWidth = 64.0;

DecalLocation _decalLocations
[
{
float _x0 = 0.0;
float _y0 = 0.0;
float _x1 = 64.0;
float _y1 = 64.0;
}
]
}

PickingDescription picking
{
MaterialInstance _selectMaterial = "Material/SelectionMask/SelectionMask.rsc";
PickingGroup _meshes
[
{
PickingMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Picking.rsc",
"Models\NewMedievalClayPitPicking.rsc"
]
}
]
}


ModelDescription model
{
MeshGroup _meshes
[
{
GraphicsMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc",
"Models\NewMedievalClayPitMesh.rsc"
]
}
]
int _displayIndex = 0;
int _subIndex = 0;
bool _randomIndex = false;
}

HighlightDescription highlight
{
EdgeGroup _meshes
[
{
EdgeMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc:edge",
"Models\NewMedievalClayPitMesh.rsc:edge"
]
}
]

// materials for drawing selection with no mesh
MaterialInstance _maskMaterial = "Material/SelectionMask/SelectionMask.rsc";
MaterialInstance _edgeMaterial = "Material/SelectionEdge/SelectionEdge.rsc";
}

InteractDescription interact
{
PointList _pointList = "Models\NewMedievalClayPitPoints.rsc";
}

StorageDescription storage
{
}

WorkDescription work
{
int _defaultWorkers = 6;

bool _allowCountChange = true;
int _minWorkerCount = 1;
int _maxWorkerCount = 6;
}

WorkPlaceDescription workplace
{
Profession _profession = "Game/Profession/Profession.rsc:stonecutter";
Profession _pickupProfession = "Game/Profession/Profession.rsc:stonecutter";
}

ConsumeProduceDescription consumeproduce
{
Product _products
[
{
ComponentDescription _produceMaterial = "Template/RawMaterialClay.rsc";
ResourceLimit _resourceLimit = Stone;
}
]

StringTable _stringTable = "UI/NMTownStringTable.rsc";

ToolType _toolType = PickAxe;
int _workRequired = 10;
float _workTime = 10.0;
}

BuildDescription build
{
int _workRequired = 30;

BuildRequirement _buildRequirement
[
{
ComponentDescription _rawMaterial = "Template/RawMaterialWood.rsc";
int _count = 24;
}
]
}

UIDescription ui
{
int _displayPage = 0; // set to 1 for tab layout
Dialog _dialog = "Dialog/StandardDialog.rsc:entity";

ElementController _controllers
[
{
ObjectType _type = ControlUI;
ElementDescription _element = "enableWorkButton";
String _insertAt = "userButton0";
DialogControllerConfig _config = "workButtonConfig";
}
{
ObjectType _type = ResourceLimitUI;
ElementDescription _element = "resourceLimit";
String _insertAt = "userButton1";
DialogControllerConfig _config = "resourceLimitConfig";
}
{
ObjectType _type = ProductionUI;
ElementDescription _element = "Dialog/Production.rsc:production4";
String _insertAt = "pageUser";
}
{
ObjectType _type = PageToggleUI;
ElementDescription _element = "Dialog/Production.rsc:checkProduction";
String _insertAt = "userTitle0";
}
{
ObjectType _type = WorkPlaceUI;
ElementDescription _element = "Dialog/Work.rsc:workPlace";
String _insertAt = "userTitle1";
}
{
ObjectType _type = StatusIconUI;
ElementDescription _element = "Dialog/Building.rsc:icons";
String _insertAt = "userTitle2";
}
{
ObjectType _type = BuildUI;
ElementDescription _element = "Dialog/Build.rsc:build";
String _insertAt = "pageBuild";
}
{
ObjectType _type = DestroyUI;
ElementDescription _element = "Dialog/Destroy.rsc:destroy";
String _insertAt = "pageDestroy";
}
]
}

ControlUIConfig workButtonConfig
{
ObjectType _type = ConsumeProduceComponent;
int _controlId = 0;
}

CheckDescription enableWorkButton : "Dialog/SharedElements.rsc:checkSimple"
{
int _topPad = 4;

Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "EnableWorkTip";

ElementDescription _content = "labelWorkUncheck";
ElementDescription _check = "labelWorkCheck";
}

LabelDescription labelWorkCheck
{
int _topPad = 4;
int _leftPad = 4;
int _rightPad = 4;
int _bottomPad = 4;
int _minWidth = 61;
int _minHeight = 61;

Alignment _alignment = MidCenter;

Font _font = "Font\FontSmall.rsc";
StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "EnableWork";

int _spacing = 2;
LabelPosition _labelPosition = TextBottom;
Alignment _textAlignment = MidCenter;

SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";
}

LabelDescription labelWorkUncheck : "labelWorkCheck"
{
Color _color = 0xFF2E2B28;
}

ResourceLimitUIConfig resourceLimitConfig
{
ResourceLimit _resourceLimit = Stone;
}

RibbonDescription resourceLimit
{
Alignment _alignment = TopLeft;
bool vertical = false;
int _topPad = 24;
int _cellPad = 8;
int _minWidth = 222;

ElementDescription _elements
[
"labelLimit",
"editLimit",
]

Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "StoneLimitTip";
}

LabelDescription labelLimit
{
Alignment _alignment = MidLeft;

Font _font = "Font\FontSmall.rsc";
int _imageWidth = 20;
int _imageHeight = 20;
int _spacing = 4;
LabelPosition _labelPosition = TextRight;
Alignment _textAlignment = MidLeft;

StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "StoneLimit";
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "Clay";
}

SpinnerDescription editLimit : "Dialog/SharedElements.rsc:spinnerSmall6"
{
int _increment = 1000;
ElementDescription _border = "Dialog/SharedElements.rsc:flatButtonEnabledBorder";
}




in my screenshot you will see my [ mesh ] , my [ floor ] , and my [ floor1 ]. you will need to do same.

> > > Support Mods Creation developments with Donations by Paypal  < < <
Click here to Donate by PayPal .

Idle Work Team


Thank you very much. It looks so complicated. I'll try it first.

Idle Work Team

@RedKetchup
Thanks for your help.
I've tested it, and it's already been achieved.



RedKetchup

> > > Support Mods Creation developments with Donations by Paypal  < < <
Click here to Donate by PayPal .

Paeng

Woah, this is super interesting stuff... also the trees and plants and rocks are great...  :D
[i]Heads are round so thoughts can take a turn[/i]
[color=teal][size=8pt]Editor's Choice [b]here[/b][/size][/color]